VirtualBox

source: vbox/trunk/include/VBox/vmm/vm.mac@ 108132

Last change on this file since 108132 was 107893, checked in by vboxsync, 5 weeks ago

VMM,VBox/types.h,VBox/err.h: Added VM target platform arch members to the VM structures (mostly for ring-0). Also added the structure sizes and svn revision to VMMR0_DO_GVMM_CREATE_VM. jiraref:VBP-1470

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.8 KB
Line 
1;; @file
2; VM - The Virtual Machine.
3;
4
5;
6; Copyright (C) 2006-2024 Oracle and/or its affiliates.
7;
8; This file is part of VirtualBox base platform packages, as
9; available from https://www.virtualbox.org.
10;
11; This program is free software; you can redistribute it and/or
12; modify it under the terms of the GNU General Public License
13; as published by the Free Software Foundation, in version 3 of the
14; License.
15;
16; This program is distributed in the hope that it will be useful, but
17; WITHOUT ANY WARRANTY; without even the implied warranty of
18; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19; General Public License for more details.
20;
21; You should have received a copy of the GNU General Public License
22; along with this program; if not, see <https://www.gnu.org/licenses>.
23;
24; The contents of this file may alternatively be used under the terms
25; of the Common Development and Distribution License Version 1.0
26; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
27; in the VirtualBox distribution, in which case the provisions of the
28; CDDL are applicable instead of those of the GPL.
29;
30; You may elect to license modified versions of this file under the
31; terms and conditions of either the GPL or the CDDL or both.
32;
33; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
34;
35
36%ifndef ___VBox_vmm_vm_mac
37%define ___VBox_vmm_vm_mac
38
39%include "VBox/vmm/stam.mac"
40%include "VBox/param.mac"
41
42;/** This action forces the VM to service check and pending interrups on the APIC. */
43%define VMCPU_FF_INTERRUPT_APIC (1 << 0)
44;/** This action forces the VM to service check and pending interrups on the PIC. */
45%define VMCPU_FF_INTERRUPT_PIC (1 << 1)
46;/** This action forces the VM to schedule and run pending timer (TM). */
47%define VMCPU_FF_TIMER (1 << 2)
48;/** This action forces the VM to service pending requests from other
49; * thread or requests which must be executed in another context. */
50%define VMCPU_FF_REQUEST (1 << 9)
51
52;;
53; This is part of the VMCPU structure.
54struc VMCPU
55 .fLocalForcedActions resd 1
56 alignb 8
57 .enmState resd 1
58
59 alignb 64
60 .iem resb 129984 + 32768
61
62 alignb 64
63 .pVMR3 RTR3PTR_RES 1
64 .pVCpuR0ForVtg RTR0PTR_RES 1
65 .pVMRC resq 1
66 .pUVCpu RTR3PTR_RES 1
67 .hNativeThread RTR3PTR_RES 1
68 .hNativeThreadR0 RTR0PTR_RES 1
69 .hThread RTR3PTR_RES 1
70%ifdef IN_RING0
71 .idCpuUnsafe resd 1
72 .enmTargetUnsafe resd 1
73%else
74 .idCpu resd 1
75 .enmTarget resd 1
76%endif
77
78 alignb 64
79 .hm resb 9984
80 alignb 64
81 .nem resb 4608
82 alignb 64
83 .trpm resb 128
84 alignb 64
85 .tm resb 5760
86 alignb 64
87 .vmm resb 9536
88 alignb 64
89 .pdm resb 256
90 alignb 64
91 .iom resb 512
92 alignb 64
93 .dbgf resb 512
94 alignb 64
95 .gim resb 512
96 alignb 64
97%ifdef VBOX_VMM_TARGET_ARMV8
98 .gic resb 3840
99%else
100 .apic resb 3840
101%endif
102
103 alignb 64
104 .fTraceGroups resd 1
105 .cEmtHashCollisions resb 1
106 .abAdHoc resb 3
107 alignb 8
108 .aStatAdHoc resb STAMPROFILEADV_size * 8
109
110 alignb 4096
111 .pgm resb 36864
112 alignb 4096
113 .cpum resb 102400
114%define VMCPU.cpum.GstCtx VMCPU.cpum
115 alignb 4096
116 .em resb 40960
117 alignb 16384
118endstruc
119
120;;
121; This is part of the VM structure.
122struc VM
123 .enmVMState resd 1
124 .fGlobalForcedActions resd 1
125 .paVMPagesR3 RTR3PTR_RES 1
126 .pSession RTR0PTR_RES 1
127 .pUVM RTR3PTR_RES 1
128 .pVMR3 RTR3PTR_RES 1
129 .pVMR0ForCall RTR0PTR_RES 1
130 .pVMRC resq 1
131%ifdef IN_RING0
132 .hSelfUnsafe resd 1
133 .cCpusUnsafe resd 1
134 .enmTargetUnsafe resd 1
135%else
136 .hSelf resd 1
137 .cCpus resd 1
138 .enmTarget resd 1
139%endif
140 .uCpuExecutionCap resd 1
141 .cbSelf resd 1
142 .cbVCpu resd 1
143 .uStructVersion resd 1
144 .bMainExecutionEngine resb 1
145 .fHMEnabled resb 1
146
147 alignb 8
148 .hTraceBufR3 RTR3PTR_RES 1
149 .hTraceBufR0 RTR0PTR_RES 1
150
151 alignb 64
152 .cpum resb 8832 + 128*8192
153 alignb 16384
154 .pgm resb 129728
155 alignb 64
156 .vmm resb 1600
157 alignb 64
158 .hm resb 5504
159 alignb 64
160 .trpm resb 2048
161 alignb 64
162 .selm resb 768
163 alignb 64
164 .mm resb 192
165 alignb 64
166 .pdm resb 22784
167 alignb 64
168 .iom resb 1152
169 alignb 64
170 .em resb 256
171 alignb 64
172 .nem resb 4608
173 alignb 64
174 .tm resb 10112
175 alignb 64
176 .dbgf resb 2432
177 alignb 64
178 .ssm resb 128
179 alignb 64
180 .gim resb 448
181 alignb 64
182%ifdef VBOX_VMM_TARGET_ARMV8
183 .gic resb 128
184%else
185 .apic resb 128
186%endif
187 alignb 64
188 .vm resb 32
189 .cfgm resb 8
190 .iem resb 16
191 .R0Stats resb 64
192 .gcm resb 8
193
194 times ((($ + VMM_MAX_CPU_COUNT * RTR0PTR_CB + 16383) & ~16383) - ($ + VMM_MAX_CPU_COUNT * RTR0PTR_CB)) resb 1
195 .apCpusR3 RTR3PTR_RES VMM_MAX_CPU_COUNT
196 alignb 16384
197
198endstruc
199
200
201%endif
202
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