Path: blob/master/arch/x86/kernel/acpi/realmode/wakeup.h
10821 views
/*1* Definitions for the wakeup data structure at the head of the2* wakeup code.3*/45#ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H6#define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H78#ifndef __ASSEMBLY__9#include <linux/types.h>1011/* This must match data at wakeup.S */12struct wakeup_header {13u16 video_mode; /* Video mode number */14u16 _jmp1; /* ljmpl opcode, 32-bit only */15u32 pmode_entry; /* Protected mode resume point, 32-bit only */16u16 _jmp2; /* CS value, 32-bit only */17u32 pmode_cr0; /* Protected mode cr0 */18u32 pmode_cr3; /* Protected mode cr3 */19u32 pmode_cr4; /* Protected mode cr4 */20u32 pmode_efer_low; /* Protected mode EFER */21u32 pmode_efer_high;22u64 pmode_gdt;23u32 pmode_misc_en_low; /* Protected mode MISC_ENABLE */24u32 pmode_misc_en_high;25u32 pmode_behavior; /* Wakeup routine behavior flags */26u32 realmode_flags;27u32 real_magic;28u16 trampoline_segment; /* segment with trampoline code, 64-bit only */29u8 _pad1;30u8 wakeup_jmp;31u16 wakeup_jmp_off;32u16 wakeup_jmp_seg;33u64 wakeup_gdt[3];34u32 signature; /* To check we have correct structure */35} __attribute__((__packed__));3637extern struct wakeup_header wakeup_header;38#endif3940#define WAKEUP_HEADER_OFFSET 841#define WAKEUP_HEADER_SIGNATURE 0x51ee111142#define WAKEUP_END_SIGNATURE 0x65a22c824344/* Wakeup behavior bits */45#define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE 04647#endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */484950