linker: add iterable section macros
For iterable areas defined with Z_STRUCT_SECTION_ITERABLE(),
the corresponding output section in the linker script is just
boilerplate. Add macros to make these definitions simpler.
Unfortunately, we have a fair number of iterable sections not
defined with Z_STRUCT_SECTION_ITERABLE(), this patch does not
address this.
The output sections are all named <struct name>_area, update
sanitylib.py with this.
sys_sem with no userspace, and k_lifo/k_fifo are special cases
where different data types that are all equivalent need to be
put in the same iterable area. Add
Z_STRUCT_SECTION_ITERABLE_ALTERNATE() for this special case.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
diff --git a/scripts/sanity_chk/sanitylib.py b/scripts/sanity_chk/sanitylib.py
index a083c34..4e57633 100644
--- a/scripts/sanity_chk/sanitylib.py
+++ b/scripts/sanity_chk/sanitylib.py
@@ -932,24 +932,24 @@
"initlevel",
"exceptions",
"initshell",
- "_static_thread_area",
- "_k_timer_area",
- "_k_mem_slab_area",
- "_k_mem_pool_area",
+ "_static_thread_data_area",
+ "k_timer_area",
+ "k_mem_slab_area",
+ "k_mem_pool_area",
"sw_isr_table",
- "_k_sem_area",
- "_k_mutex_area",
+ "k_sem_area",
+ "k_mutex_area",
"app_shmem_regions",
"_k_fifo_area",
"_k_lifo_area",
- "_k_stack_area",
- "_k_msgq_area",
- "_k_mbox_area",
- "_k_pipe_area",
+ "k_stack_area",
+ "k_msgq_area",
+ "k_mbox_area",
+ "k_pipe_area",
"net_if",
"net_if_dev",
"net_l2_data",
- "_k_queue_area",
+ "k_queue_area",
"_net_buf_pool_area",
"app_datas",
"kobject_data",
@@ -980,19 +980,21 @@
"ctors",
"init_array",
"reset",
- "object_access",
+ "z_object_assignment_area",
"rodata",
"devconfig",
"net_l2",
"vector",
"sw_isr_table",
- "_settings_handlers_area",
- "_bt_channels_area",
- "_bt_br_channels_area",
- "_bt_services_area",
+ "settings_handler_static_area",
+ "bt_l2cap_fixed_chan",
+ "bt_l2cap_br_fixec_chan",
+ "bt_gatt_service_static",
"vectors",
- "net_socket_register",
- "net_ppp_proto"
+ "net_socket_register_area",
+ "net_ppp_proto",
+ "shell_area",
+ "tracing_backend_area",
]
def __init__(self, filename, extra_sections):