1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Definitions for the wakeup data structure at the head of the |
4 | * wakeup code. |
5 | */ |
6 | |
7 | #ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H |
8 | #define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H |
9 | |
10 | #ifndef __ASSEMBLY__ |
11 | #include <linux/types.h> |
12 | |
13 | /* This must match data at wakeup.S */ |
14 | struct { |
15 | u16 ; /* Video mode number */ |
16 | u32 ; /* Protected mode resume point, 32-bit only */ |
17 | u16 ; |
18 | u32 ; /* Protected mode cr0 */ |
19 | u32 ; /* Protected mode cr3 */ |
20 | u32 ; /* Protected mode cr4 */ |
21 | u32 ; /* Protected mode EFER */ |
22 | u32 ; |
23 | u64 ; |
24 | u32 ; /* Protected mode MISC_ENABLE */ |
25 | u32 ; |
26 | u32 ; /* Wakeup routine behavior flags */ |
27 | u32 ; |
28 | u32 ; |
29 | u32 ; /* To check we have correct structure */ |
30 | } __attribute__((__packed__)); |
31 | |
32 | extern struct wakeup_header ; |
33 | #endif |
34 | |
35 | #define 8 |
36 | #define 0x51ee1111 |
37 | |
38 | /* Wakeup behavior bits */ |
39 | #define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE 0 |
40 | #define WAKEUP_BEHAVIOR_RESTORE_CR4 1 |
41 | #define WAKEUP_BEHAVIOR_RESTORE_EFER 2 |
42 | |
43 | #endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */ |
44 | |