#include <rule.h>
+#define MAX_REGS (1 + NFT_REG32_15 - NFT_REG32_00)
+
struct netlink_parse_ctx {
struct list_head *msgs;
struct table *table;
struct rule *rule;
struct stmt *stmt;
- struct expr *registers[1 + NFT_REG32_15 - NFT_REG32_00 + 1];
+ struct expr *registers[MAX_REGS + 1];
unsigned int debug_mask;
};
enum nft_registers reg,
struct expr *expr)
{
- if (reg == NFT_REG_VERDICT || reg > 1 + NFT_REG32_15 - NFT_REG32_00) {
+ if (reg == NFT_REG_VERDICT || reg > MAX_REGS) {
netlink_error(ctx, &expr->location,
"Invalid destination register %u", reg);
expr_free(expr);
{
struct expr *expr;
- if (reg == NFT_REG_VERDICT || reg > 1 + NFT_REG32_15 - NFT_REG32_00) {
+ if (reg == NFT_REG_VERDICT || reg > MAX_REGS) {
netlink_error(ctx, loc, "Invalid source register %u", reg);
return NULL;
}
{
int i;
- for (i = 0; i <= NFT_REG_MAX; i++)
+ for (i = 0; i < MAX_REGS; i++)
expr_free(ctx->registers[i]);
}