VirtualBox

source: vbox/trunk/include/VBox/cpum.mac@ 11946

Last change on this file since 11946 was 10648, checked in by vboxsync, 16 years ago

Moved X86FXSTATE from x86.mac to cpum.mac.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.6 KB
Line 
1;; @file
2;
3; CPUM - CPU Monitor.
4;
5
6;
7; Copyright (C) 2006-2007 Sun Microsystems, Inc.
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; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
27; Clara, CA 95054 USA or visit http://www.sun.com if you need
28; additional information or have any questions.
29;
30
31%ifndef __VBox_cpum_mac__
32%define __VBox_cpum_mac__
33
34
35;;
36; Registers frame.
37; This is used internally in TRPM, VMMSwitcher_GuestToHost_GuestCtx
38; and other places.
39struc CPUMCTXCORE
40 .edi resq 1
41 .esi resq 1
42 .ebp resq 1
43 .eax resq 1
44 .ebx resq 1
45 .edx resq 1
46 .ecx resq 1
47 .esp resq 1
48 .lss_esp resd 1
49 .ss resw 1
50 .ssPadding resw 1
51 .gs resw 1
52 .gsPadding resw 1
53 .fs resw 1
54 .fsPadding resw 1
55 .es resw 1
56 .esPadding resw 1
57 .ds resw 1
58 .dsPadding resw 1
59 .cs resw 1
60 .csPadding resw 3
61 .eflags resq 1
62 .eip resq 1
63
64 .r8 resq 1
65 .r9 resq 1
66 .r10 resq 1
67 .r11 resq 1
68 .r12 resq 1
69 .r13 resq 1
70 .r14 resq 1
71 .r15 resq 1
72
73 .esHid.u64Base resq 1
74 .esHid.u32Limit resd 1
75 .esHid.Attr resd 1
76
77 .csHid.u64Base resq 1
78 .csHid.u32Limit resd 1
79 .csHid.Attr resd 1
80
81 .ssHid.u64Base resq 1
82 .ssHid.u32Limit resd 1
83 .ssHid.Attr resd 1
84
85 .dsHid.u64Base resq 1
86 .dsHid.u32Limit resd 1
87 .dsHid.Attr resd 1
88
89 .fsHid.u64Base resq 1
90 .fsHid.u32Limit resd 1
91 .fsHid.Attr resd 1
92
93 .gsHid.u64Base resq 1
94 .gsHid.u32Limit resd 1
95 .gsHid.Attr resd 1
96
97endstruc
98
99
100struc CPUMCTX
101 .fpu resb 512
102
103 .edi resq 1
104 .esi resq 1
105 .ebp resq 1
106 .eax resq 1
107 .ebx resq 1
108 .edx resq 1
109 .ecx resq 1
110 .esp resq 1
111 .lss_esp resd 1
112 .ss resw 1
113 .ssPadding resw 1
114 .gs resw 1
115 .gsPadding resw 1
116 .fs resw 1
117 .fsPadding resw 1
118 .es resw 1
119 .esPadding resw 1
120 .ds resw 1
121 .dsPadding resw 1
122 .cs resw 1
123 .csPadding resw 3
124 .eflags resq 1
125 .eip resq 1
126
127 .r8 resq 1
128 .r9 resq 1
129 .r10 resq 1
130 .r11 resq 1
131 .r12 resq 1
132 .r13 resq 1
133 .r14 resq 1
134 .r15 resq 1
135
136 .esHid.u64Base resq 1
137 .esHid.u32Limit resd 1
138 .esHid.Attr resd 1
139
140 .csHid.u64Base resq 1
141 .csHid.u32Limit resd 1
142 .csHid.Attr resd 1
143
144 .ssHid.u64Base resq 1
145 .ssHid.u32Limit resd 1
146 .ssHid.Attr resd 1
147
148 .dsHid.u64Base resq 1
149 .dsHid.u32Limit resd 1
150 .dsHid.Attr resd 1
151
152 .fsHid.u64Base resq 1
153 .fsHid.u32Limit resd 1
154 .fsHid.Attr resd 1
155
156 .gsHid.u64Base resq 1
157 .gsHid.u32Limit resd 1
158 .gsHid.Attr resd 1
159
160
161 .cr0 resq 1
162 .cr2 resq 1
163 .cr3 resq 1
164 .cr4 resq 1
165
166 .dr0 resq 1
167 .dr1 resq 1
168 .dr2 resq 1
169 .dr3 resq 1
170 .dr4 resq 1
171 .dr5 resq 1
172 .dr6 resq 1
173 .dr7 resq 1
174
175 .gdtr resb 10 ; GDT limit + linear address
176 .gdtrPadding resw 1
177 .idtr resb 10 ; IDT limit + linear address
178 .idtrPadding resw 1
179 .ldtr resw 1
180 .ldtrPadding resw 1
181 .tr resw 1
182 .trPadding resw 1
183
184 .SysEnter.cs resb 8
185 .SysEnter.eip resb 8
186 .SysEnter.esp resb 8
187
188 .msrEFER resb 8
189 .msrSTAR resb 8
190 .msrPAT resb 8
191 .msrLSTAR resb 8
192 .msrCSTAR resb 8
193 .msrSFMASK resb 8
194 .msrKERNELGSBASE resb 8
195
196 .ldtrHid.u64Base resq 1
197 .ldtrHid.u32Limit resd 1
198 .ldtrHid.Attr resd 1
199
200 .trHid.u64Base resq 1
201 .trHid.u32Limit resd 1
202 .trHid.Attr resd 1
203
204 ; padding
205;;; .padding resd 6
206endstruc
207
208;;
209; FPU/XMM state
210;;
211struc X86FXSTATE
212 ;/** Control word. */
213 .FCW resw 1
214 ;/** Status word. */
215 .FSW resw 1
216 ;/** Tag word (it's a byte actually). */
217 .FTW resb 1
218 .huh1 resb 1
219 ;/** Opcode. */
220 .FOP resw 1
221 ;/** Instruction pointer. */
222 .FPUIP resd 1
223 ;/** Code selector. */
224 .CS resw 1
225 .Rsvrd1 resw 1
226 ;/* - offset 16 - */
227 ;/** Data pointer. */
228 .FPUDP resd 1
229 ;/** Data segment */
230 .DS resw 1
231 .Rsrvd2 resw 1
232 .MXCSR resd 1
233 .MXCSR_MASK resd 1
234 ;/* - offset 32 - */
235 ; FPU & MMX registers
236 .aRegs resq 8*2
237 ;/* - offset 160 - */
238 ;/* 8 XMM registers in 32 bits mode; 16 in long mode */
239 .aXMM resq 16*2
240 ;/* - offset 416 - */
241 .au32RsrvdRest resd (512 - 416) / 4
242endstruc
243
244%endif
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