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; | |
48927bbb | 11 | /* SMP trampoline */ |
f37240f1 | 12 | u32 trampoline_start; |
48927bbb | 13 | u32 trampoline_status; |
f37240f1 JS |
14 | u32 trampoline_header; |
15 | #ifdef CONFIG_X86_64 | |
16 | u32 trampoline_pgd; | |
5a8c9aeb | 17 | #endif |
f37240f1 | 18 | /* ACPI S3 wakeup */ |
c9b77ccb JS |
19 | #ifdef CONFIG_ACPI_SLEEP |
20 | u32 wakeup_start; | |
21 | u32 wakeup_header; | |
f37240f1 JS |
22 | #endif |
23 | /* APM/BIOS reboot */ | |
f37240f1 | 24 | u32 machine_real_restart_asm; |
65051397 PA |
25 | #ifdef CONFIG_X86_64 |
26 | u32 machine_real_restart_seg; | |
f37240f1 | 27 | #endif |
cda846f1 | 28 | }; |
f37240f1 JS |
29 | |
30 | /* This must match data at trampoline_32/64.S */ | |
31 | struct trampoline_header { | |
32 | #ifdef CONFIG_X86_32 | |
33 | u32 start; | |
cda846f1 | 34 | u16 gdt_pad; |
f37240f1 JS |
35 | u16 gdt_limit; |
36 | u32 gdt_base; | |
37 | #else | |
38 | u64 start; | |
638d957b | 39 | u64 efer; |
cda846f1 | 40 | u32 cr4; |
c9b77ccb | 41 | #endif |
cda846f1 | 42 | }; |
084ee1c6 | 43 | |
b429dbf6 JS |
44 | extern struct real_mode_header *real_mode_header; |
45 | extern unsigned char real_mode_blob_end[]; | |
084ee1c6 JS |
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 | ||
48927bbb JS |
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 | ||
084ee1c6 JS |
61 | extern void __init setup_real_mode(void); |
62 | ||
63 | #endif /* _ARCH_X86_REALMODE_H */ |