coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
em64t100_save_state.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __EM64T100_SAVE_STATE_H__
4 #define __EM64T100_SAVE_STATE_H__
5 
6 #include <types.h>
7 #include <cpu/x86/smm.h>
8 
9 /* Intel Revision 30100 SMM State-Save Area */
10 
11 #define SMM_EM64T100_ARCH_OFFSET 0x7c00
12 #define SMM_EM64T100_SAVE_STATE_OFFSET \
13  SMM_SAVE_STATE_BEGIN(SMM_EM64T100_ARCH_OFFSET)
14 typedef struct {
15  u8 reserved0[256];
16  u8 reserved1[208];
17 
21 
22  u8 reserved2[4];
23 
28 
29  u8 reserved3[64];
31 
32  u8 reserved4[72];
33 
35  u8 reserved5[4];
37  u8 reserved6[4];
39 
40  u8 reserved7[88];
41 
42  u32 smbase;
44 
47 
48  u8 reserved8[24];
49 
50  u64 r15;
51  u64 r14;
52  u64 r13;
53  u64 r12;
54  u64 r11;
55  u64 r10;
56  u64 r9;
57  u64 r8;
58 
59  u64 rax;
60  u64 rcx;
61  u64 rdx;
62  u64 rbx;
63 
64  u64 rsp;
66  u64 rsi;
67  u64 rdi;
68 
71 
78 
81 
82  u64 dr7;
83  u64 dr6;
84  u64 rip;
85  u64 efer;
86  u64 rflags;
87 
88  u64 cr3;
89  u64 cr0;
90 } __packed em64t100_smm_state_save_area_t;
91 
92 #endif
uint32_t smm_revision(void)
Definition: smihandler.c:109
uint64_t u64
Definition: stdint.h:54
uint32_t u32
Definition: stdint.h:51
uint16_t u16
Definition: stdint.h:48
uint8_t u8
Definition: stdint.h:45
Definition: x86.c:23