VirtualBox

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

Last change on this file since 443 was 443, checked in by vboxsync, 18 years ago

Implemented Warp drive. This can be configured using the WarpDrivePercentage (2..20000) or the TMVirtualSetWarpDrive API.

  • Property svn:keywords set to Id
File size: 18.6 KB
Line 
1/* $Id: tstVMStructGC.cpp 443 2007-01-30 21:53:52Z 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 InnoTek Systemberatung 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 as published by the Free Software Foundation,
16 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
17 * distribution. VirtualBox OSE is distributed in the hope that it will
18 * be useful, but WITHOUT ANY WARRANTY of any kind.
19 *
20 * If you received this file as part of a commercial VirtualBox
21 * distribution, then only the terms of your commercial VirtualBox
22 * license agreement apply instead of the previous paragraph.
23 */
24
25
26/*
27 * Sanity checks.
28 */
29#ifndef IN_GC
30# error Incorrect template!
31#endif
32#if defined(IN_RING3) || defined(IN_RING0)
33# error Incorrect template!
34#endif
35
36
37/*******************************************************************************
38* Header Files *
39*******************************************************************************/
40#include <VBox/cfgm.h>
41#include <VBox/cpum.h>
42#include <VBox/mm.h>
43#include <VBox/pgm.h>
44#include <VBox/selm.h>
45#include <VBox/trpm.h>
46#include <VBox/vmm.h>
47#include <VBox/stam.h>
48#include "PDMInternal.h"
49#include <VBox/pdm.h>
50#include "CFGMInternal.h"
51#include "CPUMInternal.h"
52#include "MMInternal.h"
53#include "PGMInternal.h"
54#include "SELMInternal.h"
55#include "TRPMInternal.h"
56#include "TMInternal.h"
57#include "IOMInternal.h"
58#include "REMInternal.h"
59#include "HWACCMInternal.h"
60#ifdef VBOX_WITH_PATM
61# include "PATMInternal.h"
62#endif
63#include "VMMInternal.h"
64#include "DBGFInternal.h"
65#include "STAMInternal.h"
66#ifdef VBOX_WITH_CSAM
67# include "CSAMInternal.h"
68#endif
69#include "EMInternal.h"
70#include "REMInternal.h"
71#ifdef VBOX_WITH_RRM
72# include "RRMInternal.h"
73#endif
74#include <VBox/vm.h>
75#include <VBox/param.h>
76#include <VBox/x86.h>
77
78/* we don't use iprt here because we're pretending to be in GC! */
79#include <stdio.h>
80
81#define GEN_CHECK_SIZE(s) printf(" CHECK_SIZE(%s, %d);\n", #s, sizeof(s))
82#define GEN_CHECK_OFF(s, m) printf(" CHECK_OFF(%s, %d, %s);\n", #s, RT_OFFSETOF(s, m), #m)
83
84int main()
85{
86 GEN_CHECK_SIZE(CFGM);
87
88 GEN_CHECK_SIZE(CPUM); // has .mac
89 GEN_CHECK_SIZE(CPUMHOSTCTX);
90 GEN_CHECK_SIZE(CPUMCTX);
91 GEN_CHECK_SIZE(CPUMCTXCORE);
92
93 GEN_CHECK_SIZE(DBGF);
94 GEN_CHECK_OFF(DBGF, offVM);
95 GEN_CHECK_OFF(DBGF, fAttached);
96 GEN_CHECK_OFF(DBGF, fStoppedInHyper);
97 GEN_CHECK_OFF(DBGF, PingPong);
98 GEN_CHECK_OFF(DBGF, DbgEvent);
99 GEN_CHECK_OFF(DBGF, enmVMMCmd);
100 GEN_CHECK_OFF(DBGF, VMMCmdData);
101 GEN_CHECK_OFF(DBGF, pInfoFirst);
102 GEN_CHECK_OFF(DBGF, InfoCritSect);
103 GEN_CHECK_OFF(DBGF, SymbolTree);
104 GEN_CHECK_OFF(DBGF, pSymbolSpace);
105 GEN_CHECK_OFF(DBGF, fSymInited);
106 GEN_CHECK_OFF(DBGF, cHwBreakpoints);
107 GEN_CHECK_OFF(DBGF, cBreakpoints);
108 GEN_CHECK_OFF(DBGF, aHwBreakpoints);
109 GEN_CHECK_OFF(DBGF, aBreakpoints);
110 GEN_CHECK_OFF(DBGF, iActiveBp);
111 GEN_CHECK_OFF(DBGF, fSingleSteppingRaw);
112 GEN_CHECK_SIZE(DBGFEVENT);
113
114 GEN_CHECK_SIZE(EM);
115 GEN_CHECK_OFF(EM, offVM);
116 GEN_CHECK_OFF(EM, pCtx);
117 GEN_CHECK_OFF(EM, enmState);
118 GEN_CHECK_OFF(EM, fForceRAW);
119 GEN_CHECK_OFF(EM, u.achPaddingFatalLongJump);
120 GEN_CHECK_OFF(EM, StatForcedActions);
121 GEN_CHECK_OFF(EM, StatTotalClis);
122 GEN_CHECK_OFF(EM, pStatsHC);
123 GEN_CHECK_OFF(EM, pStatsGC);
124 GEN_CHECK_OFF(EM, pCliStatTree);
125
126 GEN_CHECK_SIZE(IOM);
127
128 GEN_CHECK_SIZE(MM);
129 GEN_CHECK_OFF(MM, offVM);
130 GEN_CHECK_OFF(MM, offHyperNextStatic);
131 GEN_CHECK_OFF(MM, cbHyperArea);
132 GEN_CHECK_OFF(MM, fPGMInitialized);
133 GEN_CHECK_OFF(MM, offLookupHyper);
134 GEN_CHECK_OFF(MM, pHyperHeapHC);
135 GEN_CHECK_OFF(MM, pHyperHeapGC);
136 GEN_CHECK_OFF(MM, pLockedMem);
137 GEN_CHECK_OFF(MM, pPagePool);
138 GEN_CHECK_OFF(MM, pPagePoolLow);
139 GEN_CHECK_OFF(MM, pvDummyPage);
140 GEN_CHECK_OFF(MM, HCPhysDummyPage);
141 GEN_CHECK_OFF(MM, cbRAMSize);
142 GEN_CHECK_OFF(MM, pvRamBaseHC);
143 GEN_CHECK_OFF(MM, cbRamBase);
144 GEN_CHECK_OFF(MM, pHeap);
145 GEN_CHECK_SIZE(MMHYPERSTAT);
146 GEN_CHECK_SIZE(MMHYPERCHUNK);
147 GEN_CHECK_SIZE(MMHYPERCHUNKFREE);
148 GEN_CHECK_SIZE(MMHYPERHEAP);
149 GEN_CHECK_OFF(MMHYPERHEAP, u32Magic);
150 GEN_CHECK_OFF(MMHYPERHEAP, cbHeap);
151 GEN_CHECK_OFF(MMHYPERHEAP, pbHeapHC);
152 GEN_CHECK_OFF(MMHYPERHEAP, pbHeapGC);
153 GEN_CHECK_OFF(MMHYPERHEAP, pVMHC);
154 GEN_CHECK_OFF(MMHYPERHEAP, pVMGC);
155 GEN_CHECK_OFF(MMHYPERHEAP, cbFree);
156 GEN_CHECK_OFF(MMHYPERHEAP, offFreeHead);
157 GEN_CHECK_OFF(MMHYPERHEAP, offFreeTail);
158 GEN_CHECK_OFF(MMHYPERHEAP, offPageAligned);
159 GEN_CHECK_OFF(MMHYPERHEAP, HyperHeapStatTree);
160 GEN_CHECK_SIZE(MMLOOKUPHYPER);
161 GEN_CHECK_OFF(MMLOOKUPHYPER, offNext);
162 GEN_CHECK_OFF(MMLOOKUPHYPER, off);
163 GEN_CHECK_OFF(MMLOOKUPHYPER, cb);
164 GEN_CHECK_OFF(MMLOOKUPHYPER, enmType);
165 GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvHC);
166 GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pLockedMem);
167 GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.pvHC);
168 GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.HCPhys);
169 GEN_CHECK_OFF(MMLOOKUPHYPER, u.GCPhys.GCPhys);
170 GEN_CHECK_OFF(MMLOOKUPHYPER, pszDesc);
171
172 GEN_CHECK_SIZE(PDM);
173 GEN_CHECK_OFF(PDM, offVM);
174 GEN_CHECK_OFF(PDM, pModules);
175 GEN_CHECK_OFF(PDM, pDevs);
176 GEN_CHECK_OFF(PDM, pDevInstances);
177 GEN_CHECK_OFF(PDM, pDrvs);
178 GEN_CHECK_OFF(PDM, pCritSects);
179 GEN_CHECK_OFF(PDM, aPciBuses);
180 GEN_CHECK_OFF(PDM, Pic);
181 GEN_CHECK_OFF(PDM, Apic);
182 GEN_CHECK_OFF(PDM, IoApic);
183 GEN_CHECK_OFF(PDM, pDmac);
184 GEN_CHECK_OFF(PDM, pRtc);
185 GEN_CHECK_OFF(PDM, pDevHlpQueueGC);
186 GEN_CHECK_OFF(PDM, pDevHlpQueueHC);
187 GEN_CHECK_OFF(PDM, cQueuedCritSectLeaves);
188 GEN_CHECK_OFF(PDM, apQueuedCritSectsLeaves);
189 GEN_CHECK_OFF(PDM, pQueuesTimer);
190 GEN_CHECK_OFF(PDM, pQueuesForced);
191 GEN_CHECK_OFF(PDM, pQueueFlushGC);
192 GEN_CHECK_OFF(PDM, pQueueFlushHC);
193 GEN_CHECK_OFF(PDM, cPollers);
194 GEN_CHECK_OFF(PDM, apfnPollers);
195 GEN_CHECK_OFF(PDM, aDrvInsPollers);
196 GEN_CHECK_OFF(PDM, pTimerPollers);
197#ifdef VBOX_WITH_PDM_LOCK
198 GEN_CHECK_OFF(PDM, CritSect);
199#endif
200 GEN_CHECK_OFF(PDM, StatQueuedCritSectLeaves);
201
202 GEN_CHECK_SIZE(PGM);
203 GEN_CHECK_OFF(PGM, offVM);
204 GEN_CHECK_OFF(PGM, paDynPageMap32BitPTEsGC);
205 GEN_CHECK_OFF(PGM, paDynPageMapPaePTEsGC);
206 GEN_CHECK_OFF(PGM, enmHostMode);
207 GEN_CHECK_OFF(PGM, enmShadowMode);
208 GEN_CHECK_OFF(PGM, enmGuestMode);
209 GEN_CHECK_OFF(PGM, GCPhysCR3);
210 GEN_CHECK_OFF(PGM, GCPtrCR3Mapping);
211 GEN_CHECK_OFF(PGM, GCPhysGstCR3Monitored);
212 GEN_CHECK_OFF(PGM, pGuestPDHC);
213 GEN_CHECK_OFF(PGM, pGuestPDGC);
214 GEN_CHECK_OFF(PGM, pGstPaePDPTRHC);
215 GEN_CHECK_OFF(PGM, pGstPaePDPTRGC);
216 GEN_CHECK_OFF(PGM, apGstPaePDsHC);
217 GEN_CHECK_OFF(PGM, apGstPaePDsGC);
218 GEN_CHECK_OFF(PGM, aGCPhysGstPaePDs);
219 GEN_CHECK_OFF(PGM, aGCPhysGstPaePDsMonitored);
220 GEN_CHECK_OFF(PGM, pHC32BitPD);
221 GEN_CHECK_OFF(PGM, pGC32BitPD);
222 GEN_CHECK_OFF(PGM, HCPhys32BitPD);
223 GEN_CHECK_OFF(PGM, apHCPaePDs);
224 GEN_CHECK_OFF(PGM, apGCPaePDs);
225 GEN_CHECK_OFF(PGM, aHCPhysPaePDs);
226 GEN_CHECK_OFF(PGM, pHCPaePDPTR);
227 GEN_CHECK_OFF(PGM, pGCPaePDPTR);
228 GEN_CHECK_OFF(PGM, HCPhysPaePDPTR);
229 GEN_CHECK_OFF(PGM, pHCPaePML4);
230 GEN_CHECK_OFF(PGM, pGCPaePML4);
231 GEN_CHECK_OFF(PGM, HCPhysPaePML4);
232 GEN_CHECK_OFF(PGM, pfnR3ShwRelocate);
233 GEN_CHECK_OFF(PGM, pfnR3ShwExit);
234 GEN_CHECK_OFF(PGM, pfnR3ShwGetPage);
235 GEN_CHECK_OFF(PGM, pfnR3ShwModifyPage);
236 GEN_CHECK_OFF(PGM, pfnR3ShwGetPDEByIndex);
237 GEN_CHECK_OFF(PGM, pfnR3ShwSetPDEByIndex);
238 GEN_CHECK_OFF(PGM, pfnR3ShwModifyPDEByIndex);
239 GEN_CHECK_OFF(PGM, pfnGCShwGetPage);
240 GEN_CHECK_OFF(PGM, pfnGCShwModifyPage);
241 GEN_CHECK_OFF(PGM, pfnGCShwGetPDEByIndex);
242 GEN_CHECK_OFF(PGM, pfnGCShwSetPDEByIndex);
243 GEN_CHECK_OFF(PGM, pfnGCShwModifyPDEByIndex);
244 GEN_CHECK_OFF(PGM, pfnR3GstRelocate);
245 GEN_CHECK_OFF(PGM, pfnR3GstExit);
246 GEN_CHECK_OFF(PGM, pfnR3GstMonitorCR3);
247 GEN_CHECK_OFF(PGM, pfnR3GstUnmonitorCR3);
248 GEN_CHECK_OFF(PGM, pfnR3GstMapCR3);
249 GEN_CHECK_OFF(PGM, pfnR3GstUnmapCR3);
250 GEN_CHECK_OFF(PGM, pfnR3GstGetPage);
251 GEN_CHECK_OFF(PGM, pfnR3GstModifyPage);
252 GEN_CHECK_OFF(PGM, pfnR3GstGetPDE);
253 GEN_CHECK_OFF(PGM, pfnGCGstGetPage);
254 GEN_CHECK_OFF(PGM, pfnGCGstModifyPage);
255 GEN_CHECK_OFF(PGM, pfnGCGstGetPDE);
256 GEN_CHECK_OFF(PGM, pfnR3BthRelocate);
257 GEN_CHECK_OFF(PGM, pfnR3BthSyncCR3);
258 GEN_CHECK_OFF(PGM, pfnR3BthTrap0eHandler);
259 GEN_CHECK_OFF(PGM, pfnR3BthInvalidatePage);
260 GEN_CHECK_OFF(PGM, pfnR3BthSyncPage);
261 GEN_CHECK_OFF(PGM, pfnR3BthPrefetchPage);
262 GEN_CHECK_OFF(PGM, pfnR3BthVerifyAccessSyncPage);
263 GEN_CHECK_OFF(PGM, pfnR3BthAssertCR3);
264 GEN_CHECK_OFF(PGM, pfnGCBthTrap0eHandler);
265 GEN_CHECK_OFF(PGM, pfnGCBthInvalidatePage);
266 GEN_CHECK_OFF(PGM, pfnGCBthSyncPage);
267 GEN_CHECK_OFF(PGM, pfnGCBthPrefetchPage);
268 GEN_CHECK_OFF(PGM, pfnGCBthVerifyAccessSyncPage);
269 GEN_CHECK_OFF(PGM, pfnGCBthAssertCR3);
270 GEN_CHECK_OFF(PGM, pRamRangesHC);
271 GEN_CHECK_OFF(PGM, pRamRangesGC);
272 GEN_CHECK_OFF(PGM, cbRamSize);
273 GEN_CHECK_OFF(PGM, pTreesHC);
274 GEN_CHECK_OFF(PGM, pTreesGC);
275 GEN_CHECK_OFF(PGM, pMappingsHC);
276 GEN_CHECK_OFF(PGM, pMappingsGC);
277 GEN_CHECK_OFF(PGM, fMappingsFixed);
278 GEN_CHECK_OFF(PGM, GCPtrMappingFixed);
279 GEN_CHECK_OFF(PGM, cbMappingFixed);
280 GEN_CHECK_OFF(PGM, pInterPD);
281 GEN_CHECK_OFF(PGM, apInterPTs);
282 GEN_CHECK_OFF(PGM, apInterPaePTs);
283 GEN_CHECK_OFF(PGM, apInterPaePDs);
284 GEN_CHECK_OFF(PGM, pInterPaePDPTR);
285 GEN_CHECK_OFF(PGM, pInterPaePDPTR64);
286 GEN_CHECK_OFF(PGM, pInterPaePML4);
287 GEN_CHECK_OFF(PGM, HCPhysInterPD);
288 GEN_CHECK_OFF(PGM, HCPhysInterPaePDPTR);
289 GEN_CHECK_OFF(PGM, HCPhysInterPaePML4);
290 GEN_CHECK_OFF(PGM, pbDynPageMapBaseGC);
291 GEN_CHECK_OFF(PGM, iDynPageMapLast);
292 GEN_CHECK_OFF(PGM, aHCPhysDynPageMapCache);
293 GEN_CHECK_OFF(PGM, GCPhysA20Mask);
294 GEN_CHECK_OFF(PGM, fA20Enabled);
295 GEN_CHECK_OFF(PGM, fSyncFlags);
296 GEN_CHECK_OFF(PGM, CritSect);
297#ifdef PGM_PD_CACHING_ENABLED
298 GEN_CHECK_OFF(PGM, pdcache);
299#endif
300 GEN_CHECK_OFF(PGM, pgmphysreadcache);
301 GEN_CHECK_OFF(PGM, pgmphyswritecache);
302 GEN_CHECK_SIZE(PGMMAPPING);
303 GEN_CHECK_OFF(PGMMAPPING, pNextHC);
304 GEN_CHECK_OFF(PGMMAPPING, pNextGC);
305 GEN_CHECK_OFF(PGMMAPPING, GCPtr);
306 GEN_CHECK_OFF(PGMMAPPING, GCPtrLast);
307 GEN_CHECK_OFF(PGMMAPPING, cb);
308 GEN_CHECK_OFF(PGMMAPPING, pfnRelocate);
309 GEN_CHECK_OFF(PGMMAPPING, pvUser);
310 GEN_CHECK_OFF(PGMMAPPING, pszDesc);
311 GEN_CHECK_OFF(PGMMAPPING, cPTs);
312 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPT);
313 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTHC);
314 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTGC);
315 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT0);
316 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT1);
317 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsHC);
318 GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsGC);
319 GEN_CHECK_SIZE(PGMPHYSHANDLER);
320 GEN_CHECK_OFF(PGMPHYSHANDLER, Core);
321 GEN_CHECK_OFF(PGMPHYSHANDLER, enmType);
322 GEN_CHECK_OFF(PGMPHYSHANDLER, cPages);
323 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR3);
324 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR3);
325 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR0);
326 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR0);
327 GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerGC);
328 GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserGC);
329 GEN_CHECK_OFF(PGMPHYSHANDLER, pszDesc);
330 GEN_CHECK_SIZE(PGMPHYS2VIRTHANDLER);
331 GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, Core);
332 GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, offVirtHandler);
333 GEN_CHECK_SIZE(PGMVIRTHANDLER);
334 GEN_CHECK_OFF(PGMVIRTHANDLER, Core);
335 GEN_CHECK_OFF(PGMVIRTHANDLER, enmType);
336 GEN_CHECK_OFF(PGMVIRTHANDLER, GCPtr);
337 GEN_CHECK_OFF(PGMVIRTHANDLER, GCPtrLast);
338 GEN_CHECK_OFF(PGMVIRTHANDLER, cb);
339 GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerHC);
340 GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerGC);
341 GEN_CHECK_OFF(PGMVIRTHANDLER, pszDesc);
342 GEN_CHECK_OFF(PGMVIRTHANDLER, cPages);
343 GEN_CHECK_OFF(PGMVIRTHANDLER, aPhysToVirt);
344 GEN_CHECK_SIZE(PGMRAMRANGE);
345 GEN_CHECK_OFF(PGMRAMRANGE, pNextHC);
346 GEN_CHECK_OFF(PGMRAMRANGE, pNextGC);
347 GEN_CHECK_OFF(PGMRAMRANGE, GCPhys);
348 GEN_CHECK_OFF(PGMRAMRANGE, GCPhysLast);
349 GEN_CHECK_OFF(PGMRAMRANGE, cb);
350 GEN_CHECK_OFF(PGMRAMRANGE, pvHC);
351 GEN_CHECK_OFF(PGMRAMRANGE, aHCPhys);
352 GEN_CHECK_SIZE(PGMTREES);
353 GEN_CHECK_OFF(PGMTREES, PhysHandlers);
354 GEN_CHECK_OFF(PGMTREES, VirtHandlers);
355 GEN_CHECK_OFF(PGMTREES, PhysToVirtHandlers);
356 GEN_CHECK_OFF(PGMTREES, auPadding);
357
358 GEN_CHECK_SIZE(REM);
359 GEN_CHECK_OFF(REM, pCtx);
360 GEN_CHECK_OFF(REM, cCanExecuteRaw);
361 GEN_CHECK_OFF(REM, aGCPtrInvalidatedPages);
362 GEN_CHECK_OFF(REM, cHandlerNotifications);
363 GEN_CHECK_OFF(REM, aHandlerNotifications);
364 GEN_CHECK_OFF(REM, paHCVirtToGCPhys);
365 GEN_CHECK_OFF(REM, cPhysRegistrations);
366 GEN_CHECK_OFF(REM, aPhysReg);
367 GEN_CHECK_OFF(REM, rc);
368 GEN_CHECK_OFF(REM, StatsInQEMU);
369 GEN_CHECK_OFF(REM, Env);
370
371 GEN_CHECK_SIZE(SELM);
372 GEN_CHECK_OFF(SELM, offVM);
373 GEN_CHECK_OFF(SELM, SelCS);
374 GEN_CHECK_OFF(SELM, SelDS);
375 GEN_CHECK_OFF(SELM, SelCS64);
376 GEN_CHECK_OFF(SELM, SelTSS);
377 GEN_CHECK_OFF(SELM, SelTSSTrap08);
378 GEN_CHECK_OFF(SELM, paGdtHC);
379 GEN_CHECK_OFF(SELM, paGdtGC);
380 GEN_CHECK_OFF(SELM, GuestGdtr);
381 GEN_CHECK_OFF(SELM, cbEffGuestGdtLimit);
382 GEN_CHECK_OFF(SELM, HCPtrLdt);
383 GEN_CHECK_OFF(SELM, GCPtrLdt);
384 GEN_CHECK_OFF(SELM, GCPtrGuestLdt);
385 GEN_CHECK_OFF(SELM, cbLdtLimit);
386 GEN_CHECK_OFF(SELM, offLdtHyper);
387 GEN_CHECK_OFF(SELM, Tss);
388 GEN_CHECK_OFF(SELM, TssTrap08);
389 GEN_CHECK_OFF(SELM, TssTrap0a);
390 GEN_CHECK_OFF(SELM, GCPtrTss);
391 GEN_CHECK_OFF(SELM, GCPtrGuestTss);
392 GEN_CHECK_OFF(SELM, cbGuestTss);
393 GEN_CHECK_OFF(SELM, fGuestTss32Bit);
394 GEN_CHECK_OFF(SELM, cbMonitoredGuestTss);
395 GEN_CHECK_OFF(SELM, GCSelTss);
396 GEN_CHECK_OFF(SELM, fGDTRangeRegistered);
397 GEN_CHECK_OFF(SELM, StatUpdateFromCPUM);
398
399 GEN_CHECK_SIZE(STAM);
400
401 GEN_CHECK_SIZE(TM);
402 GEN_CHECK_OFF(TM, offVM);
403 GEN_CHECK_OFF(TM, pvGIPR3);
404 //GEN_CHECK_OFF(TM, pvGIPR0);
405 GEN_CHECK_OFF(TM, pvGIPGC);
406 GEN_CHECK_OFF(TM, fTSCTicking);
407 GEN_CHECK_OFF(TM, u64TSCOffset);
408 GEN_CHECK_OFF(TM, u64TSC);
409 GEN_CHECK_OFF(TM, cTSCTicksPerSecond);
410 GEN_CHECK_OFF(TM, fVirtualTicking);
411 GEN_CHECK_OFF(TM, fVirtualWarpDrive);
412 GEN_CHECK_OFF(TM, u32VirtualWarpDrivePercentage);
413 GEN_CHECK_OFF(TM, u64VirtualOffset);
414 GEN_CHECK_OFF(TM, u64Virtual);
415 GEN_CHECK_OFF(TM, u64VirtualWarpDriveStart);
416 GEN_CHECK_OFF(TM, u64VirtualSync);
417 GEN_CHECK_OFF(TM, u32VirtualSyncCatchupPercentage);
418 GEN_CHECK_OFF(TM, u32VirtualSyncCatchupStopThreashold);
419 GEN_CHECK_OFF(TM, u64VirtualSyncCatchupStartTreashold);
420 GEN_CHECK_OFF(TM, u64VirtualSyncCatchupGiveUpTreashold);
421 GEN_CHECK_OFF(TM, pTimer);
422 GEN_CHECK_OFF(TM, u32TimerMillies);
423 GEN_CHECK_OFF(TM, pFree);
424 GEN_CHECK_OFF(TM, pCreated);
425 GEN_CHECK_OFF(TM, paTimerQueuesR3);
426 GEN_CHECK_OFF(TM, paTimerQueuesR0);
427 GEN_CHECK_OFF(TM, paTimerQueuesGC);
428 GEN_CHECK_OFF(TM, StatDoQueues);
429 GEN_CHECK_SIZE(TMTIMER);
430 GEN_CHECK_OFF(TMTIMER, u64Expire);
431 GEN_CHECK_OFF(TMTIMER, enmClock);
432 GEN_CHECK_OFF(TMTIMER, enmType);
433 GEN_CHECK_OFF(TMTIMER, u.Dev.pfnTimer);
434 GEN_CHECK_OFF(TMTIMER, u.Dev.pDevIns);
435 GEN_CHECK_OFF(TMTIMER, u.Drv.pfnTimer);
436 GEN_CHECK_OFF(TMTIMER, u.Drv.pDrvIns);
437 GEN_CHECK_OFF(TMTIMER, u.Internal.pfnTimer);
438 GEN_CHECK_OFF(TMTIMER, u.Internal.pvUser);
439 GEN_CHECK_OFF(TMTIMER, u.External.pfnTimer);
440 GEN_CHECK_OFF(TMTIMER, u.External.pvUser);
441 GEN_CHECK_OFF(TMTIMER, enmState);
442 GEN_CHECK_OFF(TMTIMER, offScheduleNext);
443 GEN_CHECK_OFF(TMTIMER, offNext);
444 GEN_CHECK_OFF(TMTIMER, offPrev);
445 GEN_CHECK_OFF(TMTIMER, pBigNext);
446 GEN_CHECK_OFF(TMTIMER, pBigPrev);
447 GEN_CHECK_OFF(TMTIMER, pszDesc);
448 GEN_CHECK_OFF(TMTIMER, pVMR0);
449 GEN_CHECK_OFF(TMTIMER, pVMR3);
450 GEN_CHECK_OFF(TMTIMER, pVMGC);
451 GEN_CHECK_SIZE(TMTIMERQUEUE);
452 GEN_CHECK_OFF(TMTIMERQUEUE, offActive);
453 GEN_CHECK_OFF(TMTIMERQUEUE, offSchedule);
454 GEN_CHECK_OFF(TMTIMERQUEUE, enmClock);
455
456 GEN_CHECK_SIZE(TRPM); // has .mac
457 GEN_CHECK_SIZE(VM); // has .mac
458 GEN_CHECK_SIZE(VMM);
459 GEN_CHECK_OFF(VMM, offVM);
460 GEN_CHECK_OFF(VMM, cbCoreCode);
461 GEN_CHECK_OFF(VMM, HCPhysCoreCode);
462 GEN_CHECK_OFF(VMM, pvHCCoreCodeR3);
463 GEN_CHECK_OFF(VMM, pvHCCoreCodeR0);
464 GEN_CHECK_OFF(VMM, pvGCCoreCode);
465 GEN_CHECK_OFF(VMM, enmSwitcher);
466 GEN_CHECK_OFF(VMM, aoffSwitchers);
467 GEN_CHECK_OFF(VMM, aoffSwitchers[1]);
468 GEN_CHECK_OFF(VMM, pfnR0HostToGuest);
469 GEN_CHECK_OFF(VMM, pfnGCGuestToHost);
470 GEN_CHECK_OFF(VMM, pfnGCCallTrampoline);
471 GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuest);
472 GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuestV86);
473 GEN_CHECK_OFF(VMM, iLastGCRc);
474 GEN_CHECK_OFF(VMM, pbHCStack);
475 GEN_CHECK_OFF(VMM, pbGCStack);
476 GEN_CHECK_OFF(VMM, pbGCStackBottom);
477 GEN_CHECK_OFF(VMM, pLoggerGC);
478 GEN_CHECK_OFF(VMM, pLoggerHC);
479 GEN_CHECK_OFF(VMM, cbLoggerGC);
480 GEN_CHECK_OFF(VMM, CritSectVMLock);
481 GEN_CHECK_OFF(VMM, pYieldTimer);
482 GEN_CHECK_OFF(VMM, cYieldResumeMillies);
483 GEN_CHECK_OFF(VMM, cYieldEveryMillies);
484 GEN_CHECK_OFF(VMM, enmCallHostOperation);
485 GEN_CHECK_OFF(VMM, rcCallHost);
486 GEN_CHECK_OFF(VMM, u64CallHostArg);
487 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf);
488 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpCheck);
489 GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpResume);
490 GEN_CHECK_OFF(VMM, StatRunGC);
491 GEN_CHECK_OFF(VMM, StatGCRetPGMLock);
492
493 GEN_CHECK_SIZE(RTPINGPONG);
494 GEN_CHECK_SIZE(RTCRITSECT);
495 GEN_CHECK_OFF(RTCRITSECT, u32Magic);
496 GEN_CHECK_OFF(RTCRITSECT, cLockers);
497 GEN_CHECK_OFF(RTCRITSECT, NativeThreadOwner);
498 GEN_CHECK_OFF(RTCRITSECT, cNestings);
499 GEN_CHECK_OFF(RTCRITSECT, fFlags);
500 GEN_CHECK_OFF(RTCRITSECT, EventSem);
501 GEN_CHECK_OFF(RTCRITSECT, Strict.ThreadOwner);
502 GEN_CHECK_OFF(RTCRITSECT, Strict.pszEnterFile);
503 GEN_CHECK_OFF(RTCRITSECT, Strict.u32EnterLine);
504 GEN_CHECK_OFF(RTCRITSECT, Strict.uEnterId);
505
506 return 0;
507}
508
509
510
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