1c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini/** @file
2c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniSMRAM Save State Map Definitions.
3c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
4c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniSMRAM Save State Map definitions based on contents of the
5c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniIntel(R) 64 and IA-32 Architectures Software Developer's Manual
6c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  Volume 3C, Section 34.4 SMRAM
7c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  Volume 3C, Section 34.5 SMI Handler Execution Environment
8c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  Volume 3C, Section 34.7 Managing Synchronous and Asynchronous SMIs
9c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
10c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonziniand the AMD64 Architecture Programmer's Manual
11c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  Volume 2, Section 10.2 SMM Resources
12c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
13c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniCopyright (c) 2015, Intel Corporation. All rights reserved.<BR>
14c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniCopyright (c) 2015, Red Hat, Inc.<BR>
15c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniThis program and the accompanying materials
16c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonziniare licensed and made available under the terms and conditions of the BSD License
17c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonziniwhich accompanies this distribution.  The full text of the license may be found at
18c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzinihttp://opensource.org/licenses/bsd-license.php
19c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
20c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
21c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo BonziniWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
22c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
23c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini**/
24c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
25c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini#ifndef __QEMU_SMRAM_SAVE_STATE_MAP_H__
26c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini#define __QEMU_SMRAM_SAVE_STATE_MAP_H__
27c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
28c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini#pragma pack (1)
29c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
30c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
31c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini/// 32-bit SMRAM Save State Map
32c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
33c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzinitypedef struct {
34c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved0[0x200]; // 7c00h
35c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved1[0xf8];  // 7e00h
36c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  SMBASE;           // 7ef8h
37c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  SMMRevId;         // 7efch
38c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  IORestart;        // 7f00h
39c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  AutoHALTRestart;  // 7f02h
40c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved2[0x9C];  // 7f08h
41c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  IOMemAddr;        // 7fa0h
42c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  IOMisc;           // 7fa4h
43c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _ES;              // 7fa8h
44c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _CS;              // 7fach
45c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _SS;              // 7fb0h
46c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _DS;              // 7fb4h
47c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _FS;              // 7fb8h
48c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _GS;              // 7fbch
49c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  Reserved3;        // 7fc0h
50c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _TR;              // 7fc4h
51c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _DR7;             // 7fc8h
52c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _DR6;             // 7fcch
53c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EAX;             // 7fd0h
54c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _ECX;             // 7fd4h
55c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EDX;             // 7fd8h
56c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EBX;             // 7fdch
57c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _ESP;             // 7fe0h
58c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EBP;             // 7fe4h
59c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _ESI;             // 7fe8h
60c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EDI;             // 7fech
61c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EIP;             // 7ff0h
62c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _EFLAGS;          // 7ff4h
63c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _CR3;             // 7ff8h
64c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _CR0;             // 7ffch
65c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini} QEMU_SMRAM_SAVE_STATE_MAP32;
66c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
67c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
68c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini/// 64-bit SMRAM Save State Map
69c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
70c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzinitypedef struct {
71c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved0[0x200];  // 7c00h
72c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
73c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _ES;               // 7e00h
74c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _ESAccessRights;   // 7e02h
75c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _ESLimit;          // 7e04h
76c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _ESBase;           // 7e08h
77c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
78c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _CS;               // 7e10h
79c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _CSAccessRights;   // 7e12h
80c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _CSLimit;          // 7e14h
81c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _CSBase;           // 7e18h
82c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
83c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _SS;               // 7e20h
84c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _SSAccessRights;   // 7e22h
85c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _SSLimit;          // 7e24h
86c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _SSBase;           // 7e28h
87c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
88c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _DS;               // 7e30h
89c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _DSAccessRights;   // 7e32h
90c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _DSLimit;          // 7e34h
91c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _DSBase;           // 7e38h
92c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
93c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _FS;               // 7e40h
94c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _FSAccessRights;   // 7e42h
95c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _FSLimit;          // 7e44h
96c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _FSBase;           // 7e48h
97c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
98c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _GS;               // 7e50h
99c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _GSAccessRights;   // 7e52h
100c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _GSLimit;          // 7e54h
101c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _GSBase;           // 7e58h
102c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
103c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _GDTRReserved1;    // 7e60h
104c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _GDTRLimit;        // 7e64h
105c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _GDTRReserved2;    // 7e66h
106c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _GDTRBase;         // 7e68h
107c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
108c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _LDTR;             // 7e70h
109c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _LDTRAccessRights; // 7e72h
110c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _LDTRLimit;        // 7e74h
111c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _LDTRBase;         // 7e78h
112c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
113c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _IDTRReserved1;    // 7e80h
114c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _IDTRLimit;        // 7e84h
115c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _IDTRReserved2;    // 7e86h
116c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _IDTRBase;         // 7e88h
117c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
118c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _TR;               // 7e90h
119c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT16  _TRAccessRights;   // 7e92h
120c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  _TRLimit;          // 7e94h
121c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _TRBase;           // 7e98h
122c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
123c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  IO_RIP;            // 7ea0h
124c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  IO_RCX;            // 7ea8h
125c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  IO_RSI;            // 7eb0h
126c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  IO_RDI;            // 7eb8h
127c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  IO_DWord;          // 7ec0h
128c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved1[0x04];   // 7ec4h
129c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   IORestart;         // 7ec8h
130c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   AutoHALTRestart;   // 7ec9h
131c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved2[0x06];   // 7ecah
132c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
133c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  IA32_EFER;         // 7ed0h
134c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_Guest;         // 7ed8h
135c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_GuestVMCB;     // 7ee0h
136c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_GuestVIntr;    // 7ee8h
137c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved3[0x0c];   // 7ef0h
138c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
139c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  SMMRevId;          // 7efch
140c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT32  SMBASE;            // 7f00h
141c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
142c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT8   Reserved4[0x1c];   // 7f04h
143c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_GuestPAT;      // 7f20h
144c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_HostIA32_EFER; // 7f28h
145c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_HostCR4;       // 7f30h
146c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_HostCR3;       // 7f38h
147c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  SVM_HostCR0;       // 7f40h
148c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
149c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _CR4;              // 7f48h
150c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _CR3;              // 7f50h
151c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _CR0;              // 7f58h
152c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _DR7;              // 7f60h
153c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _DR6;              // 7f68h
154c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RFLAGS;           // 7f70h
155c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RIP;              // 7f78h
156c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R15;              // 7f80h
157c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R14;              // 7f88h
158c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R13;              // 7f90h
159c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R12;              // 7f98h
160c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R11;              // 7fa0h
161c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R10;              // 7fa8h
162c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R9;               // 7fb0h
163c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _R8;               // 7fb8h
164c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RDI;              // 7fc0h
165c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RSI;              // 7fc8h
166c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RBP;              // 7fd0h
167c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RSP;              // 7fd8h
168c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RBX;              // 7fe0h
169c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RDX;              // 7fe8h
170c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RCX;              // 7ff0h
171c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  UINT64  _RAX;              // 7ff8h
172c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini} QEMU_SMRAM_SAVE_STATE_MAP64;
173c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
174c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
175c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini/// Union of 32-bit and 64-bit SMRAM Save State Maps
176c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini///
177c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzinitypedef union  {
178c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  QEMU_SMRAM_SAVE_STATE_MAP32  x86;
179c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini  QEMU_SMRAM_SAVE_STATE_MAP64  x64;
180c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini} QEMU_SMRAM_SAVE_STATE_MAP;
181c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
182c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini#pragma pack ()
183c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini
184c1fcd80bf42e6b1e91c1c742d222f1ba421b1d1dPaolo Bonzini#endif
185