Zephyr API Documentation 4.0.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
util_internal.h File Reference

Misc utilities. More...

Go to the source code of this file.

Macros

#define UTIL_CAT(a, ...)
 
#define UTIL_PRIMITIVE_CAT(a, ...)
 
#define UTIL_CHECK_N(x, n, ...)
 
#define UTIL_CHECK(...)
 
#define UTIL_NOT(x)
 
#define UTIL_NOT_0   ~, 1,
 
#define UTIL_COMPL(b)
 
#define UTIL_COMPL_0   1
 
#define UTIL_COMPL_1   0
 
#define UTIL_BOOL(x)
 
#define UTIL_EVAL(...)
 
#define UTIL_EXPAND(...)
 
#define UTIL_REPEAT(...)
 
#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, ...)
 
#define MACRO_MAP_CAT_(...)
 
#define MACRO_MAP_CAT_N_(N, ...)
 
#define MACRO_MC_0(...)
 
#define MACRO_MC_1(m, a, ...)
 
#define MACRO_MC_2(m, a, ...)
 
#define MACRO_MC_3(m, a, ...)
 
#define MACRO_MC_4(m, a, ...)
 
#define MACRO_MC_5(m, a, ...)
 
#define MACRO_MC_6(m, a, ...)
 
#define MACRO_MC_7(m, a, ...)
 
#define MACRO_MC_8(m, a, ...)
 
#define MACRO_MC_9(m, a, ...)
 
#define MACRO_MC_10(m, a, ...)
 
#define MACRO_MC_11(m, a, ...)
 
#define MACRO_MC_12(m, a, ...)
 
#define MACRO_MC_13(m, a, ...)
 
#define MACRO_MC_14(m, a, ...)
 
#define MACRO_MC_15(m, a, ...)
 

Detailed Description

Misc utilities.

Repetitive or obscure helper macros needed by sys/util.h.

Macro Definition Documentation

◆ MACRO_MAP_CAT_

#define MACRO_MAP_CAT_ ( ...)
Value:
/* To make sure it works also for 2 arguments in total */ \
MACRO_MAP_CAT_N(NUM_VA_ARGS_LESS_1(__VA_ARGS__), __VA_ARGS__)
#define NUM_VA_ARGS_LESS_1(...)
Number of arguments in the variable arguments list minus one.
Definition util_macro.h:647

◆ MACRO_MAP_CAT_N_

#define MACRO_MAP_CAT_N_ ( N,
... )
Value:
UTIL_CAT(MACRO_MC_, N)(__VA_ARGS__,)
#define UTIL_CAT(a,...)
Definition util_internal.h:104

◆ MACRO_MC_0

#define MACRO_MC_0 ( ...)

◆ MACRO_MC_1

#define MACRO_MC_1 ( m,
a,
... )
Value:
m(a)

◆ MACRO_MC_10

#define MACRO_MC_10 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_9(m, __VA_ARGS__,))
#define MACRO_MC_9(m, a,...)
Definition util_internal.h:153

◆ MACRO_MC_11

#define MACRO_MC_11 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_10(m, __VA_ARGS__,))
#define MACRO_MC_10(m, a,...)
Definition util_internal.h:154

◆ MACRO_MC_12

#define MACRO_MC_12 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_11(m, __VA_ARGS__,))
#define MACRO_MC_11(m, a,...)
Definition util_internal.h:155

◆ MACRO_MC_13

#define MACRO_MC_13 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_12(m, __VA_ARGS__,))
#define MACRO_MC_12(m, a,...)
Definition util_internal.h:156

◆ MACRO_MC_14

#define MACRO_MC_14 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_13(m, __VA_ARGS__,))
#define MACRO_MC_13(m, a,...)
Definition util_internal.h:157

◆ MACRO_MC_15

#define MACRO_MC_15 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_14(m, __VA_ARGS__,))
#define MACRO_MC_14(m, a,...)
Definition util_internal.h:158

◆ MACRO_MC_2

#define MACRO_MC_2 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_1(m, __VA_ARGS__,))
#define MACRO_MC_1(m, a,...)
Definition util_internal.h:145

◆ MACRO_MC_3

#define MACRO_MC_3 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_2(m, __VA_ARGS__,))
#define MACRO_MC_2(m, a,...)
Definition util_internal.h:146

◆ MACRO_MC_4

#define MACRO_MC_4 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_3(m, __VA_ARGS__,))
#define MACRO_MC_3(m, a,...)
Definition util_internal.h:147

◆ MACRO_MC_5

#define MACRO_MC_5 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_4(m, __VA_ARGS__,))
#define MACRO_MC_4(m, a,...)
Definition util_internal.h:148

◆ MACRO_MC_6

#define MACRO_MC_6 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_5(m, __VA_ARGS__,))
#define MACRO_MC_5(m, a,...)
Definition util_internal.h:149

◆ MACRO_MC_7

#define MACRO_MC_7 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_6(m, __VA_ARGS__,))
#define MACRO_MC_6(m, a,...)
Definition util_internal.h:150

◆ MACRO_MC_8

#define MACRO_MC_8 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_7(m, __VA_ARGS__,))
#define MACRO_MC_7(m, a,...)
Definition util_internal.h:151

◆ MACRO_MC_9

#define MACRO_MC_9 ( m,
a,
... )
Value:
UTIL_CAT(m(a), MACRO_MC_8(m, __VA_ARGS__,))
#define MACRO_MC_8(m, a,...)
Definition util_internal.h:152

◆ NUM_VA_ARGS_LESS_1_IMPL

#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,
... )
Value:
N

◆ UTIL_BOOL

#define UTIL_BOOL ( x)
Value:
#define UTIL_NOT(x)
Definition util_internal.h:108
#define UTIL_COMPL(b)
Definition util_internal.h:110

◆ UTIL_CAT

#define UTIL_CAT ( a,
... )
Value:
UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)
#define UTIL_PRIMITIVE_CAT(a,...)
Definition util_internal.h:105

◆ UTIL_CHECK

#define UTIL_CHECK ( ...)
Value:
UTIL_CHECK_N(__VA_ARGS__, 0,)
#define UTIL_CHECK_N(x, n,...)
Definition util_internal.h:106

◆ UTIL_CHECK_N

#define UTIL_CHECK_N ( x,
n,
... )
Value:
n

◆ UTIL_COMPL

#define UTIL_COMPL ( b)
Value:
UTIL_PRIMITIVE_CAT(UTIL_COMPL_, b)

◆ UTIL_COMPL_0

#define UTIL_COMPL_0   1

◆ UTIL_COMPL_1

#define UTIL_COMPL_1   0

◆ UTIL_EVAL

#define UTIL_EVAL ( ...)
Value:
__VA_ARGS__

◆ UTIL_EXPAND

#define UTIL_EXPAND ( ...)
Value:
__VA_ARGS__

◆ UTIL_NOT

#define UTIL_NOT ( x)
Value:
#define UTIL_CHECK(...)
Definition util_internal.h:107

◆ UTIL_NOT_0

#define UTIL_NOT_0   ~, 1,

◆ UTIL_PRIMITIVE_CAT

#define UTIL_PRIMITIVE_CAT ( a,
... )
Value:
a##__VA_ARGS__

◆ UTIL_REPEAT

#define UTIL_REPEAT ( ...)
Value:
UTIL_LISTIFY(__VA_ARGS__)