5dcd14ecd4
Use the new sentinel field to detect bootloaders which fail to follow protocol and don't initialize fields in struct boot_params that they do not explicitly initialize to zero. Based on an original patch and research by Yinghai Lu. Changed by hpa to be invoked both in the decompression path and in the kernel proper; the latter for the case where a bootloader takes over decompression. Originally-by: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/1359058816-7615-26-git-send-email-yinghai@kernel.org Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
#ifndef BOOT_COMPRESSED_MISC_H
|
|
#define BOOT_COMPRESSED_MISC_H
|
|
|
|
/*
|
|
* we have to be careful, because no indirections are allowed here, and
|
|
* paravirt_ops is a kind of one. As it will only run in baremetal anyway,
|
|
* we just keep it from happening
|
|
*/
|
|
#undef CONFIG_PARAVIRT
|
|
#ifdef CONFIG_X86_32
|
|
#define _ASM_X86_DESC_H 1
|
|
#endif
|
|
|
|
#include <linux/linkage.h>
|
|
#include <linux/screen_info.h>
|
|
#include <linux/elf.h>
|
|
#include <linux/io.h>
|
|
#include <asm/page.h>
|
|
#include <asm/boot.h>
|
|
#include <asm/bootparam.h>
|
|
#include <asm/bootparam_utils.h>
|
|
|
|
#define BOOT_BOOT_H
|
|
#include "../ctype.h"
|
|
|
|
/* misc.c */
|
|
extern struct boot_params *real_mode; /* Pointer to real-mode data */
|
|
void __putstr(const char *s);
|
|
#define error_putstr(__x) __putstr(__x)
|
|
|
|
#ifdef CONFIG_X86_VERBOSE_BOOTUP
|
|
|
|
#define debug_putstr(__x) __putstr(__x)
|
|
|
|
#else
|
|
|
|
static inline void debug_putstr(const char *s)
|
|
{ }
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_EARLY_PRINTK
|
|
|
|
/* cmdline.c */
|
|
int cmdline_find_option(const char *option, char *buffer, int bufsize);
|
|
int cmdline_find_option_bool(const char *option);
|
|
|
|
/* early_serial_console.c */
|
|
extern int early_serial_base;
|
|
void console_init(void);
|
|
|
|
#else
|
|
|
|
/* early_serial_console.c */
|
|
static const int early_serial_base;
|
|
static inline void console_init(void)
|
|
{ }
|
|
|
|
#endif
|
|
|
|
#endif
|