Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #include <asm/page.h>
0003 
0004 /*
0005  * .boot.data section is shared between the decompressor code and the
0006  * decompressed kernel. The decompressor will store values in it, and copy
0007  * over to the decompressed image before starting it.
0008  *
0009  * .boot.data variables are kept in separate .boot.data.<var name> sections,
0010  * which are sorted by alignment first, then by name before being merged
0011  * into single .boot.data section. This way big holes cased by page aligned
0012  * structs are avoided and linker produces consistent result.
0013  */
0014 #define BOOT_DATA                           \
0015     . = ALIGN(PAGE_SIZE);                       \
0016     .boot.data : {                          \
0017         __boot_data_start = .;                  \
0018         *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.boot.data*)))     \
0019         __boot_data_end = .;                    \
0020     }
0021 
0022 /*
0023  * .boot.preserved.data is similar to .boot.data, but it is not part of the
0024  * .init section and thus will be preserved for later use in the decompressed
0025  * kernel.
0026  */
0027 #define BOOT_DATA_PRESERVED                     \
0028     . = ALIGN(PAGE_SIZE);                       \
0029     .boot.preserved.data : {                    \
0030         __boot_data_preserved_start = .;            \
0031         *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.boot.preserved.data*))) \
0032         __boot_data_preserved_end = .;              \
0033     }