RTEMS 6.1-rc1
linker-symbols.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
11/*
12 * Copyright (C) 2008, 2016 embedded brains GmbH & Co. KG
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in the
21 * documentation and/or other materials provided with the distribution.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
36#ifndef LIBBSP_ARM_SHARED_LINKER_SYMBOLS_H
37#define LIBBSP_ARM_SHARED_LINKER_SYMBOLS_H
38
40
41#ifdef __cplusplus
42extern "C" {
43#endif /* __cplusplus */
44
55#ifndef ASM
56 #define LINKER_SYMBOL(sym) extern char sym [];
57#else
58 #define LINKER_SYMBOL(sym) .extern sym
59#endif
60
61LINKER_SYMBOL(bsp_stack_fiq_size)
62LINKER_SYMBOL(bsp_stack_abt_size)
63LINKER_SYMBOL(bsp_stack_und_size)
64LINKER_SYMBOL(bsp_stack_hyp_size)
65
66LINKER_SYMBOL(bsp_section_start_begin)
67LINKER_SYMBOL(bsp_section_start_end)
68LINKER_SYMBOL(bsp_section_start_size)
69
70LINKER_SYMBOL(bsp_section_vector_begin)
71LINKER_SYMBOL(bsp_section_vector_end)
72LINKER_SYMBOL(bsp_section_vector_size)
73
74LINKER_SYMBOL(bsp_section_text_begin)
75LINKER_SYMBOL(bsp_section_text_end)
76LINKER_SYMBOL(bsp_section_text_size)
77LINKER_SYMBOL(bsp_section_text_load_begin)
78LINKER_SYMBOL(bsp_section_text_load_end)
79
80LINKER_SYMBOL(bsp_section_rodata_begin)
81LINKER_SYMBOL(bsp_section_rodata_end)
82LINKER_SYMBOL(bsp_section_rodata_size)
83LINKER_SYMBOL(bsp_section_rodata_load_begin)
84LINKER_SYMBOL(bsp_section_rodata_load_end)
85
86LINKER_SYMBOL(bsp_section_data_begin)
87LINKER_SYMBOL(bsp_section_data_end)
88LINKER_SYMBOL(bsp_section_data_size)
89LINKER_SYMBOL(bsp_section_data_load_begin)
90LINKER_SYMBOL(bsp_section_data_load_end)
91
92LINKER_SYMBOL(bsp_section_fast_text_begin)
93LINKER_SYMBOL(bsp_section_fast_text_end)
94LINKER_SYMBOL(bsp_section_fast_text_size)
95LINKER_SYMBOL(bsp_section_fast_text_load_begin)
96LINKER_SYMBOL(bsp_section_fast_text_load_end)
97
98LINKER_SYMBOL(bsp_section_fast_data_begin)
99LINKER_SYMBOL(bsp_section_fast_data_end)
100LINKER_SYMBOL(bsp_section_fast_data_size)
101LINKER_SYMBOL(bsp_section_fast_data_load_begin)
102LINKER_SYMBOL(bsp_section_fast_data_load_end)
103
104LINKER_SYMBOL(bsp_section_bss_begin)
105LINKER_SYMBOL(bsp_section_bss_end)
106LINKER_SYMBOL(bsp_section_bss_size)
107
108LINKER_SYMBOL(bsp_section_rtemsstack_begin)
109LINKER_SYMBOL(bsp_section_rtemsstack_end)
110LINKER_SYMBOL(bsp_section_rtemsstack_size)
111
112LINKER_SYMBOL(bsp_section_noinit_begin)
113LINKER_SYMBOL(bsp_section_noinit_end)
114LINKER_SYMBOL(bsp_section_noinit_size)
115
116LINKER_SYMBOL(bsp_section_work_begin)
117LINKER_SYMBOL(bsp_section_work_end)
118LINKER_SYMBOL(bsp_section_work_size)
119
120LINKER_SYMBOL(bsp_section_stack_begin)
121LINKER_SYMBOL(bsp_section_stack_end)
122LINKER_SYMBOL(bsp_section_stack_size)
123
124LINKER_SYMBOL(bsp_section_nocache_begin)
125LINKER_SYMBOL(bsp_section_nocache_end)
126LINKER_SYMBOL(bsp_section_nocache_size)
127LINKER_SYMBOL(bsp_section_nocache_load_begin)
128LINKER_SYMBOL(bsp_section_nocache_load_end)
129
130LINKER_SYMBOL(bsp_section_nocachenoload_begin)
131LINKER_SYMBOL(bsp_section_nocachenoload_end)
132LINKER_SYMBOL(bsp_section_nocachenoload_size)
133
134LINKER_SYMBOL(bsp_section_nocacheheap_begin)
135LINKER_SYMBOL(bsp_section_nocacheheap_end)
136LINKER_SYMBOL(bsp_section_nocacheheap_size)
137
138LINKER_SYMBOL(bsp_vector_table_begin)
139LINKER_SYMBOL(bsp_vector_table_end)
140LINKER_SYMBOL(bsp_vector_table_size)
141
142LINKER_SYMBOL(bsp_start_vector_table_begin)
143LINKER_SYMBOL(bsp_start_vector_table_end)
144LINKER_SYMBOL(bsp_start_vector_table_size)
145
146LINKER_SYMBOL(bsp_translation_table_base)
147LINKER_SYMBOL(bsp_translation_table_end)
148
149#define BSP_FAST_TEXT_SECTION \
150 RTEMS_SECTION(".bsp_fast_text")
151
152#define BSP_FAST_DATA_SECTION \
153 RTEMS_SECTION(".bsp_fast_data")
154
155#define BSP_NOCACHE_SECTION \
156 RTEMS_SECTION(".bsp_nocache")
157
158#define BSP_NOCACHE_SUBSECTION(subsection) \
159 RTEMS_SECTION(".bsp_nocache." # subsection)
160
161#define BSP_NOCACHENOLOAD_SECTION \
162 RTEMS_SECTION(".bsp_noload_nocache")
163
164#define BSP_NOCACHENOLOAD_SUBSECTION(subsection) \
165 RTEMS_SECTION(".bsp_noload_nocache." # subsection)
166
169#ifdef __cplusplus
170}
171#endif /* __cplusplus */
172
173#endif /* LIBBSP_ARM_SHARED_LINKER_SYMBOLS_H */
This header file provides basic definitions used by the API and the implementation.