LCOV - code coverage report
Current view: top level - zephyr/linker - sections.h Hit Total Coverage
Test: new.info Lines: 1 1 100.0 %
Date: 2024-12-22 00:14:23

          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             : 
      75             : #define _STM32_BACKUP_SRAM_SECTION_NAME .stm32_backup_sram
      76             : 
      77             : #ifdef CONFIG_NOCACHE_MEMORY
      78             : #define _NOCACHE_SECTION_NAME nocache
      79             : #endif
      80             : 
      81             : /* Symbol table section */
      82             : #if defined(CONFIG_SYMTAB)
      83             : #define _SYMTAB_INFO_SECTION_NAME       .gnu.linkonce.symtab.info
      84             : #define _SYMTAB_ENTRY_SECTION_NAME      .gnu.linkonce.symtab.entry
      85             : #define _SYMTAB_SECTION_SYMS            .gnu.linkonce.symtab*
      86             : #endif /* CONFIG_SYMTAB */
      87             : 
      88             : #if defined(CONFIG_LINKER_USE_BOOT_SECTION)
      89             : #define BOOT_TEXT_SECTION_NAME          boot_text
      90             : #define BOOT_BSS_SECTION_NAME           boot_bss
      91             : #define BOOT_RODATA_SECTION_NAME        boot_rodata
      92             : #define BOOT_DATA_SECTION_NAME          boot_data
      93             : #define BOOT_NOINIT_SECTION_NAME        boot_noinit
      94             : #endif
      95             : 
      96             : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
      97             : #define PINNED_TEXT_SECTION_NAME        pinned_text
      98             : #define PINNED_BSS_SECTION_NAME         pinned_bss
      99             : #define PINNED_RODATA_SECTION_NAME      pinned_rodata
     100             : #define PINNED_DATA_SECTION_NAME        pinned_data
     101             : #define PINNED_NOINIT_SECTION_NAME      pinned_noinit
     102             : #endif
     103             : 
     104             : #if defined(CONFIG_LINKER_USE_ONDEMAND_SECTION)
     105             : #define ONDEMAND_TEXT_SECTION_NAME      ondemand_text
     106             : #define ONDEMAND_RODATA_SECTION_NAME    ondemand_rodata
     107             : #endif
     108             : 
     109             : /* Short section references for use in ASM files */
     110             : #if defined(_ASMLANGUAGE)
     111             : /* Various text section names */
     112             : #define TEXT text
     113             : 
     114             : /* Various data type section names */
     115             : #define BSS bss
     116             : #define RODATA rodata
     117             : #define DATA data
     118             : #define NOINIT noinit
     119             : 
     120             : #if defined(CONFIG_LINKER_USE_BOOT_SECTION)
     121             : #define BOOT_TEXT                       BOOT_TEXT_SECTION_NAME
     122             : #define BOOT_BSS                        BOOT_BSS_SECTION_NAME
     123             : #define BOOT_RODATA                     BOOT_RODATA_SECTION_NAME
     124             : #define BOOT_DATA                       BOOT_DATA_SECTION_NAME
     125             : #define BOOT_NOINIT                     BOOT_NOINIT_SECTION_NAME
     126             : #else
     127             : #define BOOT_TEXT                       TEXT
     128             : #define BOOT_BSS                        BSS
     129             : #define BOOT_RODATA                     RODATA
     130             : #define BOOT_DATA                       DATA
     131             : #define BOOT_NOINIT                     NOINIT
     132             : #endif /* CONFIG_LINKER_USE_BOOT_SECTION */
     133             : 
     134             : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
     135             : #define PINNED_TEXT                     PINNED_TEXT_SECTION_NAME
     136             : #define PINNED_BSS                      PINNED_BSS_SECTION_NAME
     137             : #define PINNED_RODATA                   PINNED_RODATA_SECTION_NAME
     138             : #define PINNED_DATA                     PINNED_DATA_SECTION_NAME
     139             : #define PINNED_NOINIT                   PINNED_NOINIT_SECTION_NAME
     140             : #else
     141             : #define PINNED_TEXT                     TEXT
     142             : #define PINNED_BSS                      BSS
     143             : #define PINNED_RODATA                   RODATA
     144             : #define PINNED_DATA                     DATA
     145             : #define PINNED_NOINIT                   NOINIT
     146             : #endif /* CONFIG_LINKER_USE_PINNED_SECTION */
     147             : 
     148             : #if defined(CONFIG_LINKER_USE_ONDEMAND_SECTION)
     149             : #define ONDEMAND_TEXT                   ONDEMAND_TEXT_SECTION_NAME
     150             : #define ONDEMAND_RODATA         ONDEMAND_RODATA_SECTION_NAME
     151             : #else
     152             : #define ONDEMAND_TEXT                   TEXT
     153             : #define ONDEMAND_RODATA         RODATA
     154             : #endif /* CONFIG_LINKER_USE_ONDEMAND_SECTION */
     155             : 
     156             : #endif /* _ASMLANGUAGE */
     157             : 
     158             : #include <zephyr/linker/section_tags.h>
     159             : 
     160             : #endif /* ZEPHYR_INCLUDE_LINKER_SECTIONS_H_ */

Generated by: LCOV version 1.14