/* SPDX-License-Identifier: Apache-2.0 */ #if defined(CONFIG_NETWORKING) #ifndef NETWORK_RAM_SECTIONS #define NETWORK_RAM_SECTIONS \ ITERABLE_SECTION_RAM(net_if, 4) \ ITERABLE_SECTION_RAM(net_if_dev, 4) \ ITERABLE_SECTION_RAM(net_l2, 4) \ ITERABLE_SECTION_RAM(eth_bridge, 4) #endif #endif /* NETWORKING */ #if defined(CONFIG_BT_MESH) ITERABLE_SECTION_RAM(bt_mesh_ext_adv, 4) #endif #if defined(CONFIG_GEN_SW_ISR_TABLE) && defined(CONFIG_DYNAMIC_INTERRUPTS) SECTION_DATA_PROLOGUE(sw_isr_table,,) { /* * Some arch requires an entry to be aligned to arch * specific boundary for using double word load * instruction. See include/sw_isr_table.h. */ . = ALIGN(CONFIG_ARCH_SW_ISR_TABLE_ALIGN); *(_SW_ISR_TABLE_SECTION_SYMS) } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #endif SECTION_DATA_PROLOGUE(device_states,,) { /* Device states used by the device objects. */ __device_states_start = .; KEEP(*(".z_devstate")); KEEP(*(".z_devstate.*")); __device_states_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #if CONFIG_PM_DEVICE SECTION_DATA_PROLOGUE(pm_device_slots, (NOLOAD),) { __pm_device_slots_start = .; KEEP(*(".z_pm_device_slots")); __pm_device_slots_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #endif SECTION_DATA_PROLOGUE(initshell,,) { /* link in shell initialization objects for all modules that * use shell and their shell commands are automatically * initialized by the kernel. */ __shell_module_start = .; KEEP(*(".shell_module_*")); __shell_module_end = .; __shell_cmd_start = .; KEEP(*(".shell_cmd_*")); __shell_cmd_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) 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(_static_thread_data, 4) #ifdef CONFIG_USERSPACE /* All kernel objects within are assumed to be either completely * initialized at build time, or initialized automatically at runtime * via iteration before the POST_KERNEL phase. * * These two symbols only used by gen_kobject_list.py */ _static_kernel_objects_begin = .; #endif /* CONFIG_USERSPACE */ ITERABLE_SECTION_RAM_GC_ALLOWED(k_timer, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_mem_slab, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_mem_pool, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_heap, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_mutex, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_stack, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_msgq, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_mbox, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_pipe, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_sem, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_event, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_queue, 4) ITERABLE_SECTION_RAM_GC_ALLOWED(k_condvar, 4) SECTION_DATA_PROLOGUE(_net_buf_pool_area,,SUBALIGN(4)) { _net_buf_pool_list = .; KEEP(*(SORT_BY_NAME("._net_buf_pool.static.*"))) } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #if defined(CONFIG_NETWORKING) NETWORK_RAM_SECTIONS #endif /* NETWORKING */ #if defined(CONFIG_UART_MUX) SECTION_DATA_PROLOGUE(uart_mux,,SUBALIGN(4)) { __uart_mux_start = .; *(".uart_mux.*") KEEP(*(SORT_BY_NAME(".uart_mux.*"))) __uart_mux_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #endif #if defined(CONFIG_USB_DEVICE_STACK) SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(1)) { __usb_descriptor_start = .; *(".usb.descriptor") KEEP(*(SORT_BY_NAME(".usb.descriptor*"))) __usb_descriptor_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) ITERABLE_SECTION_RAM(usb_cfg_data, 4) #endif /* CONFIG_USB_DEVICE_STACK */ #if defined(CONFIG_USB_DEVICE_BOS) SECTION_DATA_PROLOGUE(usb_bos_desc,,SUBALIGN(1)) { __usb_bos_desc_start = .; *(".usb.bos_desc") KEEP(*(SORT_BY_NAME(".usb.bos_desc*"))) __usb_bos_desc_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) #endif /* CONFIG_USB_DEVICE_BOS */ #ifdef CONFIG_USERSPACE _static_kernel_objects_end = .; #endif #if defined(CONFIG_ZTEST) ITERABLE_SECTION_RAM(ztest_suite_node, 4) #if defined(CONFIG_ZTEST_NEW_API) ITERABLE_SECTION_RAM(ztest_unit_test, 4) ITERABLE_SECTION_RAM(ztest_test_rule, 4) #endif /* CONFIG_ZTEST_NEW_API */ #endif /* CONFIG_ZTEST */