diff options
Diffstat (limited to 'include/asm-x86/suspend_64.h')
-rw-r--r-- | include/asm-x86/suspend_64.h | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/include/asm-x86/suspend_64.h b/include/asm-x86/suspend_64.h index 9440a7a1b99a..c505a76bcf6e 100644 --- a/include/asm-x86/suspend_64.h +++ b/include/asm-x86/suspend_64.h | |||
@@ -3,6 +3,9 @@ | |||
3 | * Based on code | 3 | * Based on code |
4 | * Copyright 2001 Patrick Mochel <mochel@osdl.org> | 4 | * Copyright 2001 Patrick Mochel <mochel@osdl.org> |
5 | */ | 5 | */ |
6 | #ifndef __ASM_X86_64_SUSPEND_H | ||
7 | #define __ASM_X86_64_SUSPEND_H | ||
8 | |||
6 | #include <asm/desc.h> | 9 | #include <asm/desc.h> |
7 | #include <asm/i387.h> | 10 | #include <asm/i387.h> |
8 | 11 | ||
@@ -12,8 +15,9 @@ arch_prepare_suspend(void) | |||
12 | return 0; | 15 | return 0; |
13 | } | 16 | } |
14 | 17 | ||
15 | /* Image of the saved processor state. If you touch this, fix acpi_wakeup.S. */ | 18 | /* Image of the saved processor state. If you touch this, fix acpi/wakeup.S. */ |
16 | struct saved_context { | 19 | struct saved_context { |
20 | struct pt_regs regs; | ||
17 | u16 ds, es, fs, gs, ss; | 21 | u16 ds, es, fs, gs, ss; |
18 | unsigned long gs_base, gs_kernel_base, fs_base; | 22 | unsigned long gs_base, gs_kernel_base, fs_base; |
19 | unsigned long cr0, cr2, cr3, cr4, cr8; | 23 | unsigned long cr0, cr2, cr3, cr4, cr8; |
@@ -29,29 +33,16 @@ struct saved_context { | |||
29 | unsigned long tr; | 33 | unsigned long tr; |
30 | unsigned long safety; | 34 | unsigned long safety; |
31 | unsigned long return_address; | 35 | unsigned long return_address; |
32 | unsigned long eflags; | ||
33 | } __attribute__((packed)); | 36 | } __attribute__((packed)); |
34 | 37 | ||
35 | /* We'll access these from assembly, so we'd better have them outside struct */ | ||
36 | extern unsigned long saved_context_eax, saved_context_ebx, saved_context_ecx, saved_context_edx; | ||
37 | extern unsigned long saved_context_esp, saved_context_ebp, saved_context_esi, saved_context_edi; | ||
38 | extern unsigned long saved_context_r08, saved_context_r09, saved_context_r10, saved_context_r11; | ||
39 | extern unsigned long saved_context_r12, saved_context_r13, saved_context_r14, saved_context_r15; | ||
40 | extern unsigned long saved_context_eflags; | ||
41 | |||
42 | #define loaddebug(thread,register) \ | 38 | #define loaddebug(thread,register) \ |
43 | set_debugreg((thread)->debugreg##register, register) | 39 | set_debugreg((thread)->debugreg##register, register) |
44 | 40 | ||
45 | extern void fix_processor_context(void); | 41 | extern void fix_processor_context(void); |
46 | 42 | ||
47 | extern unsigned long saved_rip; | ||
48 | extern unsigned long saved_rsp; | ||
49 | extern unsigned long saved_rbp; | ||
50 | extern unsigned long saved_rbx; | ||
51 | extern unsigned long saved_rsi; | ||
52 | extern unsigned long saved_rdi; | ||
53 | |||
54 | /* routines for saving/restoring kernel state */ | 43 | /* routines for saving/restoring kernel state */ |
55 | extern int acpi_save_state_mem(void); | 44 | extern int acpi_save_state_mem(void); |
56 | extern char core_restore_code; | 45 | extern char core_restore_code; |
57 | extern char restore_registers; | 46 | extern char restore_registers; |
47 | |||
48 | #endif /* __ASM_X86_64_SUSPEND_H */ | ||