PageRenderTime 30ms CodeModel.GetById 25ms app.highlight 3ms RepoModel.GetById 0ms app.codeStats 0ms

/arch/x86/kernel/acpi/realmode/wakeup.h

https://bitbucket.org/thekraven/iscream_thunderc-2.6.35
C++ Header | 41 lines | 30 code | 6 blank | 5 comment | 0 complexity | 55a3417da395ed1354304ae958fc4633 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
 1/*
 2 * Definitions for the wakeup data structure at the head of the
 3 * wakeup code.
 4 */
 5
 6#ifndef ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H
 7#define ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H
 8
 9#ifndef __ASSEMBLY__
10#include <linux/types.h>
11
12/* This must match data at wakeup.S */
13struct wakeup_header {
14	u16 video_mode;		/* Video mode number */
15	u16 _jmp1;		/* ljmpl opcode, 32-bit only */
16	u32 pmode_entry;	/* Protected mode resume point, 32-bit only */
17	u16 _jmp2;		/* CS value, 32-bit only */
18	u32 pmode_cr0;		/* Protected mode cr0 */
19	u32 pmode_cr3;		/* Protected mode cr3 */
20	u32 pmode_cr4;		/* Protected mode cr4 */
21	u32 pmode_efer_low;	/* Protected mode EFER */
22	u32 pmode_efer_high;
23	u64 pmode_gdt;
24	u32 realmode_flags;
25	u32 real_magic;
26	u16 trampoline_segment;	/* segment with trampoline code, 64-bit only */
27	u8  _pad1;
28	u8  wakeup_jmp;
29	u16 wakeup_jmp_off;
30	u16 wakeup_jmp_seg;
31	u64 wakeup_gdt[3];
32	u32 signature;		/* To check we have correct structure */
33} __attribute__((__packed__));
34
35extern struct wakeup_header wakeup_header;
36#endif
37
38#define HEADER_OFFSET 0x3f00
39#define WAKEUP_SIZE   0x4000
40
41#endif /* ARCH_X86_KERNEL_ACPI_RM_WAKEUP_H */