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)8static 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 }; 28 29 /* Symbols defined by linker scripts */ 30 extern char _end[]; 31 extern unsigned char _compressed_start[]; 32 extern unsigned char _compressed_end[]; 33 extern char _vmlinux_info[]; 34 35 #define vmlinux (*(struct vmlinux_info *)_vmlinux_info) 36 37 #endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */ 38