VirtualBox

source: vbox/trunk/include/VBox/vmm/cpum.mac@ 46512

Last change on this file since 46512 was 43657, checked in by vboxsync, 12 years ago

VMM: APIC refactor. Moved APIC base MSR to the VCPU (where it belongs) for lockless accesses.

  • 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; CPUM - CPU Monitor, Assembly header file.
3;
4
5;
6; Copyright (C) 2006-2012 Oracle Corporation
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
26%ifndef ___VBox_vmm_cpum_mac__
27%define ___VBox_vmm_cpum_mac__
28
29;;
30; Registers frame.
31; This is used internally in TRPM, VMMSwitcher_GuestToHost_GuestCtx
32; and other places.
33struc CPUMCTXCORE
34 .eax resq 1
35 .ecx resq 1
36 .edx resq 1
37 .ebx resq 1
38 .esp resq 1
39 .ebp resq 1
40 .esi resq 1
41 .edi resq 1
42 .r8 resq 1
43 .r9 resq 1
44 .r10 resq 1
45 .r11 resq 1
46 .r12 resq 1
47 .r13 resq 1
48 .r14 resq 1
49 .r15 resq 1
50 .es.Sel resw 1
51 .es.PaddingSel resw 1
52 .es.ValidSel resw 1
53 .es.fFlags resw 1
54 .es.u64Base resq 1
55 .es.u32Limit resd 1
56 .es.Attr resd 1
57 .cs.Sel resw 1
58 .cs.PaddingSel resw 1
59 .cs.ValidSel resw 1
60 .cs.fFlags resw 1
61 .cs.u64Base resq 1
62 .cs.u32Limit resd 1
63 .cs.Attr resd 1
64 .ss.Sel resw 1
65 .ss.PaddingSel resw 1
66 .ss.ValidSel resw 1
67 .ss.fFlags resw 1
68 .ss.u64Base resq 1
69 .ss.u32Limit resd 1
70 .ss.Attr resd 1
71 .ds.Sel resw 1
72 .ds.PaddingSel resw 1
73 .ds.ValidSel resw 1
74 .ds.fFlags resw 1
75 .ds.u64Base resq 1
76 .ds.u32Limit resd 1
77 .ds.Attr resd 1
78 .fs.Sel resw 1
79 .fs.PaddingSel resw 1
80 .fs.ValidSel resw 1
81 .fs.fFlags resw 1
82 .fs.u64Base resq 1
83 .fs.u32Limit resd 1
84 .fs.Attr resd 1
85 .gs.Sel resw 1
86 .gs.PaddingSel resw 1
87 .gs.ValidSel resw 1
88 .gs.fFlags resw 1
89 .gs.u64Base resq 1
90 .gs.u32Limit resd 1
91 .gs.Attr resd 1
92 .eip resq 1
93 .eflags resq 1
94endstruc
95
96
97struc CPUMCTX
98 .fpu resb 512
99 .eax resq 1
100 .ecx resq 1
101 .edx resq 1
102 .ebx resq 1
103 .esp resq 1
104 .ebp resq 1
105 .esi resq 1
106 .edi resq 1
107 .r8 resq 1
108 .r9 resq 1
109 .r10 resq 1
110 .r11 resq 1
111 .r12 resq 1
112 .r13 resq 1
113 .r14 resq 1
114 .r15 resq 1
115 .es.Sel resw 1
116 .es.PaddingSel resw 1
117 .es.ValidSel resw 1
118 .es.fFlags resw 1
119 .es.u64Base resq 1
120 .es.u32Limit resd 1
121 .es.Attr resd 1
122 .cs.Sel resw 1
123 .cs.PaddingSel resw 1
124 .cs.ValidSel resw 1
125 .cs.fFlags resw 1
126 .cs.u64Base resq 1
127 .cs.u32Limit resd 1
128 .cs.Attr resd 1
129 .ss.Sel resw 1
130 .ss.PaddingSel resw 1
131 .ss.ValidSel resw 1
132 .ss.fFlags resw 1
133 .ss.u64Base resq 1
134 .ss.u32Limit resd 1
135 .ss.Attr resd 1
136 .ds.Sel resw 1
137 .ds.PaddingSel resw 1
138 .ds.ValidSel resw 1
139 .ds.fFlags resw 1
140 .ds.u64Base resq 1
141 .ds.u32Limit resd 1
142 .ds.Attr resd 1
143 .fs.Sel resw 1
144 .fs.PaddingSel resw 1
145 .fs.ValidSel resw 1
146 .fs.fFlags resw 1
147 .fs.u64Base resq 1
148 .fs.u32Limit resd 1
149 .fs.Attr resd 1
150 .gs.Sel resw 1
151 .gs.PaddingSel resw 1
152 .gs.ValidSel resw 1
153 .gs.fFlags resw 1
154 .gs.u64Base resq 1
155 .gs.u32Limit resd 1
156 .gs.Attr resd 1
157 .eip resq 1
158 .eflags resq 1
159 .cr0 resq 1
160 .cr2 resq 1
161 .cr3 resq 1
162 .cr4 resq 1
163 .dr resq 8
164 .gdtrPadding resw 3
165 .gdtr resw 0
166 .gdtr.cbGdt resw 1
167 .gdtr.pGdt resq 1
168 .idtrPadding resw 3
169 .idtr resw 0
170 .idtr.cbIdt resw 1
171 .idtr.pIdt resq 1
172 .ldtr.Sel resw 1
173 .ldtr.PaddingSel resw 1
174 .ldtr.ValidSel resw 1
175 .ldtr.fFlags resw 1
176 .ldtr.u64Base resq 1
177 .ldtr.u32Limit resd 1
178 .ldtr.Attr resd 1
179 .tr.Sel resw 1
180 .tr.PaddingSel resw 1
181 .tr.ValidSel resw 1
182 .tr.fFlags resw 1
183 .tr.u64Base resq 1
184 .tr.u32Limit resd 1
185 .tr.Attr resd 1
186 .SysEnter.cs resb 8
187 .SysEnter.eip resb 8
188 .SysEnter.esp resb 8
189 .msrEFER resb 8
190 .msrSTAR resb 8
191 .msrPAT resb 8
192 .msrLSTAR resb 8
193 .msrCSTAR resb 8
194 .msrSFMASK resb 8
195 .msrKERNELGSBASE resb 8
196 .msrApicBase resb 8
197 .au32SizePadding resb 24
198endstruc
199
200
201;;
202; Guest MSR state.
203struc CPUMCTXMSRS
204 .au64 resq 64
205endstruc
206
207
208%endif
209
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