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