Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright 2001-2002 Pavel Machek <pavel@suse.cz>
0004  * Based on code
0005  * Copyright 2001 Patrick Mochel <mochel@osdl.org>
0006  */
0007 #ifndef _ASM_X86_SUSPEND_32_H
0008 #define _ASM_X86_SUSPEND_32_H
0009 
0010 #include <asm/desc.h>
0011 #include <asm/fpu/api.h>
0012 
0013 /* image of the saved processor state */
0014 struct saved_context {
0015     /*
0016      * On x86_32, all segment registers except gs are saved at kernel
0017      * entry in pt_regs.
0018      */
0019     u16 gs;
0020     unsigned long cr0, cr2, cr3, cr4;
0021     u64 misc_enable;
0022     struct saved_msrs saved_msrs;
0023     struct desc_ptr gdt_desc;
0024     struct desc_ptr idt;
0025     u16 ldt;
0026     u16 tss;
0027     unsigned long tr;
0028     unsigned long safety;
0029     unsigned long return_address;
0030     bool misc_enable_saved;
0031 } __attribute__((packed));
0032 
0033 /* routines for saving/restoring kernel state */
0034 extern char core_restore_code[];
0035 extern char restore_registers[];
0036 
0037 #endif /* _ASM_X86_SUSPEND_32_H */