| /* SPDX-License-Identifier: Apache-2.0 */ |
| |
| #include <zephyr/linker/iterable_sections.h> |
| |
| #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 |
| ITERABLE_SECTION_RAM(pm_device_slots, 4) |
| #endif |
| |
| #if defined(CONFIG_HAS_DYNAMIC_DEVICE_HANDLES) |
| SECTION_DATA_PROLOGUE(device_handles,,) |
| { |
| #include "device-handles.ld" |
| } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) |
| #endif /* CONFIG_HAS_DYNAMIC_DEVICE_HANDLES */ |
| |
| ITERABLE_SECTION_RAM_GC_ALLOWED(log_mpsc_pbuf, 4) |
| ITERABLE_SECTION_RAM(log_msg_ptr, 4) |
| ITERABLE_SECTION_RAM(log_dynamic, 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_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) |
| |
| ITERABLE_SECTION_RAM(net_buf_pool, 4) |
| |
| #if defined(CONFIG_NETWORKING) |
| NETWORK_RAM_SECTIONS |
| #endif /* NETWORKING */ |
| |
| #if defined(CONFIG_PCIE) |
| ITERABLE_SECTION_RAM(pcie_dev, 4) |
| #endif /* PCIE */ |
| |
| #if defined(CONFIG_UART_MUX) |
| ITERABLE_SECTION_RAM(uart_mux, 4) |
| #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 */ |
| |
| #if defined(CONFIG_RTIO) |
| ITERABLE_SECTION_RAM(rtio, 4) |
| ITERABLE_SECTION_RAM(rtio_iodev, 4) |
| ITERABLE_SECTION_RAM(rtio_sqe_pool, 4) |
| ITERABLE_SECTION_RAM(rtio_cqe_pool, 4) |
| #endif /* CONFIG_RTIO */ |
| |
| #ifdef CONFIG_USERSPACE |
| _static_kernel_objects_end = .; |
| #endif |