18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef BOOT_COMPRESSED_DECOMPRESSOR_H 38c2ecf20Sopenharmony_ci#define BOOT_COMPRESSED_DECOMPRESSOR_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#ifdef CONFIG_KERNEL_UNCOMPRESSED 68c2ecf20Sopenharmony_cistatic inline void *decompress_kernel(void) {} 78c2ecf20Sopenharmony_ci#else 88c2ecf20Sopenharmony_civoid *decompress_kernel(void); 98c2ecf20Sopenharmony_ci#endif 108c2ecf20Sopenharmony_ciunsigned long mem_safe_offset(void); 118c2ecf20Sopenharmony_civoid error(char *m); 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistruct vmlinux_info { 148c2ecf20Sopenharmony_ci unsigned long default_lma; 158c2ecf20Sopenharmony_ci void (*entry)(void); 168c2ecf20Sopenharmony_ci unsigned long image_size; /* does not include .bss */ 178c2ecf20Sopenharmony_ci unsigned long bss_size; /* uncompressed image .bss size */ 188c2ecf20Sopenharmony_ci unsigned long bootdata_off; 198c2ecf20Sopenharmony_ci unsigned long bootdata_size; 208c2ecf20Sopenharmony_ci unsigned long bootdata_preserved_off; 218c2ecf20Sopenharmony_ci unsigned long bootdata_preserved_size; 228c2ecf20Sopenharmony_ci unsigned long dynsym_start; 238c2ecf20Sopenharmony_ci unsigned long rela_dyn_start; 248c2ecf20Sopenharmony_ci unsigned long rela_dyn_end; 258c2ecf20Sopenharmony_ci}; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciextern char _vmlinux_info[]; 288c2ecf20Sopenharmony_ci#define vmlinux (*(struct vmlinux_info *)_vmlinux_info) 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */ 31