Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:42

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup RTEMSBSPsLinkerSymbols
0007  *
0008  * @brief This header file provides interfaces to BSP-specific linker symbols
0009  *   and sections.
0010  */
0011 
0012 /*
0013  * Copyright (C) 2008, 2024 embedded brains GmbH & Co. KG
0014  *
0015  * Redistribution and use in source and binary forms, with or without
0016  * modification, are permitted provided that the following conditions
0017  * are met:
0018  * 1. Redistributions of source code must retain the above copyright
0019  *    notice, this list of conditions and the following disclaimer.
0020  * 2. Redistributions in binary form must reproduce the above copyright
0021  *    notice, this list of conditions and the following disclaimer in the
0022  *    documentation and/or other materials provided with the distribution.
0023  *
0024  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0025  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0026  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0027  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0028  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0029  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0030  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0031  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0032  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0033  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0034  * POSSIBILITY OF SUCH DAMAGE.
0035  */
0036 
0037 #ifndef BSP_LINKER_SYMBOLS_H
0038 #define BSP_LINKER_SYMBOLS_H
0039 
0040 #include <bsp/linker-symbols-arch.h>
0041 
0042 #include <rtems/score/basedefs.h>
0043 
0044 #ifdef __cplusplus
0045 extern "C" {
0046 #endif /* __cplusplus */
0047 
0048 /**
0049  * @defgroup RTEMSBSPsLinkerSymbols Linker Symbols and Sections
0050  *
0051  * @ingroup RTEMSBSPsShared
0052  *
0053  * @brief This group provides support for BSP-specific linker symbols and
0054  *   sections.
0055  *
0056  * @{
0057  */
0058 
0059 LINKER_SYMBOL(bsp_section_start_begin)
0060 LINKER_SYMBOL(bsp_section_start_end)
0061 LINKER_SYMBOL(bsp_section_start_size)
0062 
0063 LINKER_SYMBOL(bsp_section_text_begin)
0064 LINKER_SYMBOL(bsp_section_text_end)
0065 LINKER_SYMBOL(bsp_section_text_size)
0066 LINKER_SYMBOL(bsp_section_text_load_begin)
0067 LINKER_SYMBOL(bsp_section_text_load_end)
0068 
0069 LINKER_SYMBOL(bsp_section_rodata_begin)
0070 LINKER_SYMBOL(bsp_section_rodata_end)
0071 LINKER_SYMBOL(bsp_section_rodata_size)
0072 LINKER_SYMBOL(bsp_section_rodata_load_begin)
0073 LINKER_SYMBOL(bsp_section_rodata_load_end)
0074 
0075 LINKER_SYMBOL(bsp_section_data_begin)
0076 LINKER_SYMBOL(bsp_section_data_end)
0077 LINKER_SYMBOL(bsp_section_data_size)
0078 LINKER_SYMBOL(bsp_section_data_load_begin)
0079 LINKER_SYMBOL(bsp_section_data_load_end)
0080 
0081 LINKER_SYMBOL(bsp_section_fast_text_begin)
0082 LINKER_SYMBOL(bsp_section_fast_text_end)
0083 LINKER_SYMBOL(bsp_section_fast_text_size)
0084 LINKER_SYMBOL(bsp_section_fast_text_load_begin)
0085 LINKER_SYMBOL(bsp_section_fast_text_load_end)
0086 
0087 LINKER_SYMBOL(bsp_section_fast_data_begin)
0088 LINKER_SYMBOL(bsp_section_fast_data_end)
0089 LINKER_SYMBOL(bsp_section_fast_data_size)
0090 LINKER_SYMBOL(bsp_section_fast_data_load_begin)
0091 LINKER_SYMBOL(bsp_section_fast_data_load_end)
0092 
0093 LINKER_SYMBOL(bsp_section_bss_begin)
0094 LINKER_SYMBOL(bsp_section_bss_end)
0095 LINKER_SYMBOL(bsp_section_bss_size)
0096 
0097 LINKER_SYMBOL(bsp_section_rtemsstack_begin)
0098 LINKER_SYMBOL(bsp_section_rtemsstack_end)
0099 LINKER_SYMBOL(bsp_section_rtemsstack_size)
0100 
0101 LINKER_SYMBOL(bsp_section_noinit_begin)
0102 LINKER_SYMBOL(bsp_section_noinit_end)
0103 LINKER_SYMBOL(bsp_section_noinit_size)
0104 
0105 LINKER_SYMBOL(bsp_section_work_begin)
0106 LINKER_SYMBOL(bsp_section_work_end)
0107 LINKER_SYMBOL(bsp_section_work_size)
0108 
0109 LINKER_SYMBOL(bsp_section_stack_begin)
0110 LINKER_SYMBOL(bsp_section_stack_end)
0111 LINKER_SYMBOL(bsp_section_stack_size)
0112 
0113 LINKER_SYMBOL(bsp_section_nocache_begin)
0114 LINKER_SYMBOL(bsp_section_nocache_end)
0115 LINKER_SYMBOL(bsp_section_nocache_size)
0116 LINKER_SYMBOL(bsp_section_nocache_load_begin)
0117 LINKER_SYMBOL(bsp_section_nocache_load_end)
0118 
0119 LINKER_SYMBOL(bsp_section_nocachenoload_begin)
0120 LINKER_SYMBOL(bsp_section_nocachenoload_end)
0121 LINKER_SYMBOL(bsp_section_nocachenoload_size)
0122 
0123 LINKER_SYMBOL(bsp_section_nocacheheap_begin)
0124 LINKER_SYMBOL(bsp_section_nocacheheap_end)
0125 LINKER_SYMBOL(bsp_section_nocacheheap_size)
0126 
0127 #define BSP_FAST_TEXT_SECTION \
0128   RTEMS_SECTION(".bsp_fast_text")
0129 
0130 #define BSP_FAST_DATA_SECTION \
0131   RTEMS_SECTION(".bsp_fast_data")
0132 
0133 #define BSP_NOCACHE_SECTION \
0134   RTEMS_SECTION(".bsp_nocache")
0135 
0136 #define BSP_NOCACHE_SUBSECTION(subsection) \
0137   RTEMS_SECTION(".bsp_nocache." # subsection)
0138 
0139 #define BSP_NOCACHENOLOAD_SECTION \
0140   RTEMS_SECTION(".bsp_noload_nocache")
0141 
0142 #define BSP_NOCACHENOLOAD_SUBSECTION(subsection) \
0143   RTEMS_SECTION(".bsp_noload_nocache." # subsection)
0144 
0145 /** @} */
0146 
0147 #ifdef __cplusplus
0148 }
0149 #endif /* __cplusplus */
0150 
0151 #endif /* BSP_LINKER_SYMBOLS_H */