1 | /* $Id: tstVMStructGC.cpp 454 2007-01-31 00:02:36Z 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.virtualbox.org. 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 |
|
---|
84 | int 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 | GEN_CHECK_SIZE(PGMPOOLPAGE);
|
---|
358 | GEN_CHECK_OFF(PGMPOOLPAGE, Core);
|
---|
359 | GEN_CHECK_OFF(PGMPOOLPAGE, GCPhys);
|
---|
360 | GEN_CHECK_OFF(PGMPOOLPAGE, pvPageHC);
|
---|
361 | GEN_CHECK_OFF(PGMPOOLPAGE, enmKind);
|
---|
362 | GEN_CHECK_OFF(PGMPOOLPAGE, bPadding);
|
---|
363 | GEN_CHECK_OFF(PGMPOOLPAGE, idx);
|
---|
364 | GEN_CHECK_OFF(PGMPOOLPAGE, iNext);
|
---|
365 | #ifdef PGMPOOL_WITH_USER_TRACKING
|
---|
366 | GEN_CHECK_OFF(PGMPOOLPAGE, iUserHead);
|
---|
367 | GEN_CHECK_OFF(PGMPOOLPAGE, cPresent);
|
---|
368 | GEN_CHECK_OFF(PGMPOOLPAGE, iFirstPresent);
|
---|
369 | #endif
|
---|
370 | #ifdef PGMPOOL_WITH_MONITORING
|
---|
371 | GEN_CHECK_OFF(PGMPOOLPAGE, cModifications);
|
---|
372 | GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedNext);
|
---|
373 | GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedPrev);
|
---|
374 | GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredNext);
|
---|
375 | GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredPrev);
|
---|
376 | #endif
|
---|
377 | #ifdef PGMPOOL_WITH_CACHE
|
---|
378 | GEN_CHECK_OFF(PGMPOOLPAGE, iAgeNext);
|
---|
379 | GEN_CHECK_OFF(PGMPOOLPAGE, iAgePrev);
|
---|
380 | #endif
|
---|
381 | GEN_CHECK_OFF(PGMPOOLPAGE, fZeroed);
|
---|
382 | GEN_CHECK_OFF(PGMPOOLPAGE, fSeenNonGlobal);
|
---|
383 | GEN_CHECK_OFF(PGMPOOLPAGE, fMonitored);
|
---|
384 | GEN_CHECK_OFF(PGMPOOLPAGE, fCached);
|
---|
385 | GEN_CHECK_OFF(PGMPOOLPAGE, fReusedFlushPending);
|
---|
386 | GEN_CHECK_OFF(PGMPOOLPAGE, fCR3Mix);
|
---|
387 | GEN_CHECK_SIZE(PGMPOOL);
|
---|
388 | GEN_CHECK_OFF(PGMPOOL, pVMHC);
|
---|
389 | GEN_CHECK_OFF(PGMPOOL, pVMGC);
|
---|
390 | GEN_CHECK_OFF(PGMPOOL, cMaxPages);
|
---|
391 | GEN_CHECK_OFF(PGMPOOL, cCurPages);
|
---|
392 | GEN_CHECK_OFF(PGMPOOL, iFreeHead);
|
---|
393 | GEN_CHECK_OFF(PGMPOOL, u16Padding);
|
---|
394 | #ifdef PGMPOOL_WITH_USER_TRACKING
|
---|
395 | GEN_CHECK_OFF(PGMPOOL, iUserFreeHead);
|
---|
396 | GEN_CHECK_OFF(PGMPOOL, cMaxUsers);
|
---|
397 | GEN_CHECK_OFF(PGMPOOL, cPresent);
|
---|
398 | GEN_CHECK_OFF(PGMPOOL, paUsersHC);
|
---|
399 | GEN_CHECK_OFF(PGMPOOL, paUsersGC);
|
---|
400 | #endif /* PGMPOOL_WITH_USER_TRACKING */
|
---|
401 | #ifdef PGMPOOL_WITH_GCPHYS_TRACKING
|
---|
402 | GEN_CHECK_OFF(PGMPOOL, iPhysExtFreeHead);
|
---|
403 | GEN_CHECK_OFF(PGMPOOL, cMaxPhysExts);
|
---|
404 | GEN_CHECK_OFF(PGMPOOL, paPhysExtsHC);
|
---|
405 | GEN_CHECK_OFF(PGMPOOL, paPhysExtsGC);
|
---|
406 | #endif
|
---|
407 | #ifdef PGMPOOL_WITH_CACHE
|
---|
408 | GEN_CHECK_OFF(PGMPOOL, aiHash);
|
---|
409 | GEN_CHECK_OFF(PGMPOOL, iAgeHead);
|
---|
410 | GEN_CHECK_OFF(PGMPOOL, iAgeTail);
|
---|
411 | GEN_CHECK_OFF(PGMPOOL, fCacheEnabled);
|
---|
412 | #endif
|
---|
413 | #ifdef PGMPOOL_WITH_MONITORING
|
---|
414 | GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerGC);
|
---|
415 | GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR0);
|
---|
416 | GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR3);
|
---|
417 | GEN_CHECK_OFF(PGMPOOL, pszAccessHandler);
|
---|
418 | GEN_CHECK_OFF(PGMPOOL, iModifiedHead);
|
---|
419 | GEN_CHECK_OFF(PGMPOOL, cModifiedPages);
|
---|
420 | #endif
|
---|
421 | GEN_CHECK_OFF(PGMPOOL, cUsedPages);
|
---|
422 | #ifdef VBOX_WITH_STATISTICS
|
---|
423 | GEN_CHECK_OFF(PGMPOOL, cUsedPagesHigh);
|
---|
424 | GEN_CHECK_OFF(PGMPOOL, StatAlloc);
|
---|
425 | GEN_CHECK_OFF(PGMPOOL, StatClearAll);
|
---|
426 | #endif
|
---|
427 | GEN_CHECK_OFF(PGMPOOL, HCPhysTree);
|
---|
428 | GEN_CHECK_OFF(PGMPOOL, aPages);
|
---|
429 | GEN_CHECK_OFF(PGMPOOL, aPages[1]);
|
---|
430 | GEN_CHECK_OFF(PGMPOOL, aPages[PGMPOOL_IDX_FIRST - 1]);
|
---|
431 |
|
---|
432 | GEN_CHECK_SIZE(REM);
|
---|
433 | GEN_CHECK_OFF(REM, pCtx);
|
---|
434 | GEN_CHECK_OFF(REM, cCanExecuteRaw);
|
---|
435 | GEN_CHECK_OFF(REM, aGCPtrInvalidatedPages);
|
---|
436 | GEN_CHECK_OFF(REM, cHandlerNotifications);
|
---|
437 | GEN_CHECK_OFF(REM, aHandlerNotifications);
|
---|
438 | GEN_CHECK_OFF(REM, paHCVirtToGCPhys);
|
---|
439 | GEN_CHECK_OFF(REM, cPhysRegistrations);
|
---|
440 | GEN_CHECK_OFF(REM, aPhysReg);
|
---|
441 | GEN_CHECK_OFF(REM, rc);
|
---|
442 | GEN_CHECK_OFF(REM, StatsInQEMU);
|
---|
443 | GEN_CHECK_OFF(REM, Env);
|
---|
444 |
|
---|
445 | GEN_CHECK_SIZE(SELM);
|
---|
446 | GEN_CHECK_OFF(SELM, offVM);
|
---|
447 | GEN_CHECK_OFF(SELM, SelCS);
|
---|
448 | GEN_CHECK_OFF(SELM, SelDS);
|
---|
449 | GEN_CHECK_OFF(SELM, SelCS64);
|
---|
450 | GEN_CHECK_OFF(SELM, SelTSS);
|
---|
451 | GEN_CHECK_OFF(SELM, SelTSSTrap08);
|
---|
452 | GEN_CHECK_OFF(SELM, paGdtHC);
|
---|
453 | GEN_CHECK_OFF(SELM, paGdtGC);
|
---|
454 | GEN_CHECK_OFF(SELM, GuestGdtr);
|
---|
455 | GEN_CHECK_OFF(SELM, cbEffGuestGdtLimit);
|
---|
456 | GEN_CHECK_OFF(SELM, HCPtrLdt);
|
---|
457 | GEN_CHECK_OFF(SELM, GCPtrLdt);
|
---|
458 | GEN_CHECK_OFF(SELM, GCPtrGuestLdt);
|
---|
459 | GEN_CHECK_OFF(SELM, cbLdtLimit);
|
---|
460 | GEN_CHECK_OFF(SELM, offLdtHyper);
|
---|
461 | GEN_CHECK_OFF(SELM, Tss);
|
---|
462 | GEN_CHECK_OFF(SELM, TssTrap08);
|
---|
463 | GEN_CHECK_OFF(SELM, TssTrap0a);
|
---|
464 | GEN_CHECK_OFF(SELM, GCPtrTss);
|
---|
465 | GEN_CHECK_OFF(SELM, GCPtrGuestTss);
|
---|
466 | GEN_CHECK_OFF(SELM, cbGuestTss);
|
---|
467 | GEN_CHECK_OFF(SELM, fGuestTss32Bit);
|
---|
468 | GEN_CHECK_OFF(SELM, cbMonitoredGuestTss);
|
---|
469 | GEN_CHECK_OFF(SELM, GCSelTss);
|
---|
470 | GEN_CHECK_OFF(SELM, fGDTRangeRegistered);
|
---|
471 | GEN_CHECK_OFF(SELM, StatUpdateFromCPUM);
|
---|
472 |
|
---|
473 | GEN_CHECK_SIZE(STAM);
|
---|
474 |
|
---|
475 | GEN_CHECK_SIZE(TM);
|
---|
476 | GEN_CHECK_OFF(TM, offVM);
|
---|
477 | GEN_CHECK_OFF(TM, pvGIPR3);
|
---|
478 | //GEN_CHECK_OFF(TM, pvGIPR0);
|
---|
479 | GEN_CHECK_OFF(TM, pvGIPGC);
|
---|
480 | GEN_CHECK_OFF(TM, fTSCTicking);
|
---|
481 | GEN_CHECK_OFF(TM, u64TSCOffset);
|
---|
482 | GEN_CHECK_OFF(TM, u64TSC);
|
---|
483 | GEN_CHECK_OFF(TM, cTSCTicksPerSecond);
|
---|
484 | GEN_CHECK_OFF(TM, fVirtualTicking);
|
---|
485 | GEN_CHECK_OFF(TM, fVirtualWarpDrive);
|
---|
486 | GEN_CHECK_OFF(TM, u32VirtualWarpDrivePercentage);
|
---|
487 | GEN_CHECK_OFF(TM, u64VirtualOffset);
|
---|
488 | GEN_CHECK_OFF(TM, u64Virtual);
|
---|
489 | GEN_CHECK_OFF(TM, u64VirtualWarpDriveStart);
|
---|
490 | GEN_CHECK_OFF(TM, u64VirtualSync);
|
---|
491 | GEN_CHECK_OFF(TM, u32VirtualSyncCatchupPercentage);
|
---|
492 | GEN_CHECK_OFF(TM, u32VirtualSyncCatchupStopThreashold);
|
---|
493 | GEN_CHECK_OFF(TM, u64VirtualSyncCatchupStartTreashold);
|
---|
494 | GEN_CHECK_OFF(TM, u64VirtualSyncCatchupGiveUpTreashold);
|
---|
495 | GEN_CHECK_OFF(TM, pTimer);
|
---|
496 | GEN_CHECK_OFF(TM, u32TimerMillies);
|
---|
497 | GEN_CHECK_OFF(TM, pFree);
|
---|
498 | GEN_CHECK_OFF(TM, pCreated);
|
---|
499 | GEN_CHECK_OFF(TM, paTimerQueuesR3);
|
---|
500 | GEN_CHECK_OFF(TM, paTimerQueuesR0);
|
---|
501 | GEN_CHECK_OFF(TM, paTimerQueuesGC);
|
---|
502 | GEN_CHECK_OFF(TM, StatDoQueues);
|
---|
503 | GEN_CHECK_SIZE(TMTIMER);
|
---|
504 | GEN_CHECK_OFF(TMTIMER, u64Expire);
|
---|
505 | GEN_CHECK_OFF(TMTIMER, enmClock);
|
---|
506 | GEN_CHECK_OFF(TMTIMER, enmType);
|
---|
507 | GEN_CHECK_OFF(TMTIMER, u.Dev.pfnTimer);
|
---|
508 | GEN_CHECK_OFF(TMTIMER, u.Dev.pDevIns);
|
---|
509 | GEN_CHECK_OFF(TMTIMER, u.Drv.pfnTimer);
|
---|
510 | GEN_CHECK_OFF(TMTIMER, u.Drv.pDrvIns);
|
---|
511 | GEN_CHECK_OFF(TMTIMER, u.Internal.pfnTimer);
|
---|
512 | GEN_CHECK_OFF(TMTIMER, u.Internal.pvUser);
|
---|
513 | GEN_CHECK_OFF(TMTIMER, u.External.pfnTimer);
|
---|
514 | GEN_CHECK_OFF(TMTIMER, u.External.pvUser);
|
---|
515 | GEN_CHECK_OFF(TMTIMER, enmState);
|
---|
516 | GEN_CHECK_OFF(TMTIMER, offScheduleNext);
|
---|
517 | GEN_CHECK_OFF(TMTIMER, offNext);
|
---|
518 | GEN_CHECK_OFF(TMTIMER, offPrev);
|
---|
519 | GEN_CHECK_OFF(TMTIMER, pBigNext);
|
---|
520 | GEN_CHECK_OFF(TMTIMER, pBigPrev);
|
---|
521 | GEN_CHECK_OFF(TMTIMER, pszDesc);
|
---|
522 | GEN_CHECK_OFF(TMTIMER, pVMR0);
|
---|
523 | GEN_CHECK_OFF(TMTIMER, pVMR3);
|
---|
524 | GEN_CHECK_OFF(TMTIMER, pVMGC);
|
---|
525 | GEN_CHECK_SIZE(TMTIMERQUEUE);
|
---|
526 | GEN_CHECK_OFF(TMTIMERQUEUE, offActive);
|
---|
527 | GEN_CHECK_OFF(TMTIMERQUEUE, offSchedule);
|
---|
528 | GEN_CHECK_OFF(TMTIMERQUEUE, enmClock);
|
---|
529 |
|
---|
530 | GEN_CHECK_SIZE(TRPM); // has .mac
|
---|
531 | GEN_CHECK_SIZE(VM); // has .mac
|
---|
532 | GEN_CHECK_SIZE(VMM);
|
---|
533 | GEN_CHECK_OFF(VMM, offVM);
|
---|
534 | GEN_CHECK_OFF(VMM, cbCoreCode);
|
---|
535 | GEN_CHECK_OFF(VMM, HCPhysCoreCode);
|
---|
536 | GEN_CHECK_OFF(VMM, pvHCCoreCodeR3);
|
---|
537 | GEN_CHECK_OFF(VMM, pvHCCoreCodeR0);
|
---|
538 | GEN_CHECK_OFF(VMM, pvGCCoreCode);
|
---|
539 | GEN_CHECK_OFF(VMM, enmSwitcher);
|
---|
540 | GEN_CHECK_OFF(VMM, aoffSwitchers);
|
---|
541 | GEN_CHECK_OFF(VMM, aoffSwitchers[1]);
|
---|
542 | GEN_CHECK_OFF(VMM, pfnR0HostToGuest);
|
---|
543 | GEN_CHECK_OFF(VMM, pfnGCGuestToHost);
|
---|
544 | GEN_CHECK_OFF(VMM, pfnGCCallTrampoline);
|
---|
545 | GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuest);
|
---|
546 | GEN_CHECK_OFF(VMM, pfnCPUMGCResumeGuestV86);
|
---|
547 | GEN_CHECK_OFF(VMM, iLastGCRc);
|
---|
548 | GEN_CHECK_OFF(VMM, pbHCStack);
|
---|
549 | GEN_CHECK_OFF(VMM, pbGCStack);
|
---|
550 | GEN_CHECK_OFF(VMM, pbGCStackBottom);
|
---|
551 | GEN_CHECK_OFF(VMM, pLoggerGC);
|
---|
552 | GEN_CHECK_OFF(VMM, pLoggerHC);
|
---|
553 | GEN_CHECK_OFF(VMM, cbLoggerGC);
|
---|
554 | GEN_CHECK_OFF(VMM, CritSectVMLock);
|
---|
555 | GEN_CHECK_OFF(VMM, pYieldTimer);
|
---|
556 | GEN_CHECK_OFF(VMM, cYieldResumeMillies);
|
---|
557 | GEN_CHECK_OFF(VMM, cYieldEveryMillies);
|
---|
558 | GEN_CHECK_OFF(VMM, enmCallHostOperation);
|
---|
559 | GEN_CHECK_OFF(VMM, rcCallHost);
|
---|
560 | GEN_CHECK_OFF(VMM, u64CallHostArg);
|
---|
561 | GEN_CHECK_OFF(VMM, CallHostR0JmpBuf);
|
---|
562 | GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpCheck);
|
---|
563 | GEN_CHECK_OFF(VMM, CallHostR0JmpBuf.SpResume);
|
---|
564 | GEN_CHECK_OFF(VMM, StatRunGC);
|
---|
565 | GEN_CHECK_OFF(VMM, StatGCRetPGMLock);
|
---|
566 |
|
---|
567 | GEN_CHECK_SIZE(RTPINGPONG);
|
---|
568 | GEN_CHECK_SIZE(RTCRITSECT);
|
---|
569 | GEN_CHECK_OFF(RTCRITSECT, u32Magic);
|
---|
570 | GEN_CHECK_OFF(RTCRITSECT, cLockers);
|
---|
571 | GEN_CHECK_OFF(RTCRITSECT, NativeThreadOwner);
|
---|
572 | GEN_CHECK_OFF(RTCRITSECT, cNestings);
|
---|
573 | GEN_CHECK_OFF(RTCRITSECT, fFlags);
|
---|
574 | GEN_CHECK_OFF(RTCRITSECT, EventSem);
|
---|
575 | GEN_CHECK_OFF(RTCRITSECT, Strict.ThreadOwner);
|
---|
576 | GEN_CHECK_OFF(RTCRITSECT, Strict.pszEnterFile);
|
---|
577 | GEN_CHECK_OFF(RTCRITSECT, Strict.u32EnterLine);
|
---|
578 | GEN_CHECK_OFF(RTCRITSECT, Strict.uEnterId);
|
---|
579 |
|
---|
580 | return 0;
|
---|
581 | }
|
---|
582 |
|
---|
583 |
|
---|
584 |
|
---|