Lines Matching +full:fixed +full:- +full:size
1 /* SPDX-License-Identifier: GPL-2.0 */
23 * Fixed (location) sections are used by opening fixed sections and emitting
24 * fixed section entries into them before closing them. Multiple fixed sections
27 * Each fixed section created in a .S file must have corresponding linkage
30 * For each fixed section, code is generated into it in the order which it
31 * appears in the source. Fixed section entries can be placed at a fixed
43 * FIXED_SECTION_ENTRY_BEGIN_LOCATION(section_name, label2, start_address, size)
44 * FIXED_SECTION_ENTRY_END_LOCATION(section_name, label2, start_address, size)
50 * - If the build dies with "Error: attempt to move .org backwards" at
54 * - If the build dies in linking, check arch/powerpc/tools/head_check.sh
56 * - If the kernel crashes or hangs in very early boot, it could be linker
63 sname##_len = (end) - (start); \
95 sname##_len = (end) - (start); \
121 #define FIXED_SECTION_ENTRY_BEGIN_LOCATION(sname, name, start, size) \
124 .if ((start) % (size) != 0); \
125 .error "Fixed section exception vector misalignment"; \
127 .if ((size) != 0x20) && ((size) != 0x80) && ((size) != 0x100) && ((size) != 0x1000); \
128 .error "Fixed section exception vector bad size"; \
131 .error "Fixed section underflow"; \
134 . = (start) - sname##_start; \
138 #define FIXED_SECTION_ENTRY_END_LOCATION(sname, name, start, size) \
139 .if (start) + (size) > sname##_end; \
140 .error "Fixed section overflow"; \
143 .if (. - name > (start) + (size) - name##_start); \
144 .error "Fixed entry overflow"; \
147 . = ((start) + (size) - sname##_start); \
151 * These macros are used to change symbols in other fixed sections to be
152 * absolute or related to our current fixed section.
154 * - DEFINE_FIXED_SYMBOL / FIXED_SYMBOL_ABS_ADDR is used to find the
155 * absolute address of a symbol within a fixed section, from any section.
157 * - ABS_ADDR is used to find the absolute address of any symbol, from within
158 * a fixed section.
162 label##_absolute = (label - start_ ## sname + sname ## _start)
168 #define ABS_ADDR(label, sname) (label - start_ ## sname + sname ## _start)