|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Misc utilities. More...
#include "util_loops.h"#include "util_internal_is_eq.h"#include "util_internal_util_inc.h"#include "util_internal_util_dec.h"#include "util_internal_util_x2.h"Go to the source code of this file.
Macros | |
| #define | UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__) |
| #define | UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__ |
| #define | UTIL_CHECK_N(x, n, ...) n |
| #define | UTIL_CHECK(...) UTIL_CHECK_N(__VA_ARGS__, 0,) |
| #define | UTIL_NOT(x) UTIL_CHECK(UTIL_PRIMITIVE_CAT(UTIL_NOT_, x)) |
| #define | UTIL_NOT_0 ~, 1, |
| #define | UTIL_COMPL(b) UTIL_PRIMITIVE_CAT(UTIL_COMPL_, b) |
| #define | UTIL_COMPL_0 1 |
| #define | UTIL_COMPL_1 0 |
| #define | UTIL_BOOL(x) UTIL_COMPL(UTIL_NOT(x)) |
| #define | UTIL_EVAL(...) __VA_ARGS__ |
| #define | UTIL_EXPAND(...) __VA_ARGS__ |
| #define | UTIL_REPEAT(...) UTIL_LISTIFY(__VA_ARGS__) |
| #define | NUM_VA_ARGS_LESS_1_IMPL( _ignored, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, N, ...) N |
| #define | MACRO_MAP_CAT_(...) |
| #define | MACRO_MAP_CAT_N_(N, ...) UTIL_CAT(MACRO_MC_, N)(__VA_ARGS__,) |
| #define | MACRO_MC_0(...) |
| #define | MACRO_MC_1(m, a, ...) m(a) |
| #define | MACRO_MC_2(m, a, ...) UTIL_CAT(m(a), MACRO_MC_1(m, __VA_ARGS__,)) |
| #define | MACRO_MC_3(m, a, ...) UTIL_CAT(m(a), MACRO_MC_2(m, __VA_ARGS__,)) |
| #define | MACRO_MC_4(m, a, ...) UTIL_CAT(m(a), MACRO_MC_3(m, __VA_ARGS__,)) |
| #define | MACRO_MC_5(m, a, ...) UTIL_CAT(m(a), MACRO_MC_4(m, __VA_ARGS__,)) |
| #define | MACRO_MC_6(m, a, ...) UTIL_CAT(m(a), MACRO_MC_5(m, __VA_ARGS__,)) |
| #define | MACRO_MC_7(m, a, ...) UTIL_CAT(m(a), MACRO_MC_6(m, __VA_ARGS__,)) |
| #define | MACRO_MC_8(m, a, ...) UTIL_CAT(m(a), MACRO_MC_7(m, __VA_ARGS__,)) |
| #define | MACRO_MC_9(m, a, ...) UTIL_CAT(m(a), MACRO_MC_8(m, __VA_ARGS__,)) |
| #define | MACRO_MC_10(m, a, ...) UTIL_CAT(m(a), MACRO_MC_9(m, __VA_ARGS__,)) |
| #define | MACRO_MC_11(m, a, ...) UTIL_CAT(m(a), MACRO_MC_10(m, __VA_ARGS__,)) |
| #define | MACRO_MC_12(m, a, ...) UTIL_CAT(m(a), MACRO_MC_11(m, __VA_ARGS__,)) |
| #define | MACRO_MC_13(m, a, ...) UTIL_CAT(m(a), MACRO_MC_12(m, __VA_ARGS__,)) |
| #define | MACRO_MC_14(m, a, ...) UTIL_CAT(m(a), MACRO_MC_13(m, __VA_ARGS__,)) |
| #define | MACRO_MC_15(m, a, ...) UTIL_CAT(m(a), MACRO_MC_14(m, __VA_ARGS__,)) |
Misc utilities.
Repetitive or obscure helper macros needed by sys/util.h.
| #define MACRO_MAP_CAT_ | ( | ... | ) |
| #define MACRO_MAP_CAT_N_ | ( | N, | |
| ... | |||
| ) | UTIL_CAT(MACRO_MC_, N)(__VA_ARGS__,) |
| #define MACRO_MC_0 | ( | ... | ) |
| #define MACRO_MC_1 | ( | m, | |
| a, | |||
| ... | |||
| ) | m(a) |
| #define MACRO_MC_10 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_9(m, __VA_ARGS__,)) |
| #define MACRO_MC_11 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_10(m, __VA_ARGS__,)) |
| #define MACRO_MC_12 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_11(m, __VA_ARGS__,)) |
| #define MACRO_MC_13 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_12(m, __VA_ARGS__,)) |
| #define MACRO_MC_14 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_13(m, __VA_ARGS__,)) |
| #define MACRO_MC_15 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_14(m, __VA_ARGS__,)) |
| #define MACRO_MC_2 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_1(m, __VA_ARGS__,)) |
| #define MACRO_MC_3 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_2(m, __VA_ARGS__,)) |
| #define MACRO_MC_4 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_3(m, __VA_ARGS__,)) |
| #define MACRO_MC_5 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_4(m, __VA_ARGS__,)) |
| #define MACRO_MC_6 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_5(m, __VA_ARGS__,)) |
| #define MACRO_MC_7 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_6(m, __VA_ARGS__,)) |
| #define MACRO_MC_8 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_7(m, __VA_ARGS__,)) |
| #define MACRO_MC_9 | ( | m, | |
| a, | |||
| ... | |||
| ) | UTIL_CAT(m(a), MACRO_MC_8(m, __VA_ARGS__,)) |
| #define NUM_VA_ARGS_LESS_1_IMPL | ( | _ignored, | |
| _0, | |||
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13, | |||
| _14, | |||
| _15, | |||
| _16, | |||
| _17, | |||
| _18, | |||
| _19, | |||
| _20, | |||
| _21, | |||
| _22, | |||
| _23, | |||
| _24, | |||
| _25, | |||
| _26, | |||
| _27, | |||
| _28, | |||
| _29, | |||
| _30, | |||
| _31, | |||
| _32, | |||
| _33, | |||
| _34, | |||
| _35, | |||
| _36, | |||
| _37, | |||
| _38, | |||
| _39, | |||
| _40, | |||
| _41, | |||
| _42, | |||
| _43, | |||
| _44, | |||
| _45, | |||
| _46, | |||
| _47, | |||
| _48, | |||
| _49, | |||
| _50, | |||
| _51, | |||
| _52, | |||
| _53, | |||
| _54, | |||
| _55, | |||
| _56, | |||
| _57, | |||
| _58, | |||
| _59, | |||
| _60, | |||
| _61, | |||
| _62, | |||
| N, | |||
| ... | |||
| ) | N |
| #define UTIL_BOOL | ( | x | ) | UTIL_COMPL(UTIL_NOT(x)) |
| #define UTIL_CAT | ( | a, | |
| ... | |||
| ) | UTIL_PRIMITIVE_CAT(a, __VA_ARGS__) |
| #define UTIL_CHECK | ( | ... | ) | UTIL_CHECK_N(__VA_ARGS__, 0,) |
| #define UTIL_CHECK_N | ( | x, | |
| n, | |||
| ... | |||
| ) | n |
| #define UTIL_COMPL | ( | b | ) | UTIL_PRIMITIVE_CAT(UTIL_COMPL_, b) |
| #define UTIL_COMPL_0 1 |
| #define UTIL_COMPL_1 0 |
| #define UTIL_EVAL | ( | ... | ) | __VA_ARGS__ |
| #define UTIL_EXPAND | ( | ... | ) | __VA_ARGS__ |
| #define UTIL_NOT | ( | x | ) | UTIL_CHECK(UTIL_PRIMITIVE_CAT(UTIL_NOT_, x)) |
| #define UTIL_NOT_0 ~, 1, |
| #define UTIL_PRIMITIVE_CAT | ( | a, | |
| ... | |||
| ) | a##__VA_ARGS__ |
| #define UTIL_REPEAT | ( | ... | ) | UTIL_LISTIFY(__VA_ARGS__) |