decompressor.h (1064B)
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 8static inline void *decompress_kernel(void) { return NULL; } 9#else 10void *decompress_kernel(void); 11#endif 12unsigned long mem_safe_offset(void); 13void error(char *m); 14 15struct 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 */ 31extern char _end[]; 32extern unsigned char _compressed_start[]; 33extern unsigned char _compressed_end[]; 34extern char _vmlinux_info[]; 35 36#define vmlinux (*(struct vmlinux_info *)_vmlinux_info) 37 38#endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */