@@ -39,25 +39,14 @@ extern "C" {
3939 _LOG_RESOLVED_LEVEL1(_level, _default)
4040
4141#define _LOG_RESOLVED_LEVEL1 (_level , _default ) \
42- __LOG_RESOLVED_LEVEL2 (_LOG_XXXX##_level, _level, _default)
42+ __COND_CODE (_LOG_XXXX##_level, ( _level), ( _default) )
4343
4444#define _LOG_XXXX0 _LOG_YYYY,
4545#define _LOG_XXXX1 _LOG_YYYY,
4646#define _LOG_XXXX2 _LOG_YYYY,
4747#define _LOG_XXXX3 _LOG_YYYY,
4848#define _LOG_XXXX4 _LOG_YYYY,
4949
50- #define __LOG_RESOLVED_LEVEL2 (one_or_two_args , _level , _default ) \
51- __LOG_ARG_2(one_or_two_args _level, _default)
52-
53- #define LOG_DEBRACKET (...) __VA_ARGS__
54-
55- #define __LOG_ARG_1 (val , ...) val
56- #define __LOG_ARG_2 (ignore_this , val , ...) val
57- #define __LOG_ARGS_LESS1 (val , ...) __VA_ARGS__
58-
59- #define __LOG_ARG_2_DEBRACKET (ignore_this , val , ...) LOG_DEBRACKET val
60-
6150/**
6251 * @brief Macro for conditional code generation if provided log level allows.
6352 *
@@ -76,36 +65,13 @@ extern "C" {
7665 _LOG_EVAL1(_eval_level, _iftrue, _iffalse)
7766
7867#define _LOG_EVAL1 (_eval_level , _iftrue , _iffalse ) \
79- _LOG_EVAL2 (_LOG_ZZZZ##_eval_level, _iftrue, _iffalse)
68+ __COND_CODE (_LOG_ZZZZ##_eval_level, _iftrue, _iffalse)
8069
8170#define _LOG_ZZZZ1 _LOG_YYYY,
8271#define _LOG_ZZZZ2 _LOG_YYYY,
8372#define _LOG_ZZZZ3 _LOG_YYYY,
8473#define _LOG_ZZZZ4 _LOG_YYYY,
8574
86- #define _LOG_EVAL2 (one_or_two_args , _iftrue , _iffalse ) \
87- __LOG_ARG_2_DEBRACKET(one_or_two_args _iftrue, _iffalse)
88-
89- /**
90- * @brief Macro for condition code generation.
91- *
92- * @param _eval Parameter evaluated against 0
93- * @param _ifzero Code included if _eval is 0. Must be wrapped in brackets.
94- * @param _ifnzero Code included if _eval is not 0.
95- * Must be wrapped in brackets.
96- */
97-
98- #define _LOG_Z_EVAL (_eval , _ifzero , _ifnzero ) \
99- _LOG_Z_EVAL1(_eval, _ifzero, _ifnzero)
100-
101- #define _LOG_Z_EVAL1 (_eval , _ifzero , _ifnzero ) \
102- _LOG_Z_EVAL2(_LOG_Z_ZZZZ##_eval, _ifzero, _ifnzero)
103-
104- #define _LOG_Z_ZZZZ0 _LOG_Z_YYYY,
105-
106- #define _LOG_Z_EVAL2 (one_or_two_args , _ifzero , _ifnzero ) \
107- __LOG_ARG_2_DEBRACKET(one_or_two_args _ifzero, _ifnzero)
108-
10975/** @brief Macro for getting log level for given module.
11076 *
11177 * It is evaluated to LOG_LEVEL if defined. Otherwise CONFIG_LOG_DEFAULT_LEVEL
@@ -156,7 +122,7 @@ extern "C" {
156122
157123/**
158124 * @brief Macro for optional injection of function name as first argument of
159- * formatted string. _LOG_Z_EVAL () macro is used to handle no arguments
125+ * formatted string. COND_CODE_0 () macro is used to handle no arguments
160126 * case.
161127 *
162128 * The purpose of this macro is to prefix string literal with format
@@ -165,10 +131,10 @@ extern "C" {
165131 * used.
166132 */
167133
168- #define _LOG_STR (...) "%s: " __LOG_ARG_1 (__VA_ARGS__), __func__\
169- _LOG_Z_EVAL (NUM_VA_ARGS_LESS_1(__VA_ARGS__),\
134+ #define _LOG_STR (...) "%s: " GET_ARG1 (__VA_ARGS__), __func__\
135+ COND_CODE_0 (NUM_VA_ARGS_LESS_1(__VA_ARGS__),\
170136 (),\
171- (, __LOG_ARGS_LESS1 (__VA_ARGS__))\
137+ (, GET_ARGS_LESS_1 (__VA_ARGS__))\
172138 )
173139
174140
0 commit comments