misc.h 2.4 KB
Newer Older
1 2 3 4
#ifndef BOOT_COMPRESSED_MISC_H
#define BOOT_COMPRESSED_MISC_H

/*
5 6 7 8
 * Special hack: 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. (This list needs to be extended when new
 * paravirt and debugging variants are added.)
9 10
 */
#undef CONFIG_PARAVIRT
11
#undef CONFIG_PARAVIRT_SPINLOCKS
12
#undef CONFIG_KASAN
13 14 15 16 17 18 19 20

#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>
21
#include <asm/bootparam_utils.h>
22 23

#define BOOT_BOOT_H
24
#include "../ctype.h"
25

26 27 28 29 30 31
#ifdef CONFIG_X86_64
#define memptr long
#else
#define memptr unsigned
#endif

32
/* misc.c */
33 34
extern memptr free_mem_ptr;
extern memptr free_mem_end_ptr;
35
extern struct boot_params *real_mode;		/* Pointer to real-mode data */
36
void __putstr(const char *s);
37
void __puthex(unsigned long value);
38
#define error_putstr(__x)  __putstr(__x)
39
#define error_puthex(__x)  __puthex(__x)
40 41 42 43

#ifdef CONFIG_X86_VERBOSE_BOOTUP

#define debug_putstr(__x)  __putstr(__x)
44 45 46 47 48 49
#define debug_puthex(__x)  __puthex(__x)
#define debug_putaddr(__x) { \
		debug_putstr(#__x ": 0x"); \
		debug_puthex((unsigned long)(__x)); \
		debug_putstr("\n"); \
	}
50 51 52 53 54

#else

static inline void debug_putstr(const char *s)
{ }
55 56 57
static inline void debug_puthex(const char *s)
{ }
#define debug_putaddr(x) /* */
58 59

#endif
60

61
#if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE
62 63 64
/* cmdline.c */
int cmdline_find_option(const char *option, char *buffer, int bufsize);
int cmdline_find_option_bool(const char *option);
65
#endif
66 67


68
#if CONFIG_RANDOMIZE_BASE
K
Kees Cook 已提交
69
/* kaslr.c */
70 71
unsigned char *choose_kernel_location(struct boot_params *boot_params,
				      unsigned char *input,
72 73 74
				      unsigned long input_size,
				      unsigned char *output,
				      unsigned long output_size);
75 76
/* cpuflags.c */
bool has_cpuflag(int flag);
77
#else
78
static inline
79 80
unsigned char *choose_kernel_location(struct boot_params *boot_params,
				      unsigned char *input,
81 82 83 84 85 86 87
				      unsigned long input_size,
				      unsigned char *output,
				      unsigned long output_size)
{
	return output;
}
#endif
88

89
#ifdef CONFIG_EARLY_PRINTK
90
/* early_serial_console.c */
91 92 93
extern int early_serial_base;
void console_init(void);
#else
94 95 96 97 98
static const int early_serial_base;
static inline void console_init(void)
{ }
#endif

99
#endif