VirtualBox

source: vbox/trunk/include/iprt/x86extra.mac@ 68113

Last change on this file since 68113 was 62476, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.3 KB
Line 
1;; @file
2; IPRT - X86 and AMD64 Structures and Definitions that are not automatically
3; converted from the C header file.
4;
5
6;
7; Copyright (C) 2012-2016 Oracle Corporation
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License (GPL) as published by the Free Software
13; Foundation, in version 2 as it comes in the "COPYING" file of the
14; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17; The contents of this file may alternatively be used under the terms
18; of the Common Development and Distribution License Version 1.0
19; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20; VirtualBox OSE distribution, in which case the provisions of the
21; CDDL are applicable instead of those of the GPL.
22;
23; You may elect to license modified versions of this file under the
24; terms and conditions of either the GPL or the CDDL or both.
25;
26
27%ifndef ___iprt_x86extra_mac
28%define ___iprt_x86extra_mac
29
30
31%define X86_XCPT_DE 0x00
32%define X86_XCPT_DB 0x01
33%define X86_XCPT_NMI 0x02
34%define X86_XCPT_BP 0x03
35%define X86_XCPT_OF 0x04
36%define X86_XCPT_BR 0x05
37%define X86_XCPT_UD 0x06
38%define X86_XCPT_NM 0x07
39%define X86_XCPT_DF 0x08
40%define X86_XCPT_CO_SEG_OVERRUN 0x09
41%define X86_XCPT_TS 0x0a
42%define X86_XCPT_NP 0x0b
43%define X86_XCPT_SS 0x0c
44%define X86_XCPT_GP 0x0d
45%define X86_XCPT_PF 0x0e
46%define X86_XCPT_MF 0x10
47%define X86_XCPT_AC 0x11
48%define X86_XCPT_MC 0x12
49%define X86_XCPT_XF 0x13
50%define X86_XCPT_VE 0x14
51%define X86_XCPT_SX 0x1f
52
53%define PAGE_SIZE 0x1000
54
55;; Same a ~(X86_CR0_PE | X86_CR0_PG) except it won't cause assembler warnings.
56%define X86_CR0_NO_PE_NO_PG 0x7ffffffe
57
58
59
60;;
61; 32-bit protected mode fstenv image.
62;
63struc X86FSTENV32P
64 .FCW resw 1
65 .padding1 resw 1
66 .FSW resw 1
67 .padding2 resw 1
68 .FTW resw 1
69 .padding3 resw 1
70 .FPUIP resd 1
71 .FPUCS resw 1
72 .FOP resw 1
73 .FPUDP resd 1
74 .FPUDS resw 1
75 .padding4 resw 1
76endstruc
77
78
79;;
80; The image saved by FXSAVE.
81;
82struc X86FXSTATE
83 .FCW resw 1
84 .FSW resw 1
85 .FTW resw 1
86 .FOP resw 1
87 .FPUIP resd 1
88 .FPUCS resw 1
89 .Rsrvd1 resw 1
90 .FPUDP resd 1
91 .FPUDS resw 1
92 .Rsrvd2 resw 1
93 .MXCSR resd 1
94 .MXCSR_MASK resd 1
95 .st0 resd 4
96 .st1 resd 4
97 .st2 resd 4
98 .st3 resd 4
99 .st4 resd 4
100 .st5 resd 4
101 .st6 resd 4
102 .st7 resd 4
103 .xmm0 resd 4
104 .xmm1 resd 4
105 .xmm2 resd 4
106 .xmm3 resd 4
107 .xmm4 resd 4
108 .xmm5 resd 4
109 .xmm6 resd 4
110 .xmm7 resd 4
111 .xmm8 resd 4
112 .xmm9 resd 4
113 .xmm10 resd 4
114 .xmm11 resd 4
115 .xmm12 resd 4
116 .xmm13 resd 4
117 .xmm14 resd 4
118 .xmm15 resd 4
119 .au32RsrvdRest resd 24
120endstruc
121
122
123struc X86TSS16
124 .selPrev resw 1
125 .sp0 resw 1
126 .ss0 resw 1
127 .sp1 resw 1
128 .ss1 resw 1
129 .sp2 resw 1
130 .ss2 resw 1
131 .ip resw 1
132 .flags resw 1
133 .ax resw 1
134 .cx resw 1
135 .dx resw 1
136 .bx resw 1
137 .sp resw 1
138 .bp resw 1
139 .si resw 1
140 .di resw 1
141 .es resw 1
142 .cs resw 1
143 .ss resw 1
144 .ds resw 1
145 .selLdt resw 1
146endstruc
147AssertCompileSize(X86TSS16, 44)
148
149
150struc X86TSS32
151 .selPrev resw 1
152 .padding1 resw 1
153 .esp0 resd 1
154 .ss0 resw 1
155 .padding_ss0 resw 1
156 .esp1 resd 1
157 .ss1 resw 1
158 .padding_ss1 resw 1
159 .esp2 resd 1
160 .ss2 resw 1
161 .padding_ss2 resw 1
162 .cr3 resd 1
163 .eip resd 1
164 .eflags resd 1
165 .eax resd 1
166 .ecx resd 1
167 .edx resd 1
168 .ebx resd 1
169 .esp resd 1
170 .ebp resd 1
171 .esi resd 1
172 .edi resd 1
173 .es resw 1
174 .padding_es resw 1
175 .cs resw 1
176 .padding_cs resw 1
177 .ss resw 1
178 .padding_ss resw 1
179 .ds resw 1
180 .padding_ds resw 1
181 .fs resw 1
182 .padding_fs resw 1
183 .gs resw 1
184 .padding_gs resw 1
185 .selLdt resw 1
186 .padding_ldt resw 1
187 .fDebugTrap resw 1
188 .offIoBitmap resw 1
189 ;.IntRedirBitmap resb 32 - this is optional.
190endstruc
191AssertCompileSize(X86TSS32,104)
192
193
194struc X86TSS64
195 .u32Reserved resd 1
196 .rsp0 resq 1
197 .rsp1 resq 1
198 .rsp2 resq 1
199 .u32Reserved2 resd 2
200 .ist1 resq 1
201 .ist2 resq 1
202 .ist3 resq 1
203 .ist4 resq 1
204 .ist5 resq 1
205 .ist6 resq 1
206 .ist7 resq 1
207 .u16Reserved resw 5
208 .offIoBitmap resw 1
209 ;.IntRedirBitmap resb 32 - this isn't really there!! VBox addition for x86TSS32 structure compatibility in x86.h.
210endstruc
211AssertCompileSize(X86TSS64, 104)
212
213
214%endif
215
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette