root/arch/x86/boot/compressed/misc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. debug_putstr
  2. debug_puthex
  3. choose_random_location
  4. initialize_identity_maps
  5. add_identity_map
  6. finalize_identity_maps
  7. console_init
  8. get_rsdp_addr
  9. count_immovable_mem_regions

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef BOOT_COMPRESSED_MISC_H
   3 #define BOOT_COMPRESSED_MISC_H
   4 
   5 /*
   6  * Special hack: we have to be careful, because no indirections are allowed here,
   7  * and paravirt_ops is a kind of one. As it will only run in baremetal anyway,
   8  * we just keep it from happening. (This list needs to be extended when new
   9  * paravirt and debugging variants are added.)
  10  */
  11 #undef CONFIG_PARAVIRT
  12 #undef CONFIG_PARAVIRT_XXL
  13 #undef CONFIG_PARAVIRT_SPINLOCKS
  14 #undef CONFIG_KASAN
  15 
  16 /* cpu_feature_enabled() cannot be used this early */
  17 #define USE_EARLY_PGTABLE_L5
  18 
  19 #include <linux/linkage.h>
  20 #include <linux/screen_info.h>
  21 #include <linux/elf.h>
  22 #include <linux/io.h>
  23 #include <asm/page.h>
  24 #include <asm/boot.h>
  25 #include <asm/bootparam.h>
  26 
  27 #define BOOT_CTYPE_H
  28 #include <linux/acpi.h>
  29 
  30 #define BOOT_BOOT_H
  31 #include "../ctype.h"
  32 
  33 #ifdef CONFIG_X86_64
  34 #define memptr long
  35 #else
  36 #define memptr unsigned
  37 #endif
  38 
  39 /* misc.c */
  40 extern memptr free_mem_ptr;
  41 extern memptr free_mem_end_ptr;
  42 extern struct boot_params *boot_params;
  43 void __putstr(const char *s);
  44 void __puthex(unsigned long value);
  45 #define error_putstr(__x)  __putstr(__x)
  46 #define error_puthex(__x)  __puthex(__x)
  47 
  48 #ifdef CONFIG_X86_VERBOSE_BOOTUP
  49 
  50 #define debug_putstr(__x)  __putstr(__x)
  51 #define debug_puthex(__x)  __puthex(__x)
  52 #define debug_putaddr(__x) { \
  53                 debug_putstr(#__x ": 0x"); \
  54                 debug_puthex((unsigned long)(__x)); \
  55                 debug_putstr("\n"); \
  56         }
  57 
  58 #else
  59 
  60 static inline void debug_putstr(const char *s)
  61 { }
  62 static inline void debug_puthex(const char *s)
  63 { }
  64 #define debug_putaddr(x) /* */
  65 
  66 #endif
  67 
  68 /* cmdline.c */
  69 int cmdline_find_option(const char *option, char *buffer, int bufsize);
  70 int cmdline_find_option_bool(const char *option);
  71 
  72 struct mem_vector {
  73         unsigned long long start;
  74         unsigned long long size;
  75 };
  76 
  77 #if CONFIG_RANDOMIZE_BASE
  78 /* kaslr.c */
  79 void choose_random_location(unsigned long input,
  80                             unsigned long input_size,
  81                             unsigned long *output,
  82                             unsigned long output_size,
  83                             unsigned long *virt_addr);
  84 /* cpuflags.c */
  85 bool has_cpuflag(int flag);
  86 #else
  87 static inline void choose_random_location(unsigned long input,
  88                                           unsigned long input_size,
  89                                           unsigned long *output,
  90                                           unsigned long output_size,
  91                                           unsigned long *virt_addr)
  92 {
  93 }
  94 #endif
  95 
  96 #ifdef CONFIG_X86_64
  97 void initialize_identity_maps(void);
  98 void add_identity_map(unsigned long start, unsigned long size);
  99 void finalize_identity_maps(void);
 100 extern unsigned char _pgtable[];
 101 #else
 102 static inline void initialize_identity_maps(void)
 103 { }
 104 static inline void add_identity_map(unsigned long start, unsigned long size)
 105 { }
 106 static inline void finalize_identity_maps(void)
 107 { }
 108 #endif
 109 
 110 #ifdef CONFIG_EARLY_PRINTK
 111 /* early_serial_console.c */
 112 extern int early_serial_base;
 113 void console_init(void);
 114 #else
 115 static const int early_serial_base;
 116 static inline void console_init(void)
 117 { }
 118 #endif
 119 
 120 void set_sev_encryption_mask(void);
 121 
 122 /* acpi.c */
 123 #ifdef CONFIG_ACPI
 124 acpi_physical_address get_rsdp_addr(void);
 125 #else
 126 static inline acpi_physical_address get_rsdp_addr(void) { return 0; }
 127 #endif
 128 
 129 #if defined(CONFIG_RANDOMIZE_BASE) && defined(CONFIG_MEMORY_HOTREMOVE) && defined(CONFIG_ACPI)
 130 extern struct mem_vector immovable_mem[MAX_NUMNODES*2];
 131 int count_immovable_mem_regions(void);
 132 #else
 133 static inline int count_immovable_mem_regions(void) { return 0; }
 134 #endif
 135 
 136 #endif /* BOOT_COMPRESSED_MISC_H */

/* [<][>][^][v][top][bottom][index][help] */