logging: Allow logger usage in C++ files

Allow usage of LOG_MODULE_REGISTER and LOG_MODULE_DECLARE in
C++.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
Krzysztof Chruscinski 2019-04-24 12:24:21 +02:00 committed by Anas Nashif
commit 0bfd28361e

View file

@ -276,6 +276,10 @@ int log_printk(const char *fmt, va_list ap);
*/ */
char *log_strdup(const char *str); char *log_strdup(const char *str);
#ifdef __cplusplus
}
#define LOG_IN_CPLUSPLUS 1
#endif
/* Macro expects that optionally on second argument local log level is provided. /* Macro expects that optionally on second argument local log level is provided.
* If provided it is returned, otherwise default log level is returned or * If provided it is returned, otherwise default log level is returned or
* LOG_LEVEL, if it was locally defined. * LOG_LEVEL, if it was locally defined.
@ -292,8 +296,8 @@ char *log_strdup(const char *str);
/* Return first argument */ /* Return first argument */
#define _LOG_ARG1(arg1, ...) arg1 #define _LOG_ARG1(arg1, ...) arg1
#define _LOG_MODULE_CONST_DATA_CREATE(_name, _level) \ #define _LOG_MODULE_CONST_DATA_CREATE(_name, _level) \
COND_CODE_1(LOG_IN_CPLUSPLUS, (extern), ()) \
const struct log_source_const_data LOG_ITEM_CONST_DATA(_name) \ const struct log_source_const_data LOG_ITEM_CONST_DATA(_name) \
__attribute__ ((section("." STRINGIFY(LOG_ITEM_CONST_DATA(_name))))) \ __attribute__ ((section("." STRINGIFY(LOG_ITEM_CONST_DATA(_name))))) \
__attribute__((used)) = { \ __attribute__((used)) = { \
@ -309,8 +313,8 @@ char *log_strdup(const char *str);
__attribute__((used)) __attribute__((used))
#define _LOG_MODULE_DYNAMIC_DATA_COND_CREATE(_name) \ #define _LOG_MODULE_DYNAMIC_DATA_COND_CREATE(_name) \
Z_LOG_EVAL( \ COND_CODE_1( \
IS_ENABLED(CONFIG_LOG_RUNTIME_FILTERING), \ CONFIG_LOG_RUNTIME_FILTERING, \
(_LOG_MODULE_DYNAMIC_DATA_CREATE(_name);), \ (_LOG_MODULE_DYNAMIC_DATA_CREATE(_name);), \
() \ () \
) )
@ -351,7 +355,6 @@ char *log_strdup(const char *str);
* @see LOG_MODULE_DECLARE * @see LOG_MODULE_DECLARE
*/ */
#define LOG_MODULE_REGISTER(...) \ #define LOG_MODULE_REGISTER(...) \
Z_LOG_EVAL( \ Z_LOG_EVAL( \
_LOG_LEVEL_RESOLVE(__VA_ARGS__), \ _LOG_LEVEL_RESOLVE(__VA_ARGS__), \
@ -422,9 +425,4 @@ char *log_strdup(const char *str);
* @} * @}
*/ */
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_INCLUDE_LOGGING_LOG_H_ */ #endif /* ZEPHYR_INCLUDE_LOGGING_LOG_H_ */