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