Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _S390_SECTIONS_H |
3 | #define _S390_SECTIONS_H | |
4 | ||
7a5da02d GS |
5 | #define arch_is_kernel_initmem_freed arch_is_kernel_initmem_freed |
6 | ||
1da177e4 LT |
7 | #include <asm-generic/sections.h> |
8 | ||
7a5da02d GS |
9 | extern bool initmem_freed; |
10 | ||
11 | static inline int arch_is_kernel_initmem_freed(unsigned long addr) | |
12 | { | |
13 | if (!initmem_freed) | |
14 | return 0; | |
15 | return addr >= (unsigned long)__init_begin && | |
16 | addr < (unsigned long)__init_end; | |
17 | } | |
18 | ||
d1b52a43 VG |
19 | /* |
20 | * .boot.data section contains variables "shared" between the decompressor and | |
21 | * the decompressed kernel. The decompressor will store values in them, and | |
22 | * copy over to the decompressed image before starting it. | |
23 | * | |
24 | * Each variable end up in its own intermediate section .boot.data.<var name>, | |
25 | * those sections are later sorted by alignment + name and merged together into | |
26 | * final .boot.data section, which should be identical in the decompressor and | |
27 | * the decompressed kernel (that is checked during the build). | |
28 | */ | |
29 | #define __bootdata(var) __section(.boot.data.var) var | |
30 | ||
bf9921a9 GS |
31 | /* |
32 | * .boot.preserved.data is similar to .boot.data, but it is not part of the | |
33 | * .init section and thus will be preserved for later use in the decompressed | |
34 | * kernel. | |
35 | */ | |
36 | #define __bootdata_preserved(var) __section(.boot.preserved.data.var) var | |
37 | ||
a80313ff GS |
38 | extern unsigned long __sdma, __edma; |
39 | extern unsigned long __stext_dma, __etext_dma; | |
40 | ||
1da177e4 | 41 | #endif |