suspend_64.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright 2001-2003 Pavel Machek <pavel@suse.cz>
  3. * Based on code
  4. * Copyright 2001 Patrick Mochel <mochel@osdl.org>
  5. */
  6. #ifndef __ASM_X86_64_SUSPEND_H
  7. #define __ASM_X86_64_SUSPEND_H
  8. #include <asm/desc.h>
  9. #include <asm/i387.h>
  10. static inline int
  11. arch_prepare_suspend(void)
  12. {
  13. return 0;
  14. }
  15. /* Image of the saved processor state. If you touch this, fix acpi/wakeup.S. */
  16. struct saved_context {
  17. struct pt_regs regs;
  18. u16 ds, es, fs, gs, ss;
  19. unsigned long gs_base, gs_kernel_base, fs_base;
  20. unsigned long cr0, cr2, cr3, cr4, cr8;
  21. unsigned long efer;
  22. u16 gdt_pad;
  23. u16 gdt_limit;
  24. unsigned long gdt_base;
  25. u16 idt_pad;
  26. u16 idt_limit;
  27. unsigned long idt_base;
  28. u16 ldt;
  29. u16 tss;
  30. unsigned long tr;
  31. unsigned long safety;
  32. unsigned long return_address;
  33. } __attribute__((packed));
  34. #define loaddebug(thread,register) \
  35. set_debugreg((thread)->debugreg##register, register)
  36. extern void fix_processor_context(void);
  37. /* routines for saving/restoring kernel state */
  38. extern int acpi_save_state_mem(void);
  39. extern char core_restore_code;
  40. extern char restore_registers;
  41. #endif /* __ASM_X86_64_SUSPEND_H */