1 #ifndef BOOT_COMPRESSED_MISC_H 2 #define BOOT_COMPRESSED_MISC_H 3 4 /* 5 * Special hack: we have to be careful, because no indirections are allowed here, 6 * and paravirt_ops is a kind of one. As it will only run in baremetal anyway, 7 * we just keep it from happening. (This list needs to be extended when new 8 * paravirt and debugging variants are added.) 9 */ 10 #undef CONFIG_PARAVIRT 11 #undef CONFIG_PARAVIRT_SPINLOCKS 12 #undef CONFIG_KASAN 13 14 #include <linux/linkage.h> 15 #include <linux/screen_info.h> 16 #include <linux/elf.h> 17 #include <linux/io.h> 18 #include <asm/page.h> 19 #include <asm/boot.h> 20 #include <asm/bootparam.h> 21 #include <asm/bootparam_utils.h> 22 23 #define BOOT_BOOT_H 24 #include "../ctype.h" 25 26 #ifdef CONFIG_X86_64 27 #define memptr long 28 #else 29 #define memptr unsigned 30 #endif 31 32 /* misc.c */ 33 extern memptr free_mem_ptr; 34 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 #ifdef CONFIG_X86_VERBOSE_BOOTUP 42 43 #define debug_putstr(__x) __putstr(__x) 44 #define debug_puthex(__x) __puthex(__x) 45 #define debug_putaddr(__x) { \ 46 debug_putstr(#__x ": 0x"); \ 47 debug_puthex((unsigned long)(__x)); \ 48 debug_putstr("\n"); \ 49 } 50 51 #else 52 53 static inline void debug_putstr(const char *s) 54 { } 55 static inline void debug_puthex(const char *s) 56 { } 57 #define debug_putaddr(x) /* */ 58 59 #endif 60 61 #if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE 62 /* cmdline.c */ 63 int cmdline_find_option(const char *option, char *buffer, int bufsize); 64 int cmdline_find_option_bool(const char *option); 65 #endif 66 67 68 #if CONFIG_RANDOMIZE_BASE 69 /* aslr.c */ 70 unsigned char *choose_kernel_location(struct boot_params *boot_params, 71 unsigned char *input, 72 unsigned long input_size, 73 unsigned char *output, 74 unsigned long output_size); 75 /* cpuflags.c */ 76 bool has_cpuflag(int flag); 77 #else 78 static inline 79 unsigned char *choose_kernel_location(struct boot_params *boot_params, 80 unsigned char *input, 81 unsigned long input_size, 82 unsigned char *output, 83 unsigned long output_size) 84 { 85 return output; 86 } 87 #endif 88 89 #ifdef CONFIG_EARLY_PRINTK 90 /* early_serial_console.c */ 91 extern int early_serial_base; 92 void console_init(void); 93 #else 94 static const int early_serial_base; 95 static inline void console_init(void) 96 { } 97 #endif 98 99 #endif 100