Commit | Line | Data |
---|---|---|
084ee1c6 JS |
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; | |
5a8c9aeb JS |
11 | /* reboot */ |
12 | #ifdef CONFIG_X86_32 | |
13 | u32 machine_real_restart_asm; | |
48927bbb JS |
14 | #endif |
15 | /* SMP trampoline */ | |
16 | u32 trampoline_data; | |
17 | u32 trampoline_status; | |
18 | #ifdef CONFIG_X86_32 | |
19 | u32 startup_32_smp; | |
20 | u32 boot_gdt; | |
21 | #else | |
22 | u32 startup_64_smp; | |
23 | u32 level3_ident_pgt; | |
24 | u32 level3_kernel_pgt; | |
5a8c9aeb | 25 | #endif |
c9b77ccb JS |
26 | #ifdef CONFIG_ACPI_SLEEP |
27 | u32 wakeup_start; | |
28 | u32 wakeup_header; | |
29 | #endif | |
084ee1c6 JS |
30 | } __attribute__((__packed__)); |
31 | ||
b429dbf6 JS |
32 | extern struct real_mode_header *real_mode_header; |
33 | extern unsigned char real_mode_blob_end[]; | |
084ee1c6 JS |
34 | |
35 | extern unsigned long init_rsp; | |
36 | extern unsigned long initial_code; | |
37 | extern unsigned long initial_gs; | |
38 | ||
39 | extern unsigned char real_mode_blob[]; | |
40 | extern unsigned char real_mode_relocs[]; | |
41 | ||
48927bbb JS |
42 | #ifdef CONFIG_X86_32 |
43 | extern unsigned char startup_32_smp[]; | |
44 | extern unsigned char boot_gdt[]; | |
45 | #else | |
46 | extern unsigned char secondary_startup_64[]; | |
47 | #endif | |
48 | ||
084ee1c6 JS |
49 | extern void __init setup_real_mode(void); |
50 | ||
51 | #endif /* _ARCH_X86_REALMODE_H */ |