diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2012-06-27 07:23:25 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2012-06-27 07:24:28 -0700 |
commit | 0d7e2fe4d5decafe1d52c4dbdb0d77d17ac53a80 (patch) | |
tree | b2e56f16f6cfaf112be3e9008f9832fd1799323d /lib/meta-flow.h | |
parent | 2716c204ed47c5f572e3d1a0138c964f44be90af (diff) |
lib/meta-flow: introduce a macro, CASE_MFF_REGS, to catch "case MFF_REG<N>:"
Introduce a macro instead for
With this macro, the code is a bit reduced.
test: compile-tested and unit tests passed.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
[blp@nicira.com moved the macro declaration, moved trailing colon from
macro definition to invocation, adjusted style slightly]
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/meta-flow.h')
-rw-r--r-- | lib/meta-flow.h | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/lib/meta-flow.h b/lib/meta-flow.h index 0967633f..d3d56d89 100644 --- a/lib/meta-flow.h +++ b/lib/meta-flow.h @@ -59,9 +59,6 @@ enum mf_field_id { #if FLOW_N_REGS > 7 MFF_REG7, /* be32 */ #endif -#if FLOW_N_REGS > 8 -#error -#endif /* L2. */ MFF_ETH_SRC, /* mac */ @@ -113,6 +110,40 @@ enum mf_field_id { MFF_N_IDS }; +/* Use this macro as CASE_MFF_REGS: in a switch statement to choose all of the + * MFF_REGx cases. */ +#if FLOW_N_REGS == 1 +# define CASE_MFF_REGS \ + case MFF_REG0 +#elif FLOW_N_REGS == 2 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1 +#elif FLOW_N_REGS == 3 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2 +#elif FLOW_N_REGS == 4 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2: case MFF_REG3 +#elif FLOW_N_REGS == 5 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2: case MFF_REG3: \ + case MFF_REG4 +#elif FLOW_N_REGS == 6 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2: case MFF_REG3: \ + case MFF_REG4: case MFF_REG5 +#elif FLOW_N_REGS == 7 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2: case MFF_REG3: \ + case MFF_REG4: case MFF_REG5: case MFF_REG6 +#elif FLOW_N_REGS == 8 +# define CASE_MFF_REGS \ + case MFF_REG0: case MFF_REG1: case MFF_REG2: case MFF_REG3: \ + case MFF_REG4: case MFF_REG5: case MFF_REG6: case MFF_REG7 +#else +# error +#endif + /* Prerequisites for matching a field. * * A field may only be matched if the correct lower-level protocols are also |