|
49 | 49 | */ |
50 | 50 | #define Z_IS_ENABLED3(ignore_this, val, ...) val |
51 | 51 |
|
| 52 | +/* Helper macro for IS_ENABLED_ALL */ |
| 53 | +#define Z_IS_ENABLED_ALL(...) \ |
| 54 | + Z_IS_ENABLED_ALL_N(NUM_VA_ARGS(__VA_ARGS__), __VA_ARGS__) |
| 55 | +#define Z_IS_ENABLED_ALL_N(N, ...) UTIL_CAT(Z_IS_ENABLED_ALL_, N)(__VA_ARGS__) |
| 56 | +#define Z_IS_ENABLED_ALL_0(...) |
| 57 | +#define Z_IS_ENABLED_ALL_1(a, ...) COND_CODE_1(a, (1), (0)) |
| 58 | +#define Z_IS_ENABLED_ALL_2(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_1(__VA_ARGS__,)), (0)) |
| 59 | +#define Z_IS_ENABLED_ALL_3(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_2(__VA_ARGS__,)), (0)) |
| 60 | +#define Z_IS_ENABLED_ALL_4(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_3(__VA_ARGS__,)), (0)) |
| 61 | +#define Z_IS_ENABLED_ALL_5(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_4(__VA_ARGS__,)), (0)) |
| 62 | +#define Z_IS_ENABLED_ALL_6(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_5(__VA_ARGS__,)), (0)) |
| 63 | +#define Z_IS_ENABLED_ALL_7(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_6(__VA_ARGS__,)), (0)) |
| 64 | +#define Z_IS_ENABLED_ALL_8(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_7(__VA_ARGS__,)), (0)) |
| 65 | +#define Z_IS_ENABLED_ALL_9(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_8(__VA_ARGS__,)), (0)) |
| 66 | +#define Z_IS_ENABLED_ALL_10(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_9(__VA_ARGS__,)), (0)) |
| 67 | +#define Z_IS_ENABLED_ALL_11(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_10(__VA_ARGS__,)), (0)) |
| 68 | +#define Z_IS_ENABLED_ALL_12(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_11(__VA_ARGS__,)), (0)) |
| 69 | +#define Z_IS_ENABLED_ALL_13(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_12(__VA_ARGS__,)), (0)) |
| 70 | +#define Z_IS_ENABLED_ALL_14(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_13(__VA_ARGS__,)), (0)) |
| 71 | +#define Z_IS_ENABLED_ALL_15(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_14(__VA_ARGS__,)), (0)) |
| 72 | +#define Z_IS_ENABLED_ALL_16(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_15(__VA_ARGS__,)), (0)) |
| 73 | +#define Z_IS_ENABLED_ALL_17(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_16(__VA_ARGS__,)), (0)) |
| 74 | +#define Z_IS_ENABLED_ALL_18(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_17(__VA_ARGS__,)), (0)) |
| 75 | +#define Z_IS_ENABLED_ALL_19(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_18(__VA_ARGS__,)), (0)) |
| 76 | +#define Z_IS_ENABLED_ALL_20(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_19(__VA_ARGS__,)), (0)) |
| 77 | +#define Z_IS_ENABLED_ALL_21(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_20(__VA_ARGS__,)), (0)) |
| 78 | +#define Z_IS_ENABLED_ALL_22(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_21(__VA_ARGS__,)), (0)) |
| 79 | +#define Z_IS_ENABLED_ALL_23(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_22(__VA_ARGS__,)), (0)) |
| 80 | +#define Z_IS_ENABLED_ALL_24(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_23(__VA_ARGS__,)), (0)) |
| 81 | +#define Z_IS_ENABLED_ALL_25(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_24(__VA_ARGS__,)), (0)) |
| 82 | +#define Z_IS_ENABLED_ALL_26(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_25(__VA_ARGS__,)), (0)) |
| 83 | +#define Z_IS_ENABLED_ALL_27(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_26(__VA_ARGS__,)), (0)) |
| 84 | +#define Z_IS_ENABLED_ALL_28(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_27(__VA_ARGS__,)), (0)) |
| 85 | +#define Z_IS_ENABLED_ALL_29(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_28(__VA_ARGS__,)), (0)) |
| 86 | +#define Z_IS_ENABLED_ALL_30(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_29(__VA_ARGS__,)), (0)) |
| 87 | +#define Z_IS_ENABLED_ALL_31(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_30(__VA_ARGS__,)), (0)) |
| 88 | +#define Z_IS_ENABLED_ALL_32(a, ...) COND_CODE_1(a, (Z_IS_ENABLED_ALL_31(__VA_ARGS__,)), (0)) |
| 89 | + |
| 90 | +/* Helper macro for IS_ENABLED_ANY */ |
| 91 | +#define Z_IS_ENABLED_ANY(...) \ |
| 92 | + Z_IS_ENABLED_ANY_N(NUM_VA_ARGS(__VA_ARGS__), __VA_ARGS__) |
| 93 | +#define Z_IS_ENABLED_ANY_N(N, ...) UTIL_CAT(Z_IS_ENABLED_ANY_, N)(__VA_ARGS__) |
| 94 | +#define Z_IS_ENABLED_ANY_0(...) |
| 95 | +#define Z_IS_ENABLED_ANY_1(a, ...) COND_CODE_1(a, (1), (0)) |
| 96 | +#define Z_IS_ENABLED_ANY_2(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_1(__VA_ARGS__,))) |
| 97 | +#define Z_IS_ENABLED_ANY_3(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_2(__VA_ARGS__,))) |
| 98 | +#define Z_IS_ENABLED_ANY_4(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_3(__VA_ARGS__,))) |
| 99 | +#define Z_IS_ENABLED_ANY_5(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_4(__VA_ARGS__,))) |
| 100 | +#define Z_IS_ENABLED_ANY_6(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_5(__VA_ARGS__,))) |
| 101 | +#define Z_IS_ENABLED_ANY_7(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_6(__VA_ARGS__,))) |
| 102 | +#define Z_IS_ENABLED_ANY_8(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_7(__VA_ARGS__,))) |
| 103 | +#define Z_IS_ENABLED_ANY_9(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_8(__VA_ARGS__,))) |
| 104 | +#define Z_IS_ENABLED_ANY_10(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_9(__VA_ARGS__,))) |
| 105 | +#define Z_IS_ENABLED_ANY_11(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_10(__VA_ARGS__,))) |
| 106 | +#define Z_IS_ENABLED_ANY_12(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_11(__VA_ARGS__,))) |
| 107 | +#define Z_IS_ENABLED_ANY_13(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_12(__VA_ARGS__,))) |
| 108 | +#define Z_IS_ENABLED_ANY_14(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_13(__VA_ARGS__,))) |
| 109 | +#define Z_IS_ENABLED_ANY_15(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_14(__VA_ARGS__,))) |
| 110 | +#define Z_IS_ENABLED_ANY_16(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_15(__VA_ARGS__,))) |
| 111 | +#define Z_IS_ENABLED_ANY_17(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_16(__VA_ARGS__,))) |
| 112 | +#define Z_IS_ENABLED_ANY_18(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_17(__VA_ARGS__,))) |
| 113 | +#define Z_IS_ENABLED_ANY_19(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_18(__VA_ARGS__,))) |
| 114 | +#define Z_IS_ENABLED_ANY_20(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_19(__VA_ARGS__,))) |
| 115 | +#define Z_IS_ENABLED_ANY_21(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_20(__VA_ARGS__,))) |
| 116 | +#define Z_IS_ENABLED_ANY_22(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_21(__VA_ARGS__,))) |
| 117 | +#define Z_IS_ENABLED_ANY_23(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_22(__VA_ARGS__,))) |
| 118 | +#define Z_IS_ENABLED_ANY_24(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_23(__VA_ARGS__,))) |
| 119 | +#define Z_IS_ENABLED_ANY_25(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_24(__VA_ARGS__,))) |
| 120 | +#define Z_IS_ENABLED_ANY_26(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_25(__VA_ARGS__,))) |
| 121 | +#define Z_IS_ENABLED_ANY_27(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_26(__VA_ARGS__,))) |
| 122 | +#define Z_IS_ENABLED_ANY_28(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_27(__VA_ARGS__,))) |
| 123 | +#define Z_IS_ENABLED_ANY_29(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_28(__VA_ARGS__,))) |
| 124 | +#define Z_IS_ENABLED_ANY_30(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_29(__VA_ARGS__,))) |
| 125 | +#define Z_IS_ENABLED_ANY_31(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_30(__VA_ARGS__,))) |
| 126 | +#define Z_IS_ENABLED_ANY_32(a, ...) COND_CODE_1(a, (1), (Z_IS_ENABLED_ANY_31(__VA_ARGS__,))) |
| 127 | + |
52 | 128 | /* Implementation of IS_EQ(). Returns 1 if _0 and _1 are the same integer from |
53 | 129 | * 0 to 4096, 0 otherwise. |
54 | 130 | */ |
|
0 commit comments