39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
|
/* 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 */
|