File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/realmode.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: #ifndef _ARCH_X86_REALMODE_H
       2: #define _ARCH_X86_REALMODE_H
       3: 
       4: #include <linux/types.h>
       5: #include <asm/io.h>
       6: 
       7: /* This must match data at realmode.S */
       8: struct real_mode_header {
       9:     u32    text_start;
      10:     u32    ro_end;
      11:     /* SMP trampoline */
      12:     u32    trampoline_start;
      13:     u32    trampoline_status;
      14:     u32    trampoline_header;
      15: #ifdef CONFIG_X86_64
      16:     u32    trampoline_pgd;
      17: #endif
      18:     /* ACPI S3 wakeup */
      19: #ifdef CONFIG_ACPI_SLEEP
      20:     u32    wakeup_start;
      21:     u32    wakeup_header;
      22: #endif
      23:     /* APM/BIOS reboot */
      24:     u32    machine_real_restart_asm;
      25: #ifdef CONFIG_X86_64
      26:     u32    machine_real_restart_seg;
      27: #endif
      28: };
      29: 
      30: /* This must match data at trampoline_32/64.S */
      31: struct trampoline_header {
      32: #ifdef CONFIG_X86_32
      33:     u32 start;
      34:     u16 gdt_pad;
      35:     u16 gdt_limit;
      36:     u32 gdt_base;
      37: #else
      38:     u64 start;
      39:     u64 efer;
      40:     u32 cr4;
      41: #endif
      42: };
      43: 
      44: extern struct real_mode_header *real_mode_header;
      45: extern unsigned char real_mode_blob_end[];
      46: 
      47: extern unsigned long init_rsp;
      48: extern unsigned long initial_code;
      49: extern unsigned long initial_gs;
      50: 
      51: extern unsigned char real_mode_blob[];
      52: extern unsigned char real_mode_relocs[];
      53: 
      54: #ifdef CONFIG_X86_32
      55: extern unsigned char startup_32_smp[];
      56: extern unsigned char boot_gdt[];
      57: #else
      58: extern unsigned char secondary_startup_64[];
      59: #endif
      60: 
      61: void reserve_real_mode(void);
      62: void setup_real_mode(void);
      63: 
      64: #endif /* _ARCH_X86_REALMODE_H */
      65: