suspend_32.h 876 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright 2001-2002 Pavel Machek <[email protected]>
  4. * Based on code
  5. * Copyright 2001 Patrick Mochel <[email protected]>
  6. */
  7. #ifndef _ASM_X86_SUSPEND_32_H
  8. #define _ASM_X86_SUSPEND_32_H
  9. #include <asm/desc.h>
  10. #include <asm/fpu/api.h>
  11. /* image of the saved processor state */
  12. struct saved_context {
  13. /*
  14. * On x86_32, all segment registers except gs are saved at kernel
  15. * entry in pt_regs.
  16. */
  17. u16 gs;
  18. unsigned long cr0, cr2, cr3, cr4;
  19. u64 misc_enable;
  20. struct saved_msrs saved_msrs;
  21. struct desc_ptr gdt_desc;
  22. struct desc_ptr idt;
  23. u16 ldt;
  24. u16 tss;
  25. unsigned long tr;
  26. unsigned long safety;
  27. unsigned long return_address;
  28. bool misc_enable_saved;
  29. } __attribute__((packed));
  30. /* routines for saving/restoring kernel state */
  31. extern char core_restore_code[];
  32. extern char restore_registers[];
  33. #endif /* _ASM_X86_SUSPEND_32_H */