1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef BOOT_COMPRESSED_DECOMPRESSOR_H
3 #define BOOT_COMPRESSED_DECOMPRESSOR_H
4 
5 #include <linux/stddef.h>
6 
7 #ifdef CONFIG_KERNEL_UNCOMPRESSED
decompress_kernel(void)8 static inline void *decompress_kernel(void) { return NULL; }
9 #else
10 void *decompress_kernel(void);
11 #endif
12 unsigned long mem_safe_offset(void);
13 void error(char *m);
14 
15 struct vmlinux_info {
16 	unsigned long default_lma;
17 	void (*entry)(void);
18 	unsigned long image_size;	/* does not include .bss */
19 	unsigned long bss_size;		/* uncompressed image .bss size */
20 	unsigned long bootdata_off;
21 	unsigned long bootdata_size;
22 	unsigned long bootdata_preserved_off;
23 	unsigned long bootdata_preserved_size;
24 	unsigned long dynsym_start;
25 	unsigned long rela_dyn_start;
26 	unsigned long rela_dyn_end;
27 	unsigned long amode31_size;
28 };
29 
30 /* Symbols defined by linker scripts */
31 extern char _end[];
32 extern unsigned char _compressed_start[];
33 extern unsigned char _compressed_end[];
34 extern char _vmlinux_info[];
35 
36 #define vmlinux (*(struct vmlinux_info *)_vmlinux_info)
37 
38 #endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */
39