mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.2 KiB
43 lines
1.2 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* 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 |
|
|
|
#ifndef __ASSEMBLY__ |
|
#include <linux/types.h> |
|
|
|
/* This must match data at wakeup.S */ |
|
struct wakeup_header { |
|
u16 video_mode; /* Video mode number */ |
|
u32 pmode_entry; /* Protected mode resume point, 32-bit only */ |
|
u16 pmode_cs; |
|
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 pmode_misc_en_low; /* Protected mode MISC_ENABLE */ |
|
u32 pmode_misc_en_high; |
|
u32 pmode_behavior; /* Wakeup routine behavior flags */ |
|
u32 realmode_flags; |
|
u32 real_magic; |
|
u32 signature; /* To check we have correct structure */ |
|
} __attribute__((__packed__)); |
|
|
|
extern struct wakeup_header wakeup_header; |
|
#endif |
|
|
|
#define WAKEUP_HEADER_OFFSET 8 |
|
#define WAKEUP_HEADER_SIGNATURE 0x51ee1111 |
|
|
|
/* Wakeup behavior bits */ |
|
#define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE 0 |
|
#define WAKEUP_BEHAVIOR_RESTORE_CR4 1 |
|
#define WAKEUP_BEHAVIOR_RESTORE_EFER 2 |
|
|
|
#endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */
|
|
|