Xen Test Framework
|
Varadic macro helpers - Here be many dragons. More...
Go to the source code of this file.
Macros | |
#define | STR(x) _STR(x) |
Stringise an expression, expanding preprocessor tokens. More... | |
#define | VA_NARGS(...) VA_NARGS_(X,##__VA_ARGS__, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) |
Count the number of varadic arguments provided. More... | |
#define | VAR_MACRO_C1(macro, c1, ...) VAR_MACRO_C1_(macro, c1, VA_NARGS(__VA_ARGS__), ##__VA_ARGS__) |
Call a macro variation, based on the number of varadic arguments. More... | |
#define | IS_DEFINED(x) _IS_DEFINED(x) |
Evalute whether the CONFIG_ token x is defined. More... | |
Varadic macro helpers - Here be many dragons.
Definition in file macro_magic.h.
#define STR | ( | x | ) | _STR(x) |
Stringise an expression, expanding preprocessor tokens.
x | Expression to stringise. |
Definition at line 17 of file macro_magic.h.
#define VA_NARGS | ( | ... | ) | VA_NARGS_(X,##__VA_ARGS__, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) |
Count the number of varadic arguments provided.
VA_NARGS() => 0 VA_NARGS(x) => 1 VA_NARGS(x, y) => 2
Currently functions for 0 to 11 arguments.
Definition at line 33 of file macro_magic.h.
#define VAR_MACRO_C1 | ( | macro, | |
c1, | |||
... | |||
) | VAR_MACRO_C1_(macro, c1, VA_NARGS(__VA_ARGS__), ##__VA_ARGS__) |
Call a macro variation, based on the number of varadic arguments.
macro | Partial token to call a variation of. |
c1 | Constant parameter to pass through. |
... | Varadic arguments to pass through. |
Tokenises 'macro' with the count of varadic arguments, passing 'c1' and the varadic arguments.
VAR_MACRO_C1(m, c) => m0(c) VAR_MACRO_C1(m, c, x) => m1(c, x) VAR_MACRO_C1(m, c, x, y) => m2(c, x, y) VAR_MACRO_C1(m, c, x, y, z) => m3(c, x, y, z)
Definition at line 58 of file macro_magic.h.
#define IS_DEFINED | ( | x | ) | _IS_DEFINED(x) |
Evalute whether the CONFIG_ token x
is defined.
Suitable for use in an if ()
condition, even if x
is not defined. Will strictly evaluate to 0 or 1.
Definition at line 67 of file macro_magic.h.