1c4845474SJarkko Sakkinen /* 2c4845474SJarkko Sakkinen * Definitions for the wakeup data structure at the head of the 3c4845474SJarkko Sakkinen * wakeup code. 4c4845474SJarkko Sakkinen */ 5c4845474SJarkko Sakkinen 6c4845474SJarkko Sakkinen #ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H 7c4845474SJarkko Sakkinen #define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H 8c4845474SJarkko Sakkinen 9c4845474SJarkko Sakkinen #ifndef __ASSEMBLY__ 10c4845474SJarkko Sakkinen #include <linux/types.h> 11c4845474SJarkko Sakkinen 12c4845474SJarkko Sakkinen /* This must match data at wakeup.S */ 13c4845474SJarkko Sakkinen struct wakeup_header { 14c4845474SJarkko Sakkinen u16 video_mode; /* Video mode number */ 15c4845474SJarkko Sakkinen u32 pmode_entry; /* Protected mode resume point, 32-bit only */ 16c4845474SJarkko Sakkinen u16 pmode_cs; 17c4845474SJarkko Sakkinen u32 pmode_cr0; /* Protected mode cr0 */ 18c4845474SJarkko Sakkinen u32 pmode_cr3; /* Protected mode cr3 */ 19c4845474SJarkko Sakkinen u32 pmode_cr4; /* Protected mode cr4 */ 20c4845474SJarkko Sakkinen u32 pmode_efer_low; /* Protected mode EFER */ 21c4845474SJarkko Sakkinen u32 pmode_efer_high; 22c4845474SJarkko Sakkinen u64 pmode_gdt; 23c4845474SJarkko Sakkinen u32 pmode_misc_en_low; /* Protected mode MISC_ENABLE */ 24c4845474SJarkko Sakkinen u32 pmode_misc_en_high; 25c4845474SJarkko Sakkinen u32 pmode_behavior; /* Wakeup routine behavior flags */ 26c4845474SJarkko Sakkinen u32 realmode_flags; 27c4845474SJarkko Sakkinen u32 real_magic; 28c4845474SJarkko Sakkinen u32 signature; /* To check we have correct structure */ 29c4845474SJarkko Sakkinen } __attribute__((__packed__)); 30c4845474SJarkko Sakkinen 31c4845474SJarkko Sakkinen extern struct wakeup_header wakeup_header; 32c4845474SJarkko Sakkinen #endif 33c4845474SJarkko Sakkinen 34c4845474SJarkko Sakkinen #define WAKEUP_HEADER_OFFSET 8 35c4845474SJarkko Sakkinen #define WAKEUP_HEADER_SIGNATURE 0x51ee1111 36c4845474SJarkko Sakkinen 37c4845474SJarkko Sakkinen /* Wakeup behavior bits */ 38c4845474SJarkko Sakkinen #define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE 0 3973201dbeSH. Peter Anvin #define WAKEUP_BEHAVIOR_RESTORE_CR4 1 4073201dbeSH. Peter Anvin #define WAKEUP_BEHAVIOR_RESTORE_EFER 2 41c4845474SJarkko Sakkinen 42c4845474SJarkko Sakkinen #endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */ 43