linux/arch/x86/boot/compressed/misc.h
<<
>>
Prefs
   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 */
  33extern memptr free_mem_ptr;
  34extern memptr free_mem_end_ptr;
  35extern struct boot_params *boot_params;
  36void __putstr(const char *s);
  37void __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
  53static inline void debug_putstr(const char *s)
  54{ }
  55static 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 */
  63int cmdline_find_option(const char *option, char *buffer, int bufsize);
  64int cmdline_find_option_bool(const char *option);
  65#endif
  66
  67
  68#if CONFIG_RANDOMIZE_BASE
  69/* kaslr.c */
  70unsigned char *choose_random_location(unsigned long input_ptr,
  71                                      unsigned long input_size,
  72                                      unsigned long output_ptr,
  73                                      unsigned long output_size);
  74/* cpuflags.c */
  75bool has_cpuflag(int flag);
  76#else
  77static inline
  78unsigned char *choose_random_location(unsigned long input_ptr,
  79                                      unsigned long input_size,
  80                                      unsigned long output_ptr,
  81                                      unsigned long output_size)
  82{
  83        return (unsigned char *)output_ptr;
  84}
  85#endif
  86
  87#ifdef CONFIG_X86_64
  88void add_identity_map(unsigned long start, unsigned long size);
  89void finalize_identity_maps(void);
  90extern unsigned char _pgtable[];
  91#else
  92static inline void add_identity_map(unsigned long start, unsigned long size)
  93{ }
  94static inline void finalize_identity_maps(void)
  95{ }
  96#endif
  97
  98#ifdef CONFIG_EARLY_PRINTK
  99/* early_serial_console.c */
 100extern int early_serial_base;
 101void console_init(void);
 102#else
 103static const int early_serial_base;
 104static inline void console_init(void)
 105{ }
 106#endif
 107
 108#endif
 109