From 25566c68109381178e0305f3e7e1464dea15b90b Mon Sep 17 00:00:00 2001 From: Jan Maria Matejka Date: Mon, 17 Dec 2018 12:58:01 +0100 Subject: [PATCH] Filter refactoring: Moved the bitfield bit position formula to route.h --- filter/filter.c | 5 ++--- nest/route.h | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/filter/filter.c b/filter/filter.c index f5efe894..5829fd51 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -597,9 +597,6 @@ val_format_str(struct filter_state *fs, struct f_val v) { static struct tbf rl_runtime_err = TBF_DEFAULT_LOG_LIMITS; -#define BITFIELD_MASK(what) \ - (1u << (what->a2.i >> 24)) - /** * interpret * @fs: filter state @@ -656,6 +653,8 @@ interpret(struct filter_state *fs, struct f_inst *what) #define ACCESS_EATTRS \ do { if (!fs->eattrs) f_cache_eattrs(fs); } while (0) +#define BITFIELD_MASK(what_) (1u << EA_BIT_GET(what_->a2.i)) + /* Binary operators */ case FI_ADD: ARG(1,T_INT); diff --git a/nest/route.h b/nest/route.h index 8dfbb376..74446f48 100644 --- a/nest/route.h +++ b/nest/route.h @@ -493,6 +493,7 @@ const char *ea_custom_name(uint ea); #define EA_CUSTOM_BIT 0x8000 #define EA_ALLOW_UNDEF 0x10000 /* ea_find: allow EAF_TYPE_UNDEF */ #define EA_BIT(n) ((n) << 24) /* Used in bitfield accessors */ +#define EA_BIT_GET(ea) ((ea) >> 24) #define EAF_TYPE_MASK 0x1f /* Mask with this to get type */ #define EAF_TYPE_INT 0x01 /* 32-bit unsigned integer number */