LCOV - code coverage report
Current view: top level - zephyr/linker - sections.h Coverage Total Hit
Test: new.info Lines: 100.0 % 1 1
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2013-2014, Wind River Systems, Inc.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief Definitions of various linker Sections.
      10              :  *
      11              :  * Linker Section declarations used by linker script, C files and Assembly
      12              :  * files.
      13              :  */
      14              : 
      15              : #ifndef ZEPHYR_INCLUDE_LINKER_SECTIONS_H_
      16              : #define ZEPHYR_INCLUDE_LINKER_SECTIONS_H_
      17              : 
      18              : #define _TEXT_SECTION_NAME text
      19              : #define _RODATA_SECTION_NAME rodata
      20              : #define _CTOR_SECTION_NAME ctors
      21              : /* Linker issue with XIP where the name "data" cannot be used */
      22              : #define _DATA_SECTION_NAME datas
      23              : #define _BSS_SECTION_NAME bss
      24              : #define _NOINIT_SECTION_NAME noinit
      25              : 
      26              : #define _APP_SMEM_SECTION_NAME          app_smem
      27              : #define _APP_DATA_SECTION_NAME          app_datas
      28              : #define _APP_BSS_SECTION_NAME           app_bss
      29              : #define _APP_NOINIT_SECTION_NAME        app_noinit
      30              : 
      31              : #define _APP_SMEM_PINNED_SECTION_NAME   app_smem_pinned
      32              : 
      33              : #define _UNDEFINED_SECTION_NAME undefined
      34              : 
      35              : /* Interrupts */
      36              : #define _IRQ_VECTOR_TABLE_SECTION_NAME  .gnu.linkonce.irq_vector_table
      37              : #define _IRQ_VECTOR_TABLE_SECTION_SYMS  .gnu.linkonce.irq_vector_table*
      38              : 
      39              : #define _SW_ISR_TABLE_SECTION_NAME      .gnu.linkonce.sw_isr_table
      40              : #define _SW_ISR_TABLE_SECTION_SYMS      .gnu.linkonce.sw_isr_table*
      41              : 
      42              : #ifdef CONFIG_SHARED_INTERRUPTS
      43              : #define _SHARED_SW_ISR_TABLE_SECTION_NAME       .gnu.linkonce.shared_sw_isr_table
      44              : #define _SHARED_SW_ISR_TABLE_SECTION_SYMS       .gnu.linkonce.shared_sw_isr_table*
      45              : #endif /* CONFIG_SHARED_INTERRUPTS */
      46              : 
      47              : /* Architecture-specific sections */
      48              : #if defined(CONFIG_ARM)
      49              : #define _KINETIS_FLASH_CONFIG_SECTION_NAME  kinetis_flash_config
      50              : #define _TI_CCFG_SECTION_NAME           .ti_ccfg
      51              : 
      52              : #define _CCM_DATA_SECTION_NAME          .ccm_data
      53              : #define _CCM_BSS_SECTION_NAME           .ccm_bss
      54              : #define _CCM_NOINIT_SECTION_NAME        .ccm_noinit
      55              : 
      56              : #define _ITCM_SECTION_NAME              .itcm
      57              : 
      58              : #define _DTCM_DATA_SECTION_NAME         .dtcm_data
      59              : #define _DTCM_BSS_SECTION_NAME          .dtcm_bss
      60              : #define _DTCM_NOINIT_SECTION_NAME       .dtcm_noinit
      61              : 
      62              : #define _OCM_DATA_SECTION_NAME          .ocm_data
      63              : #define _OCM_BSS_SECTION_NAME           .ocm_bss
      64              : #endif
      65              : 
      66              : #define _IMX_BOOT_CONF_SECTION_NAME     .boot_hdr.conf
      67              : #define _IMX_BOOT_DATA_SECTION_NAME     .boot_hdr.data
      68              : #define _IMX_BOOT_IVT_SECTION_NAME      .boot_hdr.ivt
      69              : #define _IMX_BOOT_DCD_SECTION_NAME      .boot_hdr.dcd_data
      70              : #define _IMX_BOOT_CONTAINER_SECTION_NAME .boot_hdr.container
      71              : 
      72              : #define _STM32_SDRAM1_SECTION_NAME      .stm32_sdram1
      73              : #define _STM32_SDRAM2_SECTION_NAME      .stm32_sdram2
      74              : #define _STM32_PSRAM_SECTION_NAME       .stm32_psram
      75              : 
      76              : #define _STM32_BACKUP_SRAM_SECTION_NAME .stm32_backup_sram
      77              : 
      78              : #ifdef CONFIG_NOCACHE_MEMORY
      79              : #define _NOCACHE_SECTION_NAME nocache
      80              : #define _NOCACHE_LOAD_SECTION_NAME nocache_load
      81              : #endif
      82              : 
      83              : /* Symbol table section */
      84              : #if defined(CONFIG_SYMTAB)
      85              : #define _SYMTAB_INFO_SECTION_NAME       .gnu.linkonce.symtab.info
      86              : #define _SYMTAB_ENTRY_SECTION_NAME      .gnu.linkonce.symtab.entry
      87              : #define _SYMTAB_SECTION_SYMS            .gnu.linkonce.symtab*
      88              : #endif /* CONFIG_SYMTAB */
      89              : 
      90              : #if defined(CONFIG_LINKER_USE_BOOT_SECTION)
      91              : #define BOOT_TEXT_SECTION_NAME          boot_text
      92              : #define BOOT_BSS_SECTION_NAME           boot_bss
      93              : #define BOOT_RODATA_SECTION_NAME        boot_rodata
      94              : #define BOOT_DATA_SECTION_NAME          boot_data
      95              : #define BOOT_NOINIT_SECTION_NAME        boot_noinit
      96              : #endif
      97              : 
      98              : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
      99              : #define PINNED_TEXT_SECTION_NAME        pinned_text
     100              : #define PINNED_BSS_SECTION_NAME         pinned_bss
     101              : #define PINNED_RODATA_SECTION_NAME      pinned_rodata
     102              : #define PINNED_DATA_SECTION_NAME        pinned_data
     103              : #define PINNED_NOINIT_SECTION_NAME      pinned_noinit
     104              : #endif
     105              : 
     106              : #if defined(CONFIG_LINKER_USE_ONDEMAND_SECTION)
     107              : #define ONDEMAND_TEXT_SECTION_NAME      ondemand_text
     108              : #define ONDEMAND_RODATA_SECTION_NAME    ondemand_rodata
     109              : #endif
     110              : 
     111              : /* Short section references for use in ASM files */
     112              : #if defined(_ASMLANGUAGE)
     113              : /* Various text section names */
     114              : #define TEXT text
     115              : 
     116              : /* Various data type section names */
     117              : #define BSS bss
     118              : #define RODATA rodata
     119              : #define DATA data
     120              : #define NOINIT noinit
     121              : 
     122              : #if defined(CONFIG_LINKER_USE_BOOT_SECTION)
     123              : #define BOOT_TEXT                       BOOT_TEXT_SECTION_NAME
     124              : #define BOOT_BSS                        BOOT_BSS_SECTION_NAME
     125              : #define BOOT_RODATA                     BOOT_RODATA_SECTION_NAME
     126              : #define BOOT_DATA                       BOOT_DATA_SECTION_NAME
     127              : #define BOOT_NOINIT                     BOOT_NOINIT_SECTION_NAME
     128              : #else
     129              : #define BOOT_TEXT                       TEXT
     130              : #define BOOT_BSS                        BSS
     131              : #define BOOT_RODATA                     RODATA
     132              : #define BOOT_DATA                       DATA
     133              : #define BOOT_NOINIT                     NOINIT
     134              : #endif /* CONFIG_LINKER_USE_BOOT_SECTION */
     135              : 
     136              : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
     137              : #define PINNED_TEXT                     PINNED_TEXT_SECTION_NAME
     138              : #define PINNED_BSS                      PINNED_BSS_SECTION_NAME
     139              : #define PINNED_RODATA                   PINNED_RODATA_SECTION_NAME
     140              : #define PINNED_DATA                     PINNED_DATA_SECTION_NAME
     141              : #define PINNED_NOINIT                   PINNED_NOINIT_SECTION_NAME
     142              : #else
     143              : #define PINNED_TEXT                     TEXT
     144              : #define PINNED_BSS                      BSS
     145              : #define PINNED_RODATA                   RODATA
     146              : #define PINNED_DATA                     DATA
     147              : #define PINNED_NOINIT                   NOINIT
     148              : #endif /* CONFIG_LINKER_USE_PINNED_SECTION */
     149              : 
     150              : #if defined(CONFIG_LINKER_USE_ONDEMAND_SECTION)
     151              : #define ONDEMAND_TEXT                   ONDEMAND_TEXT_SECTION_NAME
     152              : #define ONDEMAND_RODATA         ONDEMAND_RODATA_SECTION_NAME
     153              : #else
     154              : #define ONDEMAND_TEXT                   TEXT
     155              : #define ONDEMAND_RODATA         RODATA
     156              : #endif /* CONFIG_LINKER_USE_ONDEMAND_SECTION */
     157              : 
     158              : #endif /* _ASMLANGUAGE */
     159              : 
     160              : #include <zephyr/linker/section_tags.h>
     161              : 
     162              : #endif /* ZEPHYR_INCLUDE_LINKER_SECTIONS_H_ */
        

Generated by: LCOV version 2.0-1