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>
This commit is contained in:
parent
bae0a5b8b6
commit
b07be57875
@ -21,8 +21,7 @@ if(CONFIG_PM_DEVICE)
|
||||
zephyr_iterable_section(NAME pm_device_slots GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
||||
endif()
|
||||
|
||||
zephyr_linker_section(NAME log_dynamic GROUP DATA_REGION NOINPUT)
|
||||
zephyr_linker_section_configure(SECTION log_dynamic KEEP INPUT ".log_dynamic_*")
|
||||
zephyr_iterable_section(NAME log_dynamic GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
||||
|
||||
if(CONFIG_USERSPACE)
|
||||
# All kernel objects within are assumed to be either completely
|
||||
|
||||
@ -49,13 +49,7 @@
|
||||
|
||||
ITERABLE_SECTION_RAM_GC_ALLOWED(log_mpsc_pbuf, 4)
|
||||
ITERABLE_SECTION_RAM(log_msg_ptr, 4)
|
||||
|
||||
SECTION_DATA_PROLOGUE(log_dynamic_sections,,)
|
||||
{
|
||||
__log_dynamic_start = .;
|
||||
KEEP(*(SORT(.log_dynamic_*)));
|
||||
__log_dynamic_end = .;
|
||||
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
|
||||
ITERABLE_SECTION_RAM(log_dynamic, 4)
|
||||
|
||||
#ifdef CONFIG_USERSPACE
|
||||
/* All kernel objects within are assumed to be either completely
|
||||
|
||||
@ -306,12 +306,9 @@ void z_log_vprintk(const char *fmt, va_list ap);
|
||||
.level = _level \
|
||||
}
|
||||
|
||||
#define _LOG_MODULE_DYNAMIC_DATA_CREATE(_name) \
|
||||
struct log_source_dynamic_data LOG_ITEM_DYNAMIC_DATA(_name) \
|
||||
__attribute__ ((section("." STRINGIFY( \
|
||||
LOG_ITEM_DYNAMIC_DATA(_name)))) \
|
||||
) \
|
||||
__attribute__((used))
|
||||
#define _LOG_MODULE_DYNAMIC_DATA_CREATE(_name) \
|
||||
STRUCT_SECTION_ITERABLE_ALTERNATE(log_dynamic, log_source_dynamic_data, \
|
||||
LOG_ITEM_DYNAMIC_DATA(_name))
|
||||
|
||||
#define _LOG_MODULE_DYNAMIC_DATA_COND_CREATE(_name) \
|
||||
IF_ENABLED(CONFIG_LOG_RUNTIME_FILTERING, \
|
||||
|
||||
@ -433,8 +433,8 @@ static inline uint32_t log_const_source_id(
|
||||
sizeof(struct log_source_const_data);
|
||||
}
|
||||
|
||||
extern struct log_source_dynamic_data __log_dynamic_start[];
|
||||
extern struct log_source_dynamic_data __log_dynamic_end[];
|
||||
TYPE_SECTION_START_EXTERN(struct log_source_dynamic_data, log_dynamic);
|
||||
TYPE_SECTION_END_EXTERN(struct log_source_dynamic_data, log_dynamic);
|
||||
|
||||
/** @brief Creates name of variable and section for runtime log data.
|
||||
*
|
||||
@ -454,7 +454,7 @@ extern struct log_source_dynamic_data __log_dynamic_end[];
|
||||
*/
|
||||
static inline uint32_t log_dynamic_source_id(struct log_source_dynamic_data *data)
|
||||
{
|
||||
return ((uint8_t *)data - (uint8_t *)__log_dynamic_start)/
|
||||
return ((uint8_t *)data - (uint8_t *)TYPE_SECTION_START(log_dynamic))/
|
||||
sizeof(struct log_source_dynamic_data);
|
||||
}
|
||||
|
||||
|
||||
@ -143,11 +143,8 @@ struct log_source_dynamic_data {
|
||||
IF_ENABLED(CONFIG_LOG, (Z_LOG_INSTANCE_STRUCT * _name))
|
||||
|
||||
#define Z_LOG_RUNTIME_INSTANCE_REGISTER(_module_name, _inst_name) \
|
||||
struct log_source_dynamic_data LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name) \
|
||||
__attribute__ ((section("." STRINGIFY( \
|
||||
LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name) \
|
||||
) \
|
||||
))) __attribute__((used))
|
||||
STRUCT_SECTION_ITERABLE_ALTERNATE(log_dynamic, log_source_dynamic_data, \
|
||||
LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name))
|
||||
|
||||
#define Z_LOG_INSTANCE_REGISTER(_module_name, _inst_name, _level) \
|
||||
Z_LOG_CONST_ITEM_REGISTER( \
|
||||
|
||||
@ -86,7 +86,7 @@ void z_log_notify_backend_enabled(void);
|
||||
*/
|
||||
static inline uint32_t *z_log_dynamic_filters_get(uint32_t source_id)
|
||||
{
|
||||
return &__log_dynamic_start[source_id].filters;
|
||||
return &TYPE_SECTION_START(log_dynamic)[source_id].filters;
|
||||
}
|
||||
|
||||
/** @brief Get number of registered sources. */
|
||||
|
||||
@ -330,7 +330,7 @@ int z_log_link_set_runtime_level(uint8_t domain_id, uint16_t source_id, uint8_t
|
||||
static uint32_t *get_dynamic_filter(uint8_t domain_id, uint32_t source_id)
|
||||
{
|
||||
if (z_log_is_local_domain(domain_id)) {
|
||||
return &__log_dynamic_start[source_id].filters;
|
||||
return &TYPE_SECTION_START(log_dynamic)[source_id].filters;
|
||||
}
|
||||
|
||||
return z_log_link_get_dynamic_filter(domain_id, source_id);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user