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

          Line data    Source code
       1           0 : /* Macros for tagging symbols and putting them in the correct sections. */
       2             : 
       3             : /*
       4             :  * Copyright (c) 2013-2014, Wind River Systems, Inc.
       5             :  *
       6             :  * SPDX-License-Identifier: Apache-2.0
       7             :  */
       8             : 
       9             : #ifndef ZEPHYR_INCLUDE_LINKER_SECTION_TAGS_H_
      10             : #define ZEPHYR_INCLUDE_LINKER_SECTION_TAGS_H_
      11             : 
      12             : #include <zephyr/toolchain.h>
      13             : 
      14             : #if !defined(_ASMLANGUAGE)
      15             : 
      16             : #include <zephyr/linker/sections.h>
      17             : 
      18             : #define __noinit                __in_section_unique(_NOINIT_SECTION_NAME)
      19             : #define __noinit_named(name)    __in_section_unique_named(_NOINIT_SECTION_NAME, name)
      20             : #define __irq_vector_table      Z_GENERIC_SECTION(_IRQ_VECTOR_TABLE_SECTION_NAME)
      21             : #define __sw_isr_table          Z_GENERIC_SECTION(_SW_ISR_TABLE_SECTION_NAME)
      22             : 
      23             : #ifdef CONFIG_SHARED_INTERRUPTS
      24             : #define __shared_sw_isr_table   Z_GENERIC_SECTION(_SHARED_SW_ISR_TABLE_SECTION_NAME)
      25             : #endif /* CONFIG_SHARED_INTERRUPTS */
      26             : 
      27             : /* Attribute macros to place code and data into IMR memory */
      28             : #define __imr __in_section_unique(imr)
      29             : #define __imrdata __in_section_unique(imrdata)
      30             : 
      31             : #if defined(CONFIG_ARM)
      32             : #define __kinetis_flash_config_section __in_section_unique(_KINETIS_FLASH_CONFIG_SECTION_NAME)
      33             : #define __ti_ccfg_section Z_GENERIC_SECTION(_TI_CCFG_SECTION_NAME)
      34             : #define __ccm_data_section Z_GENERIC_SECTION(_CCM_DATA_SECTION_NAME)
      35             : #define __ccm_bss_section Z_GENERIC_SECTION(_CCM_BSS_SECTION_NAME)
      36             : #define __ccm_noinit_section Z_GENERIC_SECTION(_CCM_NOINIT_SECTION_NAME)
      37             : #define __itcm_section Z_GENERIC_SECTION(_ITCM_SECTION_NAME)
      38             : #define __dtcm_data_section Z_GENERIC_SECTION(_DTCM_DATA_SECTION_NAME)
      39             : #define __dtcm_bss_section Z_GENERIC_SECTION(_DTCM_BSS_SECTION_NAME)
      40             : #define __dtcm_noinit_section Z_GENERIC_SECTION(_DTCM_NOINIT_SECTION_NAME)
      41             : #define __ocm_data_section Z_GENERIC_SECTION(_OCM_DATA_SECTION_NAME)
      42             : #define __ocm_bss_section Z_GENERIC_SECTION(_OCM_BSS_SECTION_NAME)
      43             : #define __imx_boot_conf_section Z_GENERIC_SECTION(_IMX_BOOT_CONF_SECTION_NAME)
      44             : #define __imx_boot_data_section Z_GENERIC_SECTION(_IMX_BOOT_DATA_SECTION_NAME)
      45             : #define __imx_boot_ivt_section Z_GENERIC_SECTION(_IMX_BOOT_IVT_SECTION_NAME)
      46             : #define __imx_boot_dcd_section Z_GENERIC_SECTION(_IMX_BOOT_DCD_SECTION_NAME)
      47             : #define __imx_boot_container_section Z_GENERIC_SECTION(_IMX_BOOT_CONTAINER_SECTION_NAME)
      48             : #define __stm32_sdram1_section Z_GENERIC_SECTION(_STM32_SDRAM1_SECTION_NAME)
      49             : #define __stm32_sdram2_section Z_GENERIC_SECTION(_STM32_SDRAM2_SECTION_NAME)
      50             : #define __stm32_backup_sram_section Z_GENERIC_SECTION(_STM32_BACKUP_SRAM_SECTION_NAME)
      51             : #endif /* CONFIG_ARM */
      52             : 
      53             : #if defined(CONFIG_NOCACHE_MEMORY)
      54             : #define __nocache __in_section_unique(_NOCACHE_SECTION_NAME)
      55             : #define __nocache_noinit __nocache
      56             : #else
      57             : #define __nocache
      58             : #define __nocache_noinit __noinit
      59             : #endif /* CONFIG_NOCACHE_MEMORY */
      60             : 
      61             : #if defined(CONFIG_KERNEL_COHERENCE)
      62             : #define __incoherent __in_section_unique(cached)
      63             : #if defined(CONFIG_USERSPACE)
      64             : #define __stackmem Z_GENERIC_SECTION(.user_stacks)
      65             : #else
      66             : #define __stackmem __incoherent
      67             : #endif /* CONFIG_USERSPACE */
      68             : #define __kstackmem __incoherent
      69             : #else
      70             : #define __incoherent
      71             : #define __stackmem Z_GENERIC_SECTION(.user_stacks)
      72             : #define __kstackmem __noinit
      73             : #endif /* CONFIG_KERNEL_COHERENCE */
      74             : 
      75             : #if defined(CONFIG_LINKER_USE_BOOT_SECTION)
      76             : #define __boot_func     Z_GENERIC_DOT_SECTION(BOOT_TEXT_SECTION_NAME)
      77             : #define __boot_data     Z_GENERIC_DOT_SECTION(BOOT_DATA_SECTION_NAME)
      78             : #define __boot_rodata   Z_GENERIC_DOT_SECTION(BOOT_RODATA_SECTION_NAME)
      79             : #define __boot_bss      Z_GENERIC_DOT_SECTION(BOOT_BSS_SECTION_NAME)
      80             : #define __boot_noinit   Z_GENERIC_DOT_SECTION(BOOT_NOINIT_SECTION_NAME)
      81             : #else
      82             : #define __boot_func
      83             : #define __boot_data
      84             : #define __boot_rodata
      85             : #define __boot_bss
      86             : #define __boot_noinit   __noinit
      87             : #endif /* CONFIG_LINKER_USE_BOOT_SECTION */
      88             : 
      89             : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
      90             : #define __pinned_func   Z_GENERIC_DOT_SECTION(PINNED_TEXT_SECTION_NAME)
      91             : #define __pinned_data   Z_GENERIC_DOT_SECTION(PINNED_DATA_SECTION_NAME)
      92             : #define __pinned_rodata Z_GENERIC_DOT_SECTION(PINNED_RODATA_SECTION_NAME)
      93             : #define __pinned_bss    Z_GENERIC_DOT_SECTION(PINNED_BSS_SECTION_NAME)
      94             : #define __pinned_noinit Z_GENERIC_DOT_SECTION(PINNED_NOINIT_SECTION_NAME)
      95             : #else
      96             : #define __pinned_func
      97             : #define __pinned_data
      98             : #define __pinned_rodata
      99             : #define __pinned_bss
     100             : #define __pinned_noinit __noinit
     101             : #endif /* CONFIG_LINKER_USE_PINNED_SECTION */
     102             : 
     103             : #if defined(CONFIG_LINKER_USE_ONDEMAND_SECTION)
     104             : #define __ondemand_func Z_GENERIC_DOT_SECTION(ONDEMAND_TEXT_SECTION_NAME)
     105             : #define __ondemand_rodata       Z_GENERIC_DOT_SECTION(ONDEMAND_RODATA_SECTION_NAME)
     106             : #else
     107             : #define __ondemand_func
     108             : #define __ondemand_rodata
     109             : #endif /* CONFIG_LINKER_USE_ONDEMAND_SECTION */
     110             : 
     111             : #if defined(CONFIG_LINKER_USE_PINNED_SECTION)
     112             : #define __isr           __pinned_func
     113             : #else
     114             : #define __isr
     115             : #endif
     116             : 
     117             : /* Symbol table section */
     118             : #if defined(CONFIG_SYMTAB)
     119             : #define __symtab_info           Z_GENERIC_SECTION(_SYMTAB_INFO_SECTION_NAME)
     120             : #define __symtab_entry          Z_GENERIC_SECTION(_SYMTAB_ENTRY_SECTION_NAME)
     121             : #endif /* CONFIG_SYMTAB */
     122             : 
     123             : #endif /* !_ASMLANGUAGE */
     124             : 
     125             : #endif /* ZEPHYR_INCLUDE_LINKER_SECTION_TAGS_H_ */

Generated by: LCOV version 1.14