|
11 | 11 | #include <zephyr/logging/log_core.h>
|
12 | 12 | #include <zephyr/sys/iterable_sections.h>
|
13 | 13 |
|
| 14 | +#if CONFIG_USERSPACE && CONFIG_LOG_ALWAYS_RUNTIME |
| 15 | +#include <zephyr/app_memory/app_memdomain.h> |
| 16 | +#endif |
| 17 | + |
14 | 18 | #ifdef __cplusplus
|
15 | 19 | extern "C" {
|
16 | 20 | #endif
|
@@ -355,6 +359,16 @@ void z_log_vprintk(const char *fmt, va_list ap);
|
355 | 359 | (Z_LOG_EVAL(_LOG_LEVEL_RESOLVE(__VA_ARGS__), (1), (0))) \
|
356 | 360 | )), (0))
|
357 | 361 |
|
| 362 | +/* Determine if the data of the log module shall be in the partition |
| 363 | + * 'k_log_partition' to allow a user mode thread access to this data. |
| 364 | + */ |
| 365 | +#if CONFIG_USERSPACE && CONFIG_LOG_ALWAYS_RUNTIME |
| 366 | +extern struct k_mem_partition k_log_partition; |
| 367 | +#define Z_LOG_MODULE_PARTITION(_k_app_mem) _k_app_mem(k_log_partition) |
| 368 | +#else |
| 369 | +#define Z_LOG_MODULE_PARTITION(_k_app_mem) |
| 370 | +#endif |
| 371 | + |
358 | 372 | /**
|
359 | 373 | * @brief Create module-specific state and register the module with Logger.
|
360 | 374 | *
|
@@ -427,19 +441,22 @@ void z_log_vprintk(const char *fmt, va_list ap);
|
427 | 441 | extern struct log_source_dynamic_data \
|
428 | 442 | LOG_ITEM_DYNAMIC_DATA(GET_ARG_N(1, __VA_ARGS__)); \
|
429 | 443 | \
|
| 444 | + Z_LOG_MODULE_PARTITION(K_APP_DMEM) \ |
430 | 445 | static const struct log_source_const_data * \
|
431 | 446 | __log_current_const_data __unused = \
|
432 | 447 | Z_DO_LOG_MODULE_REGISTER(__VA_ARGS__) ? \
|
433 | 448 | &Z_LOG_ITEM_CONST_DATA(GET_ARG_N(1, __VA_ARGS__)) : \
|
434 | 449 | NULL; \
|
435 | 450 | \
|
| 451 | + Z_LOG_MODULE_PARTITION(K_APP_DMEM) \ |
436 | 452 | static struct log_source_dynamic_data * \
|
437 | 453 | __log_current_dynamic_data __unused = \
|
438 | 454 | (Z_DO_LOG_MODULE_REGISTER(__VA_ARGS__) && \
|
439 | 455 | IS_ENABLED(CONFIG_LOG_RUNTIME_FILTERING)) ? \
|
440 | 456 | &LOG_ITEM_DYNAMIC_DATA(GET_ARG_N(1, __VA_ARGS__)) : \
|
441 | 457 | NULL; \
|
442 | 458 | \
|
| 459 | + Z_LOG_MODULE_PARTITION(K_APP_BMEM) \ |
443 | 460 | static const uint32_t __log_level __unused = \
|
444 | 461 | _LOG_LEVEL_RESOLVE(__VA_ARGS__)
|
445 | 462 |
|
|
0 commit comments