| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef BOOT_COMPRESSED_DECOMPRESSOR_H | |
| #define BOOT_COMPRESSED_DECOMPRESSOR_H | |
| #include <linux/stddef.h> | |
| #ifdef CONFIG_KERNEL_UNCOMPRESSED | |
| static inline void *decompress_kernel(void) { return NULL; } | |
| #else | |
| void *decompress_kernel(void); | |
| #endif | |
| unsigned long mem_safe_offset(void); | |
| void error(char *m); | |
| struct vmlinux_info { | |
| unsigned long default_lma; | |
| void (*entry)(void); | |
| unsigned long image_size; /* does not include .bss */ | |
| unsigned long bss_size; /* uncompressed image .bss size */ | |
| unsigned long bootdata_off; | |
| unsigned long bootdata_size; | |
| unsigned long bootdata_preserved_off; | |
| unsigned long bootdata_preserved_size; | |
| unsigned long dynsym_start; | |
| unsigned long rela_dyn_start; | |
| unsigned long rela_dyn_end; | |
| unsigned long amode31_size; | |
| }; | |
| /* Symbols defined by linker scripts */ | |
| extern char _end[]; | |
| extern unsigned char _compressed_start[]; | |
| extern unsigned char _compressed_end[]; | |
| extern char _vmlinux_info[]; | |
| #define vmlinux (*(struct vmlinux_info *)_vmlinux_info) | |
| #endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */ |