/* * Definitions for the wakeup data structure at the head of the * wakeup code. */ #ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H #define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H #include /* This must match data at wakeup.S */ struct wakeup_header { u16 entry; /* unused */ u16 total; /* unused */ u16 video_mode; /* Video mode number */ u16 _jmp1; u32 pmode_entry; /* Protected mode resume point */ u16 _jmp2; u32 pmode_cr0; /* Protected mode cr0 */ u32 pmode_cr3; /* Protected mode cr3 */ u32 pmode_cr4; /* Protected mode cr4 */ u32 pmode_efer_low; /* Protected mode EFER */ u32 pmode_efer_high; u64 pmode_gdt; u32 realmode_flags; u32 real_magic; u16 trampoline_segment; u32 signature; /* To check we have correct structure */ } __attribute__((__packed__)); #endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */