VirtualBox

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

Last change on this file since 24130 was 20994, checked in by vboxsync, 15 years ago

cpum.mac: file header.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.5 KB
Line 
1;; @file
2; CPUM - CPU Monitor, Assembly header file.
3;
4
5;
6; Copyright (C) 2006-2009 Sun Microsystems, Inc.
7;
8; This file is part of VirtualBox Open Source Edition (OSE), as
9; available from http://www.virtualbox.org. This file is free software;
10; you can redistribute it and/or modify it under the terms of the GNU
11; General Public License (GPL) as published by the Free Software
12; Foundation, in version 2 as it comes in the "COPYING" file of the
13; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15;
16; The contents of this file may alternatively be used under the terms
17; of the Common Development and Distribution License Version 1.0
18; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19; VirtualBox OSE distribution, in which case the provisions of the
20; CDDL are applicable instead of those of the GPL.
21;
22; You may elect to license modified versions of this file under the
23; terms and conditions of either the GPL or the CDDL or both.
24;
25; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
26; Clara, CA 95054 USA or visit http://www.sun.com if you need
27; additional information or have any questions.
28;
29
30%ifndef __VBox_cpum_mac__
31%define __VBox_cpum_mac__
32
33;;
34; Registers frame.
35; This is used internally in TRPM, VMMSwitcher_GuestToHost_GuestCtx
36; and other places.
37struc CPUMCTXCORE
38 .edi resq 1
39 .esi resq 1
40 .ebp resq 1
41 .eax resq 1
42 .ebx resq 1
43 .edx resq 1
44 .ecx resq 1
45 .esp resq 1
46 .lss_esp resd 1
47 .ss resw 1
48 .ssPadding resw 1
49 .gs resw 1
50 .gsPadding resw 1
51 .fs resw 1
52 .fsPadding resw 1
53 .es resw 1
54 .esPadding resw 1
55 .ds resw 1
56 .dsPadding resw 1
57 .cs resw 1
58 .csPadding resw 3
59 .eflags resq 1
60 .eip resq 1
61
62 .r8 resq 1
63 .r9 resq 1
64 .r10 resq 1
65 .r11 resq 1
66 .r12 resq 1
67 .r13 resq 1
68 .r14 resq 1
69 .r15 resq 1
70
71 .esHid.u64Base resq 1
72 .esHid.u32Limit resd 1
73 .esHid.Attr resd 1
74
75 .csHid.u64Base resq 1
76 .csHid.u32Limit resd 1
77 .csHid.Attr resd 1
78
79 .ssHid.u64Base resq 1
80 .ssHid.u32Limit resd 1
81 .ssHid.Attr resd 1
82
83 .dsHid.u64Base resq 1
84 .dsHid.u32Limit resd 1
85 .dsHid.Attr resd 1
86
87 .fsHid.u64Base resq 1
88 .fsHid.u32Limit resd 1
89 .fsHid.Attr resd 1
90
91 .gsHid.u64Base resq 1
92 .gsHid.u32Limit resd 1
93 .gsHid.Attr resd 1
94
95endstruc
96
97
98struc CPUMCTX
99 .fpu resb 512
100
101 .edi resq 1
102 .esi resq 1
103 .ebp resq 1
104 .eax resq 1
105 .ebx resq 1
106 .edx resq 1
107 .ecx resq 1
108 .esp resq 1
109 .lss_esp resd 1
110 .ss resw 1
111 .ssPadding resw 1
112 .gs resw 1
113 .gsPadding resw 1
114 .fs resw 1
115 .fsPadding resw 1
116 .es resw 1
117 .esPadding resw 1
118 .ds resw 1
119 .dsPadding resw 1
120 .cs resw 1
121 .csPadding resw 3
122 .eflags resq 1
123 .eip resq 1
124
125 .r8 resq 1
126 .r9 resq 1
127 .r10 resq 1
128 .r11 resq 1
129 .r12 resq 1
130 .r13 resq 1
131 .r14 resq 1
132 .r15 resq 1
133
134 .esHid.u64Base resq 1
135 .esHid.u32Limit resd 1
136 .esHid.Attr resd 1
137
138 .csHid.u64Base resq 1
139 .csHid.u32Limit resd 1
140 .csHid.Attr resd 1
141
142 .ssHid.u64Base resq 1
143 .ssHid.u32Limit resd 1
144 .ssHid.Attr resd 1
145
146 .dsHid.u64Base resq 1
147 .dsHid.u32Limit resd 1
148 .dsHid.Attr resd 1
149
150 .fsHid.u64Base resq 1
151 .fsHid.u32Limit resd 1
152 .fsHid.Attr resd 1
153
154 .gsHid.u64Base resq 1
155 .gsHid.u32Limit resd 1
156 .gsHid.Attr resd 1
157
158
159 .cr0 resq 1
160 .cr2 resq 1
161 .cr3 resq 1
162 .cr4 resq 1
163
164 .dr resq 8
165
166 .gdtr.cbGdt resw 1
167 .gdtr.pGdt resq 1
168 .gdtrPadding resw 1
169 .idtr.cbIdt resw 1
170 .idtr.pIdt resq 1
171 .idtrPadding resw 1
172 .ldtr resw 1
173 .ldtrPadding resw 1
174 .tr resw 1
175 .trPadding resw 1
176
177 .SysEnter.cs resb 8
178 .SysEnter.eip resb 8
179 .SysEnter.esp resb 8
180
181 .msrEFER resb 8
182 .msrSTAR resb 8
183 .msrPAT resb 8
184 .msrLSTAR resb 8
185 .msrCSTAR resb 8
186 .msrSFMASK resb 8
187 .msrKERNELGSBASE resb 8
188
189 .ldtrHid.u64Base resq 1
190 .ldtrHid.u32Limit resd 1
191 .ldtrHid.Attr resd 1
192
193 .trHid.u64Base resq 1
194 .trHid.u32Limit resd 1
195 .trHid.Attr resd 1
196
197 ; padding
198;;; .padding resd 6
199endstruc
200
201
202;;/* Guest MSR state. */
203struc CPUMCTXMSR
204 .au64 resq 64
205endstruc
206
207;;
208; FPU/XMM state
209;;
210struc X86FXSTATE
211 ;/** Control word. */
212 .FCW resw 1
213 ;/** Status word. */
214 .FSW resw 1
215 ;/** Tag word (it's a byte actually). */
216 .FTW resb 1
217 .huh1 resb 1
218 ;/** Opcode. */
219 .FOP resw 1
220 ;/** Instruction pointer. */
221 .FPUIP resd 1
222 ;/** Code selector. */
223 .CS resw 1
224 .Rsvrd1 resw 1
225 ;/* - offset 16 - */
226 ;/** Data pointer. */
227 .FPUDP resd 1
228 ;/** Data segment */
229 .DS resw 1
230 .Rsrvd2 resw 1
231 .MXCSR resd 1
232 .MXCSR_MASK resd 1
233 ;/* - offset 32 - */
234 ; FPU & MMX registers
235 .aRegs resq 8*2
236 ;/* - offset 160 - */
237 ;/* 8 XMM registers in 32 bits mode; 16 in long mode */
238 .aXMM resq 16*2
239 ;/* - offset 416 - */
240 .au32RsrvdRest resd (512 - 416) / 4
241endstruc
242
243%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