Skip to content

Commit b07be57

Browse files
galakcarlescufi
authored andcommitted
logging: Use TYPE_SECTION macros for log dynamic
Clean up log_dynamic to utilize macros for handling sections. Signed-off-by: Kumar Gala <kumar.gala@intel.com>
1 parent bae0a5b commit b07be57

File tree

7 files changed

+12
-25
lines changed

7 files changed

+12
-25
lines changed

cmake/linker_script/common/common-ram.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ if(CONFIG_PM_DEVICE)
2121
zephyr_iterable_section(NAME pm_device_slots GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
2222
endif()
2323

24-
zephyr_linker_section(NAME log_dynamic GROUP DATA_REGION NOINPUT)
25-
zephyr_linker_section_configure(SECTION log_dynamic KEEP INPUT ".log_dynamic_*")
24+
zephyr_iterable_section(NAME log_dynamic GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
2625

2726
if(CONFIG_USERSPACE)
2827
# All kernel objects within are assumed to be either completely

include/zephyr/linker/common-ram.ld

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,7 @@
4949

5050
ITERABLE_SECTION_RAM_GC_ALLOWED(log_mpsc_pbuf, 4)
5151
ITERABLE_SECTION_RAM(log_msg_ptr, 4)
52-
53-
SECTION_DATA_PROLOGUE(log_dynamic_sections,,)
54-
{
55-
__log_dynamic_start = .;
56-
KEEP(*(SORT(.log_dynamic_*)));
57-
__log_dynamic_end = .;
58-
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
52+
ITERABLE_SECTION_RAM(log_dynamic, 4)
5953

6054
#ifdef CONFIG_USERSPACE
6155
/* All kernel objects within are assumed to be either completely

include/zephyr/logging/log.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -306,12 +306,9 @@ void z_log_vprintk(const char *fmt, va_list ap);
306306
.level = _level \
307307
}
308308

309-
#define _LOG_MODULE_DYNAMIC_DATA_CREATE(_name) \
310-
struct log_source_dynamic_data LOG_ITEM_DYNAMIC_DATA(_name) \
311-
__attribute__ ((section("." STRINGIFY( \
312-
LOG_ITEM_DYNAMIC_DATA(_name)))) \
313-
) \
314-
__attribute__((used))
309+
#define _LOG_MODULE_DYNAMIC_DATA_CREATE(_name) \
310+
STRUCT_SECTION_ITERABLE_ALTERNATE(log_dynamic, log_source_dynamic_data, \
311+
LOG_ITEM_DYNAMIC_DATA(_name))
315312

316313
#define _LOG_MODULE_DYNAMIC_DATA_COND_CREATE(_name) \
317314
IF_ENABLED(CONFIG_LOG_RUNTIME_FILTERING, \

include/zephyr/logging/log_core.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,8 +433,8 @@ static inline uint32_t log_const_source_id(
433433
sizeof(struct log_source_const_data);
434434
}
435435

436-
extern struct log_source_dynamic_data __log_dynamic_start[];
437-
extern struct log_source_dynamic_data __log_dynamic_end[];
436+
TYPE_SECTION_START_EXTERN(struct log_source_dynamic_data, log_dynamic);
437+
TYPE_SECTION_END_EXTERN(struct log_source_dynamic_data, log_dynamic);
438438

439439
/** @brief Creates name of variable and section for runtime log data.
440440
*
@@ -454,7 +454,7 @@ extern struct log_source_dynamic_data __log_dynamic_end[];
454454
*/
455455
static inline uint32_t log_dynamic_source_id(struct log_source_dynamic_data *data)
456456
{
457-
return ((uint8_t *)data - (uint8_t *)__log_dynamic_start)/
457+
return ((uint8_t *)data - (uint8_t *)TYPE_SECTION_START(log_dynamic))/
458458
sizeof(struct log_source_dynamic_data);
459459
}
460460

include/zephyr/logging/log_instance.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,8 @@ struct log_source_dynamic_data {
143143
IF_ENABLED(CONFIG_LOG, (Z_LOG_INSTANCE_STRUCT * _name))
144144

145145
#define Z_LOG_RUNTIME_INSTANCE_REGISTER(_module_name, _inst_name) \
146-
struct log_source_dynamic_data LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name) \
147-
__attribute__ ((section("." STRINGIFY( \
148-
LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name) \
149-
) \
150-
))) __attribute__((used))
146+
STRUCT_SECTION_ITERABLE_ALTERNATE(log_dynamic, log_source_dynamic_data, \
147+
LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name))
151148

152149
#define Z_LOG_INSTANCE_REGISTER(_module_name, _inst_name, _level) \
153150
Z_LOG_CONST_ITEM_REGISTER( \

include/zephyr/logging/log_internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void z_log_notify_backend_enabled(void);
8686
*/
8787
static inline uint32_t *z_log_dynamic_filters_get(uint32_t source_id)
8888
{
89-
return &__log_dynamic_start[source_id].filters;
89+
return &TYPE_SECTION_START(log_dynamic)[source_id].filters;
9090
}
9191

9292
/** @brief Get number of registered sources. */

subsys/logging/log_mgmt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ int z_log_link_set_runtime_level(uint8_t domain_id, uint16_t source_id, uint8_t
330330
static uint32_t *get_dynamic_filter(uint8_t domain_id, uint32_t source_id)
331331
{
332332
if (z_log_is_local_domain(domain_id)) {
333-
return &__log_dynamic_start[source_id].filters;
333+
return &TYPE_SECTION_START(log_dynamic)[source_id].filters;
334334
}
335335

336336
return z_log_link_get_dynamic_filter(domain_id, source_id);

0 commit comments

Comments
 (0)