VirtualBox

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

Last change on this file since 7944 was 7695, checked in by vboxsync, 17 years ago

Added system MSRs to the CPUMCTX structure.
Sync them in REM as well.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
Line 
1;; @file
2;
3; CPUM - CPU Monitor.
4;
5
6;
7; Copyright (C) 2006-2007 innotek GmbH
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 __VBox_cpum_mac__
28%define __VBox_cpum_mac__
29
30
31;;
32; Registers frame.
33; This is used internally in TRPM, VMMSwitcher_GuestToHost_GuestCtx
34; and other places.
35struc CPUMCTXCORE
36 .edi resq 1
37 .esi resq 1
38 .ebp resq 1
39 .eax resq 1
40 .ebx resq 1
41 .edx resq 1
42 .ecx resq 1
43 .esp resd 1
44 .ss resw 1
45 .ssPadding resw 1
46 .rsp resq 1
47 .gs resw 1
48 .gsPadding resw 1
49 .fs resw 1
50 .fsPadding resw 1
51 .es resw 1
52 .esPadding resw 1
53 .ds resw 1
54 .dsPadding resw 1
55 .cs resw 1
56 .csPadding resw 3
57 .eflags resq 1
58 .eip resq 1
59
60 .r8 resq 1
61 .r9 resq 1
62 .r10 resq 1
63 .r11 resq 1
64 .r12 resq 1
65 .r13 resq 1
66 .r14 resq 1
67 .r15 resq 1
68
69 .esHid.u32Base resd 1
70 .esHid.u32Limit resd 1
71 .esHid.Attr resd 1
72
73 .csHid.u32Base resd 1
74 .csHid.u32Limit resd 1
75 .csHid.Attr resd 1
76
77 .ssHid.u32Base resd 1
78 .ssHid.u32Limit resd 1
79 .ssHid.Attr resd 1
80
81 .dsHid.u32Base resd 1
82 .dsHid.u32Limit resd 1
83 .dsHid.Attr resd 1
84
85 .fsHid.u32Base resd 1
86 .fsHid.u32Limit resd 1
87 .fsHid.Attr resd 1
88
89 .gsHid.u32Base resd 1
90 .gsHid.u32Limit resd 1
91 .gsHid.Attr resd 1
92
93endstruc
94
95
96struc CPUMCTX
97 .fpu resb 512
98
99 .edi resq 1
100 .esi resq 1
101 .ebp resq 1
102 .eax resq 1
103 .ebx resq 1
104 .edx resq 1
105 .ecx resq 1
106 .esp resd 1
107 .ss resw 1
108 .ssPadding resw 1
109 .rsp resq 1
110 .gs resw 1
111 .gsPadding resw 1
112 .fs resw 1
113 .fsPadding resw 1
114 .es resw 1
115 .esPadding resw 1
116 .ds resw 1
117 .dsPadding resw 1
118 .cs resw 1
119 .csPadding resw 3
120 .eflags resq 1
121 .eip resq 1
122
123 .r8 resq 1
124 .r9 resq 1
125 .r10 resq 1
126 .r11 resq 1
127 .r12 resq 1
128 .r13 resq 1
129 .r14 resq 1
130 .r15 resq 1
131
132 .esHid.u32Base resd 1
133 .esHid.u32Limit resd 1
134 .esHid.Attr resd 1
135
136 .csHid.u32Base resd 1
137 .csHid.u32Limit resd 1
138 .csHid.Attr resd 1
139
140 .ssHid.u32Base resd 1
141 .ssHid.u32Limit resd 1
142 .ssHid.Attr resd 1
143
144 .dsHid.u32Base resd 1
145 .dsHid.u32Limit resd 1
146 .dsHid.Attr resd 1
147
148 .fsHid.u32Base resd 1
149 .fsHid.u32Limit resd 1
150 .fsHid.Attr resd 1
151
152 .gsHid.u32Base resd 1
153 .gsHid.u32Limit resd 1
154 .gsHid.Attr resd 1
155
156
157 .cr0 resq 1
158 .cr2 resq 1
159 .cr3 resq 1
160 .cr4 resq 1
161 .cr8 resq 1
162
163 .dr0 resq 1
164 .dr1 resq 1
165 .dr2 resq 1
166 .dr3 resq 1
167 .dr4 resq 1
168 .dr5 resq 1
169 .dr6 resq 1
170 .dr7 resq 1
171
172 .gdtr resb 6 ; GDT limit + linear address
173 .gdtrPadding resw 1
174 .gdtrPadding64 resd 1
175 .idtr resb 6 ; IDT limit + linear address
176 .idtrPadding resw 1
177 .idtrPadding64 resd 1
178 .ldtr resw 1
179 .ldtrPadding resw 1
180 .tr resw 1
181 .trPadding resw 1
182
183 .SysEnter.cs resb 8
184 .SysEnter.eip resb 8
185 .SysEnter.esp resb 8
186
187 .msrEFER resb 8
188 .msrSTAR resb 8
189 .msrPAT resb 8
190 .msrLSTAR resb 8
191 .msrCSTAR resb 8
192 .msrSFMASK resb 8
193 .msrFSBASE resb 8
194 .msrGSBASE resb 8
195 .msrKERNELGSBASE resb 8
196
197 .ldtrHid.u32Base resd 1
198 .ldtrHid.u32Limit resd 1
199 .ldtrHid.Attr resd 1
200
201 .trHid.u32Base resd 1
202 .trHid.u32Limit resd 1
203 .trHid.Attr resd 1
204
205 ; padding
206 .padding resd 2
207endstruc
208
209%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