VirtualBox

source: vbox/trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp@ 6820

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

Implemented PGMR3PhysRegisterRam (not used). Enforced alignment of aPages in PGMRAMRANGES. Added pszDesc to PGMRAMRANGES (only set by the new code).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 36.4 KB
Line 
1/* $Id: tstVMStructGC.cpp 6820 2008-02-05 21:54:28Z vboxsync $ */
2/** @file
3 * tstVMMStructGC - Generate structure member and size checks from the GC perspective.
4 *
5 * This is built using the VBOXGC template but linked into a host
6 * ring-3 executable, rather hacky.
7 */
8
9/*
10 * Copyright (C) 2006-2007 innotek GmbH
11 *
12 * This file is part of VirtualBox Open Source Edition (OSE), as
13 * available from http://www.215389.xyz. This file is free software;
14 * you can redistribute it and/or modify it under the terms of the GNU
15 * General Public License (GPL) as published by the Free Software
16 * Foundation, in version 2 as it comes in the "COPYING" file of the
17 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
18 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
19 */
20
21
22/*
23 * Sanity checks.
24 */
25#ifndef IN_GC
26# error Incorrect template!
27#endif
28#if defined(IN_RING3) || defined(IN_RING0)
29# error Incorrect template!
30#endif
31
32
33/*******************************************************************************
34* Header Files *
35*******************************************************************************/
36#include <VBox/cfgm.h>
37#include <VBox/cpum.h>
38#include <VBox/mm.h>
39#include <VBox/pgm.h>
40#include <VBox/selm.h>
41#include <VBox/trpm.h>
42#include <VBox/vmm.h>
43#include <VBox/stam.h>
44#include "PDMInternal.h"
45#include <VBox/pdm.h>
46#include "CFGMInternal.h"
47#include "CPUMInternal.h"
48#include "MMInternal.h"
49#include "PGMInternal.h"
50#include "SELMInternal.h"
51#include "TRPMInternal.h"
52#include "TMInternal.h"
53#include "IOMInternal.h"
54#include "REMInternal.h"
55#include "HWACCMInternal.h"
56#include "PATMInternal.h"
57#include "VMMInternal.h"
58#include "DBGFInternal.h"
59#include "STAMInternal.h"
60#include "CSAMInternal.h"
61#include "EMInternal.h"
62#include "REMInternal.h"
63#include <VBox/vm.h>
64#include <VBox/param.h>
65#include <VBox/x86.h>
66
67/* we don't use iprt here because we're pretending to be in GC! */
68#include <stdio.h>
69
70#define GEN_CHECK_SIZE(s) printf(" CHECK_SIZE(%s, %u);\n", #s, (unsigned)sizeof(s))
71#define GEN_CHECK_OFF(s, m) printf(" CHECK_OFF(%s, %u, %s);\n", #s, (unsigned)RT_OFFSETOF(s, m), #m)
72
73int main()
74{
75 GEN_CHECK_SIZE(CFGM);
76
77 GEN_CHECK_SIZE(CPUM); // has .mac
78 GEN_CHECK_SIZE(CPUMHOSTCTX);
79 GEN_CHECK_SIZE(CPUMCTX);
80 GEN_CHECK_SIZE(CPUMCTXCORE);
81 GEN_CHECK_SIZE(STAMRATIOU32);
82 GEN_CHECK_SIZE(AVLOHCPHYSNODECORE);
83 GEN_CHECK_SIZE(AVLOGCPHYSNODECORE);
84 GEN_CHECK_SIZE(AVLROGCPHYSNODECORE);
85 GEN_CHECK_SIZE(AVLOGCPTRNODECORE);
86 GEN_CHECK_SIZE(AVLROGCPTRNODECORE);
87 GEN_CHECK_SIZE(AVLOIOPORTNODECORE);
88 GEN_CHECK_SIZE(AVLROIOPORTNODECORE);
89
90 GEN_CHECK_SIZE(DBGF);
91 GEN_CHECK_OFF(DBGF, offVM);
92 GEN_CHECK_OFF(DBGF, fAttached);
93 GEN_CHECK_OFF(DBGF, fStoppedInHyper);
94 GEN_CHECK_OFF(DBGF, PingPong);
95 GEN_CHECK_OFF(DBGF, DbgEvent);
96 GEN_CHECK_OFF(DBGF, enmVMMCmd);
97 GEN_CHECK_OFF(DBGF, VMMCmdData);
98 GEN_CHECK_OFF(DBGF, pInfoFirst);
99 GEN_CHECK_OFF(DBGF, InfoCritSect);
100 GEN_CHECK_OFF(DBGF, SymbolTree);
101 GEN_CHECK_OFF(DBGF, pSymbolSpace);
102 GEN_CHECK_OFF(DBGF, fSymInited);
103 GEN_CHECK_OFF(DBGF, cHwBreakpoints);
104 GEN_CHECK_OFF(DBGF, cBreakpoints);
105 GEN_CHECK_OFF(DBGF, aHwBreakpoints);
106 GEN_CHECK_OFF(DBGF, aBreakpoints);
107 GEN_CHECK_OFF(DBGF, iActiveBp);
108 GEN_CHECK_OFF(DBGF, fSingleSteppingRaw);
109 GEN_CHECK_SIZE(DBGFEVENT);
110
111 GEN_CHECK_SIZE(EM);
112 GEN_CHECK_OFF(EM, offVM);
113 GEN_CHECK_OFF(EM, pCtx);
114 GEN_CHECK_OFF(EM, enmState);
115 GEN_CHECK_OFF(EM, fForceRAW);
116 GEN_CHECK_OFF(EM, u.achPaddingFatalLongJump);
117 GEN_CHECK_OFF(EM, StatForcedActions);
118 GEN_CHECK_OFF(EM, StatTotalClis);
119 GEN_CHECK_OFF(EM, pStatsHC);
120 GEN_CHECK_OFF(EM, pStatsGC);
121 GEN_CHECK_OFF(EM, pCliStatTree);
122
123 GEN_CHECK_SIZE(IOM);
124
125 GEN_CHECK_SIZE(IOMMMIORANGER0);
126 GEN_CHECK_OFF(IOMMMIORANGER0, GCPhys);
127 GEN_CHECK_OFF(IOMMMIORANGER0, cbSize);
128 GEN_CHECK_OFF(IOMMMIORANGER0, pvUser);
129 GEN_CHECK_OFF(IOMMMIORANGER0, pDevIns);
130 GEN_CHECK_OFF(IOMMMIORANGER0, pfnWriteCallback);
131 GEN_CHECK_OFF(IOMMMIORANGER0, pszDesc);
132
133 GEN_CHECK_SIZE(IOMMMIORANGEGC);
134 GEN_CHECK_OFF(IOMMMIORANGEGC, GCPhys);
135 GEN_CHECK_OFF(IOMMMIORANGEGC, cbSize);
136 GEN_CHECK_OFF(IOMMMIORANGEGC, pvUser);
137 GEN_CHECK_OFF(IOMMMIORANGEGC, pDevIns);
138 GEN_CHECK_OFF(IOMMMIORANGEGC, pfnWriteCallback);
139 GEN_CHECK_OFF(IOMMMIORANGEGC, pszDesc);
140
141 GEN_CHECK_SIZE(IOMMMIOSTATS);
142 GEN_CHECK_OFF(IOMMMIOSTATS, ReadR3);
143
144 GEN_CHECK_SIZE(IOMIOPORTRANGER0);
145 GEN_CHECK_OFF(IOMIOPORTRANGER0, Port);
146 GEN_CHECK_OFF(IOMIOPORTRANGER0, cPorts);
147 GEN_CHECK_OFF(IOMIOPORTRANGER0, pvUser);
148 GEN_CHECK_OFF(IOMIOPORTRANGER0, pDevIns);
149 GEN_CHECK_OFF(IOMIOPORTRANGER0, pszDesc);
150
151 GEN_CHECK_SIZE(IOMIOPORTRANGEGC);
152 GEN_CHECK_OFF(IOMIOPORTRANGEGC, Port);
153 GEN_CHECK_OFF(IOMIOPORTRANGEGC, cPorts);
154 GEN_CHECK_OFF(IOMIOPORTRANGEGC, pvUser);
155 GEN_CHECK_OFF(IOMIOPORTRANGEGC, pDevIns);
156 GEN_CHECK_OFF(IOMIOPORTRANGEGC, pszDesc);
157
158 GEN_CHECK_SIZE(IOMIOPORTSTATS);
159 GEN_CHECK_OFF(IOMIOPORTSTATS, InR3);
160
161 GEN_CHECK_SIZE(IOMTREES);
162 GEN_CHECK_OFF(IOMTREES, IOPortTreeR3);
163 GEN_CHECK_OFF(IOMTREES, IOPortTreeR0);
164 GEN_CHECK_OFF(IOMTREES, IOPortTreeGC);
165 GEN_CHECK_OFF(IOMTREES, MMIOTreeR3);
166 GEN_CHECK_OFF(IOMTREES, MMIOTreeR0);
167 GEN_CHECK_OFF(IOMTREES, MMIOTreeGC);
168 GEN_CHECK_OFF(IOMTREES, IOPortStatTree);
169 GEN_CHECK_OFF(IOMTREES, MMIOStatTree);
170
171 GEN_CHECK_SIZE(MM);
172 GEN_CHECK_OFF(MM, offVM);
173 GEN_CHECK_OFF(MM, offHyperNextStatic);
174 GEN_CHECK_OFF(MM, cbHyperArea);
175 GEN_CHECK_OFF(MM, fDoneMMR3InitPaging);
176 GEN_CHECK_OFF(MM, fPGMInitialized);
177 GEN_CHECK_OFF(MM, offLookupHyper);
178 GEN_CHECK_OFF(MM, pHyperHeapHC);
179 GEN_CHECK_OFF(MM, pHyperHeapGC);
180 GEN_CHECK_OFF(MM, pLockedMem);
181 GEN_CHECK_OFF(MM, pPagePool);
182 GEN_CHECK_OFF(MM, pPagePoolLow);
183 GEN_CHECK_OFF(MM, pvDummyPage);
184 GEN_CHECK_OFF(MM, HCPhysDummyPage);
185 GEN_CHECK_OFF(MM, cbRamBase);
186 GEN_CHECK_OFF(MM, cBasePages);
187 GEN_CHECK_OFF(MM, cShadowPages);
188 GEN_CHECK_OFF(MM, cFixedPages);
189 GEN_CHECK_SIZE(MMHYPERSTAT);
190 GEN_CHECK_SIZE(MMHYPERCHUNK);
191 GEN_CHECK_SIZE(MMHYPERCHUNKFREE);
192 GEN_CHECK_SIZE(MMHYPERHEAP);
193 GEN_CHECK_OFF(MMHYPERHEAP, u32Magic);
194 GEN_CHECK_OFF(MMHYPERHEAP, cbHeap);
195 GEN_CHECK_OFF(MMHYPERHEAP, pbHeapHC);
196 GEN_CHECK_OFF(MMHYPERHEAP, pbHeapGC);
197 GEN_CHECK_OFF(MMHYPERHEAP, pVMHC);
198 GEN_CHECK_OFF(MMHYPERHEAP, pVMGC);
199 GEN_CHECK_OFF(MMHYPERHEAP, cbFree);
200 GEN_CHECK_OFF(MMHYPERHEAP, offFreeHead);
201 GEN_CHECK_OFF(MMHYPERHEAP, offFreeTail);
202 GEN_CHECK_OFF(MMHYPERHEAP, offPageAligned);
203 GEN_CHECK_OFF(MMHYPERHEAP, HyperHeapStatTree);
204 GEN_CHECK_SIZE(MMLOOKUPHYPER);
205 GEN_CHECK_OFF(MMLOOKUPHYPER, offNext);
206 GEN_CHECK_OFF(MMLOOKUPHYPER, off);
207 GEN_CHECK_OFF(MMLOOKUPHYPER, cb);
208 GEN_CHECK_OFF(MMLOOKUPHYPER, enmType);
209 GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvHC);
210 GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvR0);
211 GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pLockedMem);
212 GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.pvHC);
213 GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.HCPhys);
214 GEN_CHECK_OFF(MMLOOKUPHYPER, u.GCPhys.GCPhys);
215 GEN_CHECK_OFF(MMLOOKUPHYPER, pszDesc);
216
217 GEN_CHECK_SIZE(PDM);
218 GEN_CHECK_OFF(PDM, offVM);
219 GEN_CHECK_OFF(PDM, pDevs);
220 GEN_CHECK_OFF(PDM, pDevInstances);
221 GEN_CHECK_OFF(PDM, pUsbDevs);
222 GEN_CHECK_OFF(PDM, pUsbInstances);
223 GEN_CHECK_OFF(PDM, pDrvs);
224 GEN_CHECK_OFF(PDM, pCritSects);
225 GEN_CHECK_OFF(PDM, aPciBuses);
226 GEN_CHECK_OFF(PDM, aPciBuses[0].iBus);
227 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR3);
228 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR3);
229 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnRegisterR3);
230 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnIORegionRegisterR3);
231 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSaveExecR3);
232 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnLoadExecR3);
233 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnFakePCIBIOSR3);
234 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR0);
235 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR0);
236 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsGC);
237 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqGC);
238 GEN_CHECK_OFF(PDM, Pic);
239 GEN_CHECK_OFF(PDM, Pic.pDevInsR3);
240 GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR3);
241 GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR3);
242 GEN_CHECK_OFF(PDM, Pic.pDevInsR0);
243 GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR0);
244 GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR0);
245 GEN_CHECK_OFF(PDM, Pic.pDevInsGC);
246 GEN_CHECK_OFF(PDM, Pic.pfnSetIrqGC);
247 GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptGC);
248 GEN_CHECK_OFF(PDM, Apic);
249 GEN_CHECK_OFF(PDM, Apic.pDevInsR3);
250 GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR3);
251 GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR3);
252 GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR3);
253 GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR3);
254 GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR3);
255 GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR3);
256 GEN_CHECK_OFF(PDM, Apic.pDevInsR0);
257 GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR0);
258 GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR0);
259 GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR0);
260 GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR0);
261 GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR0);
262 GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR0);
263 GEN_CHECK_OFF(PDM, Apic.pDevInsGC);
264 GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptGC);
265 GEN_CHECK_OFF(PDM, Apic.pfnSetBaseGC);
266 GEN_CHECK_OFF(PDM, Apic.pfnGetBaseGC);
267 GEN_CHECK_OFF(PDM, Apic.pfnSetTPRGC);
268 GEN_CHECK_OFF(PDM, Apic.pfnGetTPRGC);
269 GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverGC);
270 GEN_CHECK_OFF(PDM, IoApic);
271 GEN_CHECK_OFF(PDM, IoApic.pDevInsR3);
272 GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR3);
273 GEN_CHECK_OFF(PDM, IoApic.pDevInsR0);
274 GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR0);
275 GEN_CHECK_OFF(PDM, IoApic.pDevInsGC);
276 GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqGC);
277 GEN_CHECK_OFF(PDM, pDmac);
278 GEN_CHECK_OFF(PDM, pRtc);
279 GEN_CHECK_OFF(PDM, pUsbHubs);
280 GEN_CHECK_OFF(PDM, pDevHlpQueueGC);
281 GEN_CHECK_OFF(PDM, pDevHlpQueueHC);
282 GEN_CHECK_OFF(PDM, cQueuedCritSectLeaves);
283 GEN_CHECK_OFF(PDM, apQueuedCritSectsLeaves);
284 GEN_CHECK_OFF(PDM, pQueuesTimer);
285 GEN_CHECK_OFF(PDM, pQueuesForced);
286 GEN_CHECK_OFF(PDM, pQueueFlushGC);
287 GEN_CHECK_OFF(PDM, pQueueFlushHC);
288 GEN_CHECK_OFF(PDM, pThreads);
289 GEN_CHECK_OFF(PDM, pThreadsTail);
290 GEN_CHECK_OFF(PDM, cPollers);
291 GEN_CHECK_OFF(PDM, apfnPollers);
292 GEN_CHECK_OFF(PDM, aDrvInsPollers);
293 GEN_CHECK_OFF(PDM, pTimerPollers);
294#ifdef VBOX_WITH_PDM_LOCK
295 GEN_CHECK_OFF(PDM, CritSect);
296#endif
297 GEN_CHECK_OFF(PDM, StatQueuedCritSectLeaves);
298 GEN_CHECK_SIZE(PDMDEVINSINT);
299 GEN_CHECK_OFF(PDMDEVINSINT, pNextHC);
300 GEN_CHECK_OFF(PDMDEVINSINT, pPerDeviceNextHC);
301 GEN_CHECK_OFF(PDMDEVINSINT, pDevHC);
302 GEN_CHECK_OFF(PDMDEVINSINT, pVMHC);
303 GEN_CHECK_OFF(PDMDEVINSINT, pVMGC);
304 GEN_CHECK_OFF(PDMDEVINSINT, pLunsHC);
305 GEN_CHECK_OFF(PDMDEVINSINT, pCfgHandle);
306 GEN_CHECK_OFF(PDMDEVINSINT, pPciDeviceHC);
307 GEN_CHECK_OFF(PDMDEVINSINT, pPciDeviceGC);
308 GEN_CHECK_OFF(PDMDEVINSINT, pPciBusHC);
309 GEN_CHECK_OFF(PDMDEVINSINT, pPciBusGC);
310 GEN_CHECK_SIZE(PDMCRITSECTINT);
311 GEN_CHECK_OFF(PDMCRITSECTINT, Core);
312 GEN_CHECK_OFF(PDMCRITSECTINT, pNext);
313 GEN_CHECK_OFF(PDMCRITSECTINT, pvKey);
314 GEN_CHECK_OFF(PDMCRITSECTINT, pVMR3);
315 GEN_CHECK_OFF(PDMCRITSECTINT, pVMR0);
316 GEN_CHECK_OFF(PDMCRITSECTINT, pVMGC);
317 GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionR0GCLock);
318 GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionR0GCUnlock);
319 GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionR3);
320 GEN_CHECK_OFF(PDMCRITSECTINT, StatLocked);
321 GEN_CHECK_SIZE(PDMQUEUE);
322 GEN_CHECK_OFF(PDMQUEUE, pNext);
323 GEN_CHECK_OFF(PDMQUEUE, enmType);
324 GEN_CHECK_OFF(PDMQUEUE, u);
325 GEN_CHECK_OFF(PDMQUEUE, u.Dev.pfnCallback);
326 GEN_CHECK_OFF(PDMQUEUE, u.Dev.pDevIns);
327 GEN_CHECK_OFF(PDMQUEUE, u.Drv.pfnCallback);
328 GEN_CHECK_OFF(PDMQUEUE, u.Drv.pDrvIns);
329 GEN_CHECK_OFF(PDMQUEUE, u.Int.pfnCallback);
330 GEN_CHECK_OFF(PDMQUEUE, u.Ext.pfnCallback);
331 GEN_CHECK_OFF(PDMQUEUE, u.Ext.pvUser);
332 GEN_CHECK_OFF(PDMQUEUE, pVMHC);
333 GEN_CHECK_OFF(PDMQUEUE, pVMGC);
334 GEN_CHECK_OFF(PDMQUEUE, cMilliesInterval);
335 GEN_CHECK_OFF(PDMQUEUE, pTimer);
336 GEN_CHECK_OFF(PDMQUEUE, cbItem);
337 GEN_CHECK_OFF(PDMQUEUE, cItems);
338 GEN_CHECK_OFF(PDMQUEUE, pPendingHC);
339 GEN_CHECK_OFF(PDMQUEUE, pPendingGC);
340 GEN_CHECK_OFF(PDMQUEUE, iFreeHead);
341 GEN_CHECK_OFF(PDMQUEUE, iFreeTail);
342 GEN_CHECK_OFF(PDMQUEUE, aFreeItems);
343 GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1]);
344 GEN_CHECK_OFF(PDMQUEUE, aFreeItems[0].pItemGC);
345 GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1].pItemHC);
346 GEN_CHECK_SIZE(PDMDEVHLPTASK);
347 GEN_CHECK_OFF(PDMDEVHLPTASK, Core);
348 GEN_CHECK_OFF(PDMDEVHLPTASK, pDevInsHC);
349 GEN_CHECK_OFF(PDMDEVHLPTASK, enmOp);
350 GEN_CHECK_OFF(PDMDEVHLPTASK, u);
351 GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iIrq);
352 GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iLevel);
353
354 GEN_CHECK_SIZE(PGM);
355 GEN_CHECK_OFF(PGM, offVM);
356 GEN_CHECK_OFF(PGM, paDynPageMap32BitPTEsGC);
357 GEN_CHECK_OFF(PGM, paDynPageMapPaePTEsGC);
358 GEN_CHECK_OFF(PGM, enmHostMode);
359 GEN_CHECK_OFF(PGM, enmShadowMode);
360 GEN_CHECK_OFF(PGM, enmGuestMode);
361 GEN_CHECK_OFF(PGM, GCPhysCR3);
362 GEN_CHECK_OFF(PGM, GCPtrCR3Mapping);
363 GEN_CHECK_OFF(PGM, GCPhysGstCR3Monitored);
364 GEN_CHECK_OFF(PGM, pGuestPDHC);
365 GEN_CHECK_OFF(PGM, pGuestPDGC);
366 GEN_CHECK_OFF(PGM, pGstPaePDPTRHC);
367 GEN_CHECK_OFF(PGM, pGstPaePDPTRGC);
368 GEN_CHECK_OFF(PGM, apGstPaePDsHC);
369 GEN_CHECK_OFF(PGM, apGstPaePDsGC);
370 GEN_CHECK_OFF(PGM, aGCPhysGstPaePDs);
371 GEN_CHECK_OFF(PGM, aGCPhysGstPaePDsMonitored);
372 GEN_CHECK_OFF(PGM, pHC32BitPD);
373 GEN_CHECK_OFF(PGM, pGC32BitPD);
374 GEN_CHECK_OFF(PGM, HCPhys32BitPD);
375 GEN_CHECK_OFF(PGM, apHCPaePDs);
376 GEN_CHECK_OFF(PGM, apGCPaePDs);
377 GEN_CHECK_OFF(PGM, aHCPhysPaePDs);
378 GEN_CHECK_OFF(PGM, pHCPaePDPTR);
379 GEN_CHECK_OFF(PGM, pGCPaePDPTR);
380 GEN_CHECK_OFF(PGM, HCPhysPaePDPTR);
381 GEN_CHECK_OFF(PGM, pHCPaePML4);
382 GEN_CHECK_OFF(PGM, pGCPaePML4);
383 GEN_CHECK_OFF(PGM, HCPhysPaePML4);
384 GEN_CHECK_OFF(PGM, pfnR3ShwRelocate);
385 GEN_CHECK_OFF(PGM, pfnR3ShwExit);
386 GEN_CHECK_OFF(PGM, pfnR3ShwGetPage);
387 GEN_CHECK_OFF(PGM, pfnR3ShwModifyPage);
388 GEN_CHECK_OFF(PGM, pfnR3ShwGetPDEByIndex);
389 GEN_CHECK_OFF(PGM, pfnR3ShwSetPDEByIndex);
390 GEN_CHECK_OFF(PGM, pfnR3ShwModifyPDEByIndex);
391 GEN_CHECK_OFF(PGM, pfnGCShwGetPage);
392 GEN_CHECK_OFF(PGM, pfnGCShwModifyPage);
393 GEN_CHECK_OFF(PGM, pfnGCShwGetPDEByIndex);
394 GEN_CHECK_OFF(PGM, pfnGCShwSetPDEByIndex);
395 GEN_CHECK_OFF(PGM, pfnGCShwModifyPDEByIndex);
396 GEN_CHECK_OFF(PGM, pfnR3GstRelocate);
397 GEN_CHECK_OFF(PGM, pfnR3GstExit);
398 GEN_CHECK_OFF(PGM, pfnR3GstMonitorCR3);
399 GEN_CHECK_OFF(PGM, pfnR3GstUnmonitorCR3);
400 GEN_CHECK_OFF(PGM, pfnR3GstMapCR3);
401 GEN_CHECK_OFF(PGM, pfnR3GstUnmapCR3);
402 GEN_CHECK_OFF(PGM, pfnR3GstGetPage);
403 GEN_CHECK_OFF(PGM, pfnR3GstModifyPage);
404 GEN_CHECK_OFF(PGM, pfnR3GstGetPDE);
405 GEN_CHECK_OFF(PGM, pfnGCGstGetPage);
406 GEN_CHECK_OFF(PGM, pfnGCGstModifyPage);
407 GEN_CHECK_OFF(PGM, pfnGCGstGetPDE);
408 GEN_CHECK_OFF(PGM, pfnR3BthRelocate);
409 GEN_CHECK_OFF(PGM, pfnR3BthSyncCR3);
410 GEN_CHECK_OFF(PGM, pfnR3BthTrap0eHandler);
411 GEN_CHECK_OFF(PGM, pfnR3BthInvalidatePage);
412 GEN_CHECK_OFF(PGM, pfnR3BthSyncPage);
413 GEN_CHECK_OFF(PGM, pfnR3BthPrefetchPage);
414 GEN_CHECK_OFF(PGM, pfnR3BthVerifyAccessSyncPage);
415 GEN_CHECK_OFF(PGM, pfnR3BthAssertCR3);
416 GEN_CHECK_OFF(PGM, pfnGCBthTrap0eHandler);
417 GEN_CHECK_OFF(PGM, pfnGCBthInvalidatePage);
418 GEN_CHECK_OFF(PGM, pfnGCBthSyncPage);
419 GEN_CHECK_OFF(PGM, pfnGCBthPrefetchPage);
420 GEN_CHECK_OFF(PGM, pfnGCBthVerifyAccessSyncPage);
421 GEN_CHECK_OFF(PGM, pfnGCBthAssertCR3);
422 GEN_CHECK_OFF(PGM, pRamRangesHC);
423 GEN_CHECK_OFF(PGM, pRamRangesGC);
424 GEN_CHECK_OFF(PGM, cbRamSize);
425 GEN_CHECK_OFF(PGM, pTreesHC);
426 GEN_CHECK_OFF(PGM, pTreesGC);
427 GEN_CHECK_OFF(PGM, pMappingsR3);
428 GEN_CHECK_OFF(PGM, pMappingsGC);
429 GEN_CHECK_OFF(PGM, pMappingsR0);
430 GEN_CHECK_OFF(PGM, fMappingsFixed);
431 GEN_CHECK_OFF(PGM, GCPtrMappingFixed);
432 GEN_CHECK_OFF(PGM, cbMappingFixed);
433 GEN_CHECK_OFF(PGM, pInterPD);
434 GEN_CHECK_OFF(PGM, apInterPTs);
435 GEN_CHECK_OFF(PGM, apInterPaePTs);
436 GEN_CHECK_OFF(PGM, apInterPaePDs);
437 GEN_CHECK_OFF(PGM, pInterPaePDPTR);
438 GEN_CHECK_OFF(PGM, pInterPaePDPTR64);
439 GEN_CHECK_OFF(PGM, pInterPaePML4);
440 GEN_CHECK_OFF(PGM, HCPhysInterPD);
441 GEN_CHECK_OFF(PGM, HCPhysInterPaePDPTR);
442 GEN_CHECK_OFF(PGM, HCPhysInterPaePML4);
443 GEN_CHECK_OFF(PGM, pbDynPageMapBaseGC);
444 GEN_CHECK_OFF(PGM, iDynPageMapLast);
445 GEN_CHECK_OFF(PGM, aHCPhysDynPageMapCache);
446 GEN_CHECK_OFF(PGM, GCPhysA20Mask);
447 GEN_CHECK_OFF(PGM, fA20Enabled);
448 GEN_CHECK_OFF(PGM, fSyncFlags);
449 GEN_CHECK_OFF(PGM, CritSect);
450#ifdef PGM_PD_CACHING_ENABLED
451 GEN_CHECK_OFF(PGM, pdcache);
452#endif
453 GEN_CHECK_OFF(PGM, pgmphysreadcache);
454 GEN_CHECK_OFF(PGM, pgmphyswritecache);
455 GEN_CHECK_OFF(PGM, ChunkR3Map);
456 GEN_CHECK_OFF(PGM, ChunkR3Map.pTree);
457 GEN_CHECK_OFF(PGM, ChunkR3Map.Tlb);
458 GEN_CHECK_OFF(PGM, ChunkR3Map.c);
459 GEN_CHECK_OFF(PGM, ChunkR3Map.cMax);
460 GEN_CHECK_OFF(PGM, ChunkR3Map.iNow);
461 GEN_CHECK_OFF(PGM, ChunkR3Map.AgeingCountdown);
462 GEN_CHECK_OFF(PGM, PhysTlbHC);
463 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[0]);
464 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1]);
465 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].GCPhys);
466 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pMap);
467 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pPage);
468 GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pv);
469 GEN_CHECK_OFF(PGM, HCPhysZeroPg);
470 GEN_CHECK_OFF(PGM, pvZeroPgR3);
471 GEN_CHECK_OFF(PGM, pvZeroPgR0);
472 GEN_CHECK_OFF(PGM, pvZeroPgGC);
473 GEN_CHECK_OFF(PGM, cHandyPages);
474 GEN_CHECK_OFF(PGM, aHandyPages);
475 GEN_CHECK_OFF(PGM, aHandyPages[1]);
476 GEN_CHECK_OFF(PGM, aHandyPages[1].HCPhysGCPhys);
477 GEN_CHECK_OFF(PGM, aHandyPages[1].idPage);
478 GEN_CHECK_OFF(PGM, aHandyPages[1].idSharedPage);
479 GEN_CHECK_OFF(PGM, cAllPages);
480 GEN_CHECK_OFF(PGM, cPrivatePages);
481 GEN_CHECK_OFF(PGM, cSharedPages);
482 GEN_CHECK_OFF(PGM, cZeroPages);
483 GEN_CHECK_OFF(PGM, cGuestModeChanges);
484
485 GEN_CHECK_SIZE(PGMMAPPING);
486 GEN_CHECK_OFF(PGMMAPPING, pNextR3);
487 GEN_CHECK_OFF(PGMMAPPING, pNextGC);
488 GEN_CHECK_OFF(PGMMAPPING, pNextR0);
489 GEN_CHECK_OFF(PGMMAPPING, GCPtr);
490 GEN_CHECK_OFF(PGMMAPPING, GCPtrLast);
491 GEN_CHECK_OFF(PGMMAPPING, cb);
492 GEN_CHECK_OFF(PGMMAPPING, pfnRelocate);
493 GEN_CHECK_OFF(PGMMAPPING, pvUser);
494 GEN_CHECK_OFF(PGMMAPPING, pszDesc);
495 GEN_CHECK_OFF(PGMMAPPING, cPTs);
496 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPT);
497 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR3);
498 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR0);
499 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTGC);
500 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT0);
501 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT1);
502 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR3);
503 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsGC);
504 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR0);
505 GEN_CHECK_SIZE(PGMPHYSHANDLER);
506 GEN_CHECK_OFF(PGMPHYSHANDLER, Core);
507 GEN_CHECK_OFF(PGMPHYSHANDLER, enmType);
508 GEN_CHECK_OFF(PGMPHYSHANDLER, cPages);
509 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR3);
510 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR3);
511 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR0);
512 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR0);
513 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerGC);
514 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserGC);
515 GEN_CHECK_OFF(PGMPHYSHANDLER, pszDesc);
516 GEN_CHECK_SIZE(PGMPHYS2VIRTHANDLER);
517 GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, Core);
518 GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, offVirtHandler);
519 GEN_CHECK_SIZE(PGMVIRTHANDLER);
520 GEN_CHECK_OFF(PGMVIRTHANDLER, Core);
521 GEN_CHECK_OFF(PGMVIRTHANDLER, enmType);
522 GEN_CHECK_OFF(PGMVIRTHANDLER, GCPtr);
523 GEN_CHECK_OFF(PGMVIRTHANDLER, GCPtrLast);
524 GEN_CHECK_OFF(PGMVIRTHANDLER, cb);
525 GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerHC);
526 GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerGC);
527 GEN_CHECK_OFF(PGMVIRTHANDLER, pszDesc);
528 GEN_CHECK_OFF(PGMVIRTHANDLER, cPages);
529 GEN_CHECK_OFF(PGMVIRTHANDLER, aPhysToVirt);
530 GEN_CHECK_SIZE(PGMPAGE);
531 GEN_CHECK_OFF(PGMPAGE, HCPhys);
532 GEN_CHECK_SIZE(PGMRAMRANGE);
533 GEN_CHECK_OFF(PGMRAMRANGE, pNextHC);
534 GEN_CHECK_OFF(PGMRAMRANGE, pNextGC);
535 GEN_CHECK_OFF(PGMRAMRANGE, GCPhys);
536 GEN_CHECK_OFF(PGMRAMRANGE, GCPhysLast);
537 GEN_CHECK_OFF(PGMRAMRANGE, cb);
538 GEN_CHECK_OFF(PGMRAMRANGE, fFlags);
539 GEN_CHECK_OFF(PGMRAMRANGE, pvHC);
540 GEN_CHECK_OFF(PGMRAMRANGE, pszDesc);
541 GEN_CHECK_OFF(PGMRAMRANGE, aPages);
542 GEN_CHECK_OFF(PGMRAMRANGE, aPages[1]);
543 GEN_CHECK_SIZE(PGMTREES);
544 GEN_CHECK_OFF(PGMTREES, PhysHandlers);
545 GEN_CHECK_OFF(PGMTREES, VirtHandlers);
546 GEN_CHECK_OFF(PGMTREES, PhysToVirtHandlers);
547 GEN_CHECK_OFF(PGMTREES, auPadding);
548 GEN_CHECK_SIZE(PGMPOOLPAGE);
549 GEN_CHECK_OFF(PGMPOOLPAGE, Core);
550 GEN_CHECK_OFF(PGMPOOLPAGE, GCPhys);
551 GEN_CHECK_OFF(PGMPOOLPAGE, pvPageHC);
552 GEN_CHECK_OFF(PGMPOOLPAGE, enmKind);
553 GEN_CHECK_OFF(PGMPOOLPAGE, bPadding);
554 GEN_CHECK_OFF(PGMPOOLPAGE, idx);
555 GEN_CHECK_OFF(PGMPOOLPAGE, iNext);
556#ifdef PGMPOOL_WITH_USER_TRACKING
557 GEN_CHECK_OFF(PGMPOOLPAGE, iUserHead);
558 GEN_CHECK_OFF(PGMPOOLPAGE, cPresent);
559 GEN_CHECK_OFF(PGMPOOLPAGE, iFirstPresent);
560#endif
561#ifdef PGMPOOL_WITH_MONITORING
562 GEN_CHECK_OFF(PGMPOOLPAGE, cModifications);
563 GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedNext);
564 GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedPrev);
565 GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredNext);
566 GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredPrev);
567#endif
568#ifdef PGMPOOL_WITH_CACHE
569 GEN_CHECK_OFF(PGMPOOLPAGE, iAgeNext);
570 GEN_CHECK_OFF(PGMPOOLPAGE, iAgePrev);
571#endif
572 GEN_CHECK_OFF(PGMPOOLPAGE, fZeroed);
573 GEN_CHECK_OFF(PGMPOOLPAGE, fSeenNonGlobal);
574 GEN_CHECK_OFF(PGMPOOLPAGE, fMonitored);
575 GEN_CHECK_OFF(PGMPOOLPAGE, fCached);
576 GEN_CHECK_OFF(PGMPOOLPAGE, fReusedFlushPending);
577 GEN_CHECK_OFF(PGMPOOLPAGE, fCR3Mix);
578 GEN_CHECK_SIZE(PGMPOOL);
579 GEN_CHECK_OFF(PGMPOOL, pVMHC);
580 GEN_CHECK_OFF(PGMPOOL, pVMGC);
581 GEN_CHECK_OFF(PGMPOOL, cMaxPages);
582 GEN_CHECK_OFF(PGMPOOL, cCurPages);
583 GEN_CHECK_OFF(PGMPOOL, iFreeHead);
584 GEN_CHECK_OFF(PGMPOOL, u16Padding);
585#ifdef PGMPOOL_WITH_USER_TRACKING
586 GEN_CHECK_OFF(PGMPOOL, iUserFreeHead);
587 GEN_CHECK_OFF(PGMPOOL, cMaxUsers);
588 GEN_CHECK_OFF(PGMPOOL, cPresent);
589 GEN_CHECK_OFF(PGMPOOL, paUsersHC);
590 GEN_CHECK_OFF(PGMPOOL, paUsersGC);
591#endif /* PGMPOOL_WITH_USER_TRACKING */
592#ifdef PGMPOOL_WITH_GCPHYS_TRACKING
593 GEN_CHECK_OFF(PGMPOOL, iPhysExtFreeHead);
594 GEN_CHECK_OFF(PGMPOOL, cMaxPhysExts);
595 GEN_CHECK_OFF(PGMPOOL, paPhysExtsHC);
596 GEN_CHECK_OFF(PGMPOOL, paPhysExtsGC);
597#endif
598#ifdef PGMPOOL_WITH_CACHE
599 GEN_CHECK_OFF(PGMPOOL, aiHash);
600 GEN_CHECK_OFF(PGMPOOL, iAgeHead);
601 GEN_CHECK_OFF(PGMPOOL, iAgeTail);
602 GEN_CHECK_OFF(PGMPOOL, fCacheEnabled);
603#endif
604#ifdef PGMPOOL_WITH_MONITORING
605 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerGC);
606 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR0);
607 GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR3);
608 GEN_CHECK_OFF(PGMPOOL, pszAccessHandler);
609 GEN_CHECK_OFF(PGMPOOL, iModifiedHead);
610 GEN_CHECK_OFF(PGMPOOL, cModifiedPages);
611#endif
612 GEN_CHECK_OFF(PGMPOOL, cUsedPages);
613#ifdef VBOX_WITH_STATISTICS
614 GEN_CHECK_OFF(PGMPOOL, cUsedPagesHigh);
615 GEN_CHECK_OFF(PGMPOOL, StatAlloc);
616 GEN_CHECK_OFF(PGMPOOL, StatClearAll);
617#endif
618 GEN_CHECK_OFF(PGMPOOL, HCPhysTree);
619 GEN_CHECK_OFF(PGMPOOL, aPages);
620 GEN_CHECK_OFF(PGMPOOL, aPages[1]);
621 GEN_CHECK_OFF(PGMPOOL, aPages[PGMPOOL_IDX_FIRST - 1]);
622
623 GEN_CHECK_SIZE(REM);
624 GEN_CHECK_OFF(REM, pCtx);
625 GEN_CHECK_OFF(REM, cCanExecuteRaw);
626 GEN_CHECK_OFF(REM, aGCPtrInvalidatedPages);
627 GEN_CHECK_OFF(REM, cHandlerNotifications);
628 GEN_CHECK_OFF(REM, aHandlerNotifications);
629 GEN_CHECK_OFF(REM, paHCVirtToGCPhys);
630 GEN_CHECK_OFF(REM, cPhysRegistrations);
631 GEN_CHECK_OFF(REM, aPhysReg);
632 GEN_CHECK_OFF(REM, rc);
633 GEN_CHECK_OFF(REM, StatsInQEMU);
634 GEN_CHECK_OFF(REM, Env);
635
636 GEN_CHECK_SIZE(SELM);
637 GEN_CHECK_OFF(SELM, offVM);
638 GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_CS]);
639 GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_DS]);
640 GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_CS64]);
641 GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_TSS]);
642 GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_TSS_TRAP08]);
643 GEN_CHECK_OFF(SELM, paGdtHC);
644 GEN_CHECK_OFF(SELM, paGdtGC);
645 GEN_CHECK_OFF(SELM, GuestGdtr);
646 GEN_CHECK_OFF(SELM, cbEffGuestGdtLimit);
647 GEN_CHECK_OFF(SELM, HCPtrLdt);
648 GEN_CHECK_OFF(SELM, GCPtrLdt);
649 GEN_CHECK_OFF(SELM, GCPtrGuestLdt);
650 GEN_CHECK_OFF(SELM, cbLdtLimit);
651 GEN_CHECK_OFF(SELM, offLdtHyper);
652 GEN_CHECK_OFF(SELM, Tss);
653 GEN_CHECK_OFF(SELM, TssTrap08);
654 GEN_CHECK_OFF(SELM, GCPtrTss);
655 GEN_CHECK_OFF(SELM, GCPtrGuestTss);
656 GEN_CHECK_OFF(SELM, cbGuestTss);
657 GEN_CHECK_OFF(SELM, fGuestTss32Bit);
658 GEN_CHECK_OFF(SELM, cbMonitoredGuestTss);
659 GEN_CHECK_OFF(SELM, GCSelTss);
660 GEN_CHECK_OFF(SELM, fGDTRangeRegistered);
661 GEN_CHECK_OFF(SELM, StatUpdateFromCPUM);
662
663 GEN_CHECK_SIZE(TM);
664 GEN_CHECK_OFF(TM, offVM);
665 GEN_CHECK_OFF(TM, pvGIPR3);
666 //GEN_CHECK_OFF(TM, pvGIPR0);
667 GEN_CHECK_OFF(TM, pvGIPGC);
668 GEN_CHECK_OFF(TM, fTSCTicking);
669 GEN_CHECK_OFF(TM, u64TSCOffset);
670 GEN_CHECK_OFF(TM, u64TSC);
671 GEN_CHECK_OFF(TM, cTSCTicksPerSecond);
672 GEN_CHECK_OFF(TM, fVirtualTicking);
673 GEN_CHECK_OFF(TM, fVirtualWarpDrive);
674 GEN_CHECK_OFF(TM, fVirtualSyncTicking);
675 GEN_CHECK_OFF(TM, fVirtualSyncCatchUp);
676 GEN_CHECK_OFF(TM, u32VirtualWarpDrivePercentage);
677 GEN_CHECK_OFF(TM, u64VirtualOffset);
678 GEN_CHECK_OFF(TM, u64Virtual);
679 GEN_CHECK_OFF(TM, u64VirtualRawPrev);
680 GEN_CHECK_OFF(TM, VirtualGetRawDataR3);
681 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pu64Prev);
682 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnBad);
683 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnRediscover);
684 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.c1nsSteps);
685 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cBadPrev);
686 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cExpired);
687 GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cUpdateRaces);
688 GEN_CHECK_OFF(TM, VirtualGetRawDataR0);
689 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pu64Prev);
690 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnBad);
691 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnRediscover);
692 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.c1nsSteps);
693 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cBadPrev);
694 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cExpired);
695 GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cUpdateRaces);
696 GEN_CHECK_OFF(TM, VirtualGetRawDataGC);
697 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.pu64Prev);
698 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.pfnBad);
699 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.pfnRediscover);
700 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.c1nsSteps);
701 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.cBadPrev);
702 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.cExpired);
703 GEN_CHECK_OFF(TM, VirtualGetRawDataGC.cUpdateRaces);
704 GEN_CHECK_OFF(TM, pfnVirtualGetRawR3);
705 GEN_CHECK_OFF(TM, pfnVirtualGetRawR0);
706 GEN_CHECK_OFF(TM, pfnVirtualGetRawGC);
707 GEN_CHECK_OFF(TM, u64VirtualWarpDriveStart);
708 GEN_CHECK_OFF(TM, u64VirtualSync);
709 GEN_CHECK_OFF(TM, offVirtualSync);
710 GEN_CHECK_OFF(TM, offVirtualSyncGivenUp);
711 GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpPrev);
712 GEN_CHECK_OFF(TM, u32VirtualSyncCatchUpPercentage);
713 GEN_CHECK_OFF(TM, u32VirtualSyncScheduleSlack);
714 GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpStopThreshold);
715 GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpGiveUpThreshold);
716 GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods);
717 GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u64Start);
718 GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u32Percentage);
719 GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u64Start);
720 GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u32Percentage);
721 GEN_CHECK_OFF(TM, pTimer);
722 GEN_CHECK_OFF(TM, u32TimerMillies);
723 GEN_CHECK_OFF(TM, pFree);
724 GEN_CHECK_OFF(TM, pCreated);
725 GEN_CHECK_OFF(TM, paTimerQueuesR3);
726 GEN_CHECK_OFF(TM, paTimerQueuesR0);
727 GEN_CHECK_OFF(TM, paTimerQueuesGC);
728 GEN_CHECK_OFF(TM, StatDoQueues);
729 GEN_CHECK_OFF(TM, StatTimerCallbackSetFF);
730 GEN_CHECK_SIZE(TMTIMER);
731 GEN_CHECK_OFF(TMTIMER, u64Expire);
732 GEN_CHECK_OFF(TMTIMER, enmClock);
733 GEN_CHECK_OFF(TMTIMER, enmType);
734 GEN_CHECK_OFF(TMTIMER, u.Dev.pfnTimer);
735 GEN_CHECK_OFF(TMTIMER, u.Dev.pDevIns);
736 GEN_CHECK_OFF(TMTIMER, u.Drv.pfnTimer);
737 GEN_CHECK_OFF(TMTIMER, u.Drv.pDrvIns);
738 GEN_CHECK_OFF(TMTIMER, u.Internal.pfnTimer);
739 GEN_CHECK_OFF(TMTIMER, u.Internal.pvUser);
740 GEN_CHECK_OFF(TMTIMER, u.External.pfnTimer);
741 GEN_CHECK_OFF(TMTIMER, u.External.pvUser);
742 GEN_CHECK_OFF(TMTIMER, enmState);
743 GEN_CHECK_OFF(TMTIMER, offScheduleNext);
744 GEN_CHECK_OFF(TMTIMER, offNext);
745 GEN_CHECK_OFF(TMTIMER, offPrev);
746 GEN_CHECK_OFF(TMTIMER, pBigNext);
747 GEN_CHECK_OFF(TMTIMER, pBigPrev);
748 GEN_CHECK_OFF(TMTIMER, pszDesc);
749 GEN_CHECK_OFF(TMTIMER, pVMR0);
750 GEN_CHECK_OFF(TMTIMER, pVMR3);
751 GEN_CHECK_OFF(TMTIMER, pVMGC);
752 GEN_CHECK_SIZE(TMTIMERQUEUE);
753 GEN_CHECK_OFF(TMTIMERQUEUE, offActive);
754 GEN_CHECK_OFF(TMTIMERQUEUE, offSchedule);
755 GEN_CHECK_OFF(TMTIMERQUEUE, enmClock);
756
757 GEN_CHECK_SIZE(TRPM); // has .mac
758 GEN_CHECK_SIZE(VM); // has .mac
759 GEN_CHECK_SIZE(VMM);
760 GEN_CHECK_OFF(VMM, offVM);
761 GEN_CHECK_OFF(VMM, cbCoreCode);
762 GEN_CHECK_OFF(VMM, HCPhysCoreCode);
763 GEN_CHECK_OFF(VMM, pvHCCoreCodeR3);
764 GEN_CHECK_OFF(VMM, pvHCCoreCodeR0);
765 GEN_CHECK_OFF(VMM, pvGCCoreCode);
766 GEN_CHECK_OFF(VMM, enmSwitcher);
767 GEN_CHECK_OFF(VMM, aoffSwitchers);
768 GEN_CHECK_OFF(VMM, aoffSwitchers[1]);
769 GEN_CHECK_OFF(VMM, pfnR0HostToGuest);
770 GEN_CHECK_OFF(VMM, pfnGCGuestToHost);
771 GEN_CHECK_OFF(VMM, pfnGCCallTrampoline);
772 GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuest);
773 GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuestV86);
774 GEN_CHECK_OFF(VMM, iLastGCRc);
775 GEN_CHECK_OFF(VMM, pbHCStack);
776 GEN_CHECK_OFF(VMM, pbGCStack);
777 GEN_CHECK_OFF(VMM, pbGCStackBottom);
778 GEN_CHECK_OFF(VMM, pLoggerGC);
779 GEN_CHECK_OFF(VMM, pLoggerHC);
780 GEN_CHECK_OFF(VMM, cbLoggerGC);
781 GEN_CHECK_OFF(VMM, CritSectVMLock);
782 GEN_CHECK_OFF(VMM, pYieldTimer);
783 GEN_CHECK_OFF(VMM, cYieldResumeMillies);
784 GEN_CHECK_OFF(VMM, cYieldEveryMillies);
785 GEN_CHECK_OFF(VMM, enmCallHostOperation);
786 GEN_CHECK_OFF(VMM, rcCallHost);
787 GEN_CHECK_OFF(VMM, u64CallHostArg);
788 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf);
789 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpCheck);
790 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpResume);
791 GEN_CHECK_OFF(VMM, StatRunGC);
792 GEN_CHECK_OFF(VMM, StatGCRetPGMLock);
793
794 GEN_CHECK_SIZE(RTPINGPONG);
795 GEN_CHECK_SIZE(RTCRITSECT);
796 GEN_CHECK_OFF(RTCRITSECT, u32Magic);
797 GEN_CHECK_OFF(RTCRITSECT, cLockers);
798 GEN_CHECK_OFF(RTCRITSECT, NativeThreadOwner);
799 GEN_CHECK_OFF(RTCRITSECT, cNestings);
800 GEN_CHECK_OFF(RTCRITSECT, fFlags);
801 GEN_CHECK_OFF(RTCRITSECT, EventSem);
802 GEN_CHECK_OFF(RTCRITSECT, Strict.ThreadOwner);
803 GEN_CHECK_OFF(RTCRITSECT, Strict.pszEnterFile);
804 GEN_CHECK_OFF(RTCRITSECT, Strict.u32EnterLine);
805 GEN_CHECK_OFF(RTCRITSECT, Strict.uEnterId);
806
807
808 GEN_CHECK_SIZE(CSAM);
809 GEN_CHECK_OFF(CSAM, offVM);
810 GEN_CHECK_OFF(CSAM, pPageTree);
811 GEN_CHECK_OFF(CSAM, aDangerousInstr);
812 GEN_CHECK_OFF(CSAM, aDangerousInstr[1]);
813 GEN_CHECK_OFF(CSAM, aDangerousInstr[CSAM_MAX_DANGR_INSTR - 1]);
814 GEN_CHECK_OFF(CSAM, cDangerousInstr);
815 GEN_CHECK_OFF(CSAM, iDangerousInstr);
816 GEN_CHECK_OFF(CSAM, pPDBitmapGC);
817 GEN_CHECK_OFF(CSAM, pPDHCBitmapGC);
818 GEN_CHECK_OFF(CSAM, pPDBitmapHC);
819 GEN_CHECK_OFF(CSAM, pPDGCBitmapHC);
820 GEN_CHECK_OFF(CSAM, savedstate);
821 GEN_CHECK_OFF(CSAM, savedstate.pSSM);
822 GEN_CHECK_OFF(CSAM, savedstate.cPageRecords);
823 GEN_CHECK_OFF(CSAM, savedstate.cPatchPageRecords);
824 GEN_CHECK_OFF(CSAM, cDirtyPages);
825 GEN_CHECK_OFF(CSAM, pvDirtyBasePage);
826 GEN_CHECK_OFF(CSAM, pvDirtyBasePage[1]);
827 GEN_CHECK_OFF(CSAM, pvDirtyBasePage[CSAM_MAX_DIRTY_PAGES - 1]);
828 GEN_CHECK_OFF(CSAM, pvDirtyFaultPage);
829 GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[1]);
830 GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[CSAM_MAX_DIRTY_PAGES - 1]);
831 GEN_CHECK_OFF(CSAM, pvCallInstruction);
832 GEN_CHECK_OFF(CSAM, iCallInstruction);
833 GEN_CHECK_OFF(CSAM, fScanningStarted);
834 GEN_CHECK_OFF(CSAM, fGatesChecked);
835 GEN_CHECK_OFF(CSAM, StatNrTraps);
836 GEN_CHECK_OFF(CSAM, StatNrPages);
837
838 GEN_CHECK_SIZE(PATM);
839 GEN_CHECK_OFF(PATM, offVM);
840 GEN_CHECK_OFF(PATM, pPatchMemGC);
841 GEN_CHECK_OFF(PATM, pPatchMemHC);
842 GEN_CHECK_OFF(PATM, cbPatchMem);
843 GEN_CHECK_OFF(PATM, offPatchMem);
844 GEN_CHECK_OFF(PATM, fOutOfMemory);
845 GEN_CHECK_OFF(PATM, deltaReloc);
846 GEN_CHECK_OFF(PATM, pGCStateGC);
847 GEN_CHECK_OFF(PATM, pGCStateHC);
848 GEN_CHECK_OFF(PATM, pGCStackGC);
849 GEN_CHECK_OFF(PATM, pGCStackHC);
850 GEN_CHECK_OFF(PATM, pCPUMCtxGC);
851 GEN_CHECK_OFF(PATM, pStatsGC);
852 GEN_CHECK_OFF(PATM, pStatsHC);
853 GEN_CHECK_OFF(PATM, uCurrentPatchIdx);
854 GEN_CHECK_OFF(PATM, ulCallDepth);
855 GEN_CHECK_OFF(PATM, cPageRecords);
856 GEN_CHECK_OFF(PATM, pPatchedInstrGCLowest);
857 GEN_CHECK_OFF(PATM, pPatchedInstrGCHighest);
858 GEN_CHECK_OFF(PATM, PatchLookupTreeHC);
859 GEN_CHECK_OFF(PATM, PatchLookupTreeGC);
860 GEN_CHECK_OFF(PATM, pfnHelperCallGC);
861 GEN_CHECK_OFF(PATM, pfnHelperRetGC);
862 GEN_CHECK_OFF(PATM, pfnHelperJumpGC);
863 GEN_CHECK_OFF(PATM, pfnHelperIretGC);
864 GEN_CHECK_OFF(PATM, pGlobalPatchRec);
865 GEN_CHECK_OFF(PATM, pfnSysEnterGC);
866 GEN_CHECK_OFF(PATM, pfnSysEnterPatchGC);
867 GEN_CHECK_OFF(PATM, uSysEnterPatchIdx);
868 GEN_CHECK_OFF(PATM, pvFaultMonitor);
869 GEN_CHECK_OFF(PATM, mmio);
870 GEN_CHECK_OFF(PATM, mmio.GCPhys);
871 GEN_CHECK_OFF(PATM, mmio.pCachedData);
872 GEN_CHECK_OFF(PATM, savedstate);
873 GEN_CHECK_OFF(PATM, savedstate.pSSM);
874 GEN_CHECK_OFF(PATM, savedstate.cPatches);
875 GEN_CHECK_OFF(PATM, StatNrOpcodeRead);
876 GEN_CHECK_OFF(PATM, StatU32FunctionMaxSlotsUsed);
877
878 GEN_CHECK_SIZE(PATMGCSTATE);
879 GEN_CHECK_OFF(PATMGCSTATE, uVMFlags);
880 GEN_CHECK_OFF(PATMGCSTATE, uPendingAction);
881 GEN_CHECK_OFF(PATMGCSTATE, uPatchCalls);
882 GEN_CHECK_OFF(PATMGCSTATE, uScratch);
883 GEN_CHECK_OFF(PATMGCSTATE, uIretEFlags);
884 GEN_CHECK_OFF(PATMGCSTATE, uIretCS);
885 GEN_CHECK_OFF(PATMGCSTATE, uIretEIP);
886 GEN_CHECK_OFF(PATMGCSTATE, Psp);
887 GEN_CHECK_OFF(PATMGCSTATE, fPIF);
888 GEN_CHECK_OFF(PATMGCSTATE, GCPtrInhibitInterrupts);
889 GEN_CHECK_OFF(PATMGCSTATE, Restore);
890 GEN_CHECK_OFF(PATMGCSTATE, Restore.uEAX);
891 GEN_CHECK_OFF(PATMGCSTATE, Restore.uECX);
892 GEN_CHECK_OFF(PATMGCSTATE, Restore.uEDI);
893 GEN_CHECK_OFF(PATMGCSTATE, Restore.eFlags);
894 GEN_CHECK_OFF(PATMGCSTATE, Restore.uFlags);
895 GEN_CHECK_SIZE(PATMTREES);
896 GEN_CHECK_OFF(PATMTREES, PatchTree);
897 GEN_CHECK_OFF(PATMTREES, PatchTreeByPatchAddr);
898 GEN_CHECK_OFF(PATMTREES, PatchTreeByPage);
899 GEN_CHECK_SIZE(PATMPATCHREC);
900 GEN_CHECK_OFF(PATMPATCHREC, Core);
901 GEN_CHECK_OFF(PATMPATCHREC, CoreOffset);
902 GEN_CHECK_OFF(PATMPATCHREC, patch);
903 GEN_CHECK_SIZE(PATCHINFO);
904 GEN_CHECK_OFF(PATCHINFO, uState);
905 GEN_CHECK_OFF(PATCHINFO, uOldState);
906 GEN_CHECK_OFF(PATCHINFO, uOpMode);
907 GEN_CHECK_OFF(PATCHINFO, pPrivInstrHC);
908 GEN_CHECK_OFF(PATCHINFO, pPrivInstrGC);
909 GEN_CHECK_OFF(PATCHINFO, aPrivInstr);
910 GEN_CHECK_OFF(PATCHINFO, aPrivInstr[1]);
911 GEN_CHECK_OFF(PATCHINFO, aPrivInstr[MAX_INSTR_SIZE - 1]);
912 GEN_CHECK_OFF(PATCHINFO, cbPrivInstr);
913 GEN_CHECK_OFF(PATCHINFO, opcode);
914 GEN_CHECK_OFF(PATCHINFO, cbPatchJump);
915 GEN_CHECK_OFF(PATCHINFO, pPatchJumpDestGC);
916 GEN_CHECK_OFF(PATCHINFO, pPatchBlockOffset);
917 GEN_CHECK_OFF(PATCHINFO, cbPatchBlockSize);
918 GEN_CHECK_OFF(PATCHINFO, uCurPatchOffset);
919 GEN_CHECK_OFF(PATCHINFO, flags);
920 GEN_CHECK_OFF(PATCHINFO, pInstrGCLowest);
921 GEN_CHECK_OFF(PATCHINFO, pInstrGCHighest);
922 GEN_CHECK_OFF(PATCHINFO, FixupTree);
923 GEN_CHECK_OFF(PATCHINFO, nrFixups);
924 GEN_CHECK_OFF(PATCHINFO, JumpTree);
925 GEN_CHECK_OFF(PATCHINFO, nrJumpRecs);
926 GEN_CHECK_OFF(PATCHINFO, Patch2GuestAddrTree);
927 GEN_CHECK_OFF(PATCHINFO, Guest2PatchAddrTree);
928 GEN_CHECK_OFF(PATCHINFO, nrPatch2GuestRecs);
929 GEN_CHECK_OFF(PATCHINFO, cacheRec);
930 GEN_CHECK_OFF(PATCHINFO, cacheRec.pPatchLocStartHC);
931 GEN_CHECK_OFF(PATCHINFO, cacheRec.pPatchLocEndHC);
932 GEN_CHECK_OFF(PATCHINFO, cacheRec.pGuestLoc);
933 GEN_CHECK_OFF(PATCHINFO, cacheRec.opsize);
934 GEN_CHECK_OFF(PATCHINFO, pTempInfo);
935 GEN_CHECK_OFF(PATCHINFO, cCodeWrites);
936 GEN_CHECK_OFF(PATCHINFO, cTraps);
937 GEN_CHECK_OFF(PATCHINFO, cInvalidWrites);
938 GEN_CHECK_OFF(PATCHINFO, uPatchIdx);
939 GEN_CHECK_OFF(PATCHINFO, bDirtyOpcode);
940 GEN_CHECK_SIZE(PATMPATCHPAGE);
941 GEN_CHECK_OFF(PATMPATCHPAGE, Core);
942 GEN_CHECK_OFF(PATMPATCHPAGE, pLowestAddrGC);
943 GEN_CHECK_OFF(PATMPATCHPAGE, pHighestAddrGC);
944 GEN_CHECK_OFF(PATMPATCHPAGE, cCount);
945 GEN_CHECK_OFF(PATMPATCHPAGE, cMaxPatches);
946 GEN_CHECK_OFF(PATMPATCHPAGE, aPatch);
947
948 return (0);
949}
950
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette