]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Filter refactoring: Moved the bitfield bit position formula to route.h
authorJan Maria Matejka <mq@ucw.cz>
Mon, 17 Dec 2018 11:58:01 +0000 (12:58 +0100)
committerMaria Matejka <mq@ucw.cz>
Wed, 20 Feb 2019 21:30:54 +0000 (22:30 +0100)
filter/filter.c
nest/route.h

index f5efe8945dc00bf4ed2eea62da2bb07a06866d6f..5829fd517fa09be9a838f4836e4b6c8e7dd785f9 100644 (file)
@@ -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);
index 8dfbb3762713a1c54751c20ebfcff12bc6af1b5e..74446f48a21395a356e75ffbcf1b457c40e77baf 100644 (file)
@@ -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 */