1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef BOOT_COMPRESSED_DECOMPRESSOR_H 3*4882a593Smuzhiyun #define BOOT_COMPRESSED_DECOMPRESSOR_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifdef CONFIG_KERNEL_UNCOMPRESSED decompress_kernel(void)6*4882a593Smuzhiyunstatic inline void *decompress_kernel(void) {} 7*4882a593Smuzhiyun #else 8*4882a593Smuzhiyun void *decompress_kernel(void); 9*4882a593Smuzhiyun #endif 10*4882a593Smuzhiyun unsigned long mem_safe_offset(void); 11*4882a593Smuzhiyun void error(char *m); 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct vmlinux_info { 14*4882a593Smuzhiyun unsigned long default_lma; 15*4882a593Smuzhiyun void (*entry)(void); 16*4882a593Smuzhiyun unsigned long image_size; /* does not include .bss */ 17*4882a593Smuzhiyun unsigned long bss_size; /* uncompressed image .bss size */ 18*4882a593Smuzhiyun unsigned long bootdata_off; 19*4882a593Smuzhiyun unsigned long bootdata_size; 20*4882a593Smuzhiyun unsigned long bootdata_preserved_off; 21*4882a593Smuzhiyun unsigned long bootdata_preserved_size; 22*4882a593Smuzhiyun unsigned long dynsym_start; 23*4882a593Smuzhiyun unsigned long rela_dyn_start; 24*4882a593Smuzhiyun unsigned long rela_dyn_end; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun extern char _vmlinux_info[]; 28*4882a593Smuzhiyun #define vmlinux (*(struct vmlinux_info *)_vmlinux_info) 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */ 31