VirtualBox

Changeset 41259 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
May 11, 2012 8:18:18 PM (13 years ago)
Author:
vboxsync
Message:

Working on DTrace lib files.

Location:
trunk/src/VBox/VMM
Files:
5 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/Makefile.kmk

    r41247 r41259  
    576576        $(VMMLibDTrace_0_OUTDIR)/vm.d \
    577577        $(VMMLibDTrace_0_OUTDIR)/cpumctx.d \
     578        $(VMMLibDTrace_0_OUTDIR)/CPUMInternal.d \
    578579        $(VMMLibDTrace_0_OUTDIR)/x86.d \
    579580
     
    595596                -D 'AssertCompile(a_Expr)=' \
    596597                -D 'AssertCompileSize(a_Stuct, a_Size)=' \
    597                 $$(addprefix -D ,$$(DEFS) $$(DEFS.$$(KBUILD_TARGET)) $$(DEFS.$(KBUILD_TARGET_ARCH))) $$< $$@
     598                -D 'bool=uint8_t' \
     599                $$(foreach def,\
     600                        $$(DEFS) \
     601                        $$(DEFS.$$(KBUILD_TARGET)) \
     602                        $$(DEFS.$(KBUILD_TARGET_ARCH)) \
     603                        $$(VMM_COMMON_DEFS) \
     604                        $$(ARCH_BITS_DEFS)\
     605                   ,-D '$$(def)') \
     606                $$< \
     607                $$@
    598608 endef
    599609 $(evalcall2 def_vmm_lib_dtrace_preprocess,vm.d,$(PATH_ROOT)/include/VBox/vmm/vm.h)
    600610 $(evalcall2 def_vmm_lib_dtrace_preprocess,cpumctx.d,$(PATH_ROOT)/include/VBox/vmm/cpumctx.h)
     611 $(evalcall2 def_vmm_lib_dtrace_preprocess,CPUMInternal.d,$(PATH_CURRENT)/include/CPUMInternal.h)
    601612 $(evalcall2 def_vmm_lib_dtrace_preprocess,x86.d,$(PATH_ROOT)/include/iprt/x86.h)
    602613
  • trunk/src/VBox/VMM/dtrace/lib/vbox-types.d

    r41247 r41259  
    4848typedef struct SUPDRVSESSION   *PSUPDRVSESSION;
    4949typedef struct UVM             *PUVM;
     50typedef uint32_t                CPUMCPUVENDOR;
     51typedef struct CPUMCTXCORE     *PCPUMCTXCORE;
     52
    5053typedef struct VBOXGDTR
    5154{
  • trunk/src/VBox/VMM/include/CPUMInternal.h

    r40234 r41259  
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    1919#define ___CPUMInternal_h
    2020
    21 #include <VBox/cdefs.h>
    22 #include <VBox/types.h>
    23 #include <iprt/x86.h>
     21#ifndef VBOX_FOR_DTRACE_LIB
     22# include <VBox/cdefs.h>
     23# include <VBox/types.h>
     24# include <iprt/x86.h>
     25#else
     26# pragma D depends_on library x86.d
     27# pragma D depends_on library cpumctx.d
     28#endif
     29
    2430
    2531
     
    7783
    7884/* Sanity check. */
     85#ifndef VBOX_FOR_DTRACE_LIB
    7986#if defined(VBOX_WITH_HYBRID_32BIT_KERNEL) && (HC_ARCH_BITS != 32 || R0_ARCH_BITS != 32)
    8087# error "VBOX_WITH_HYBRID_32BIT_KERNEL is only for 32 bit builds."
     88#endif
    8189#endif
    8290
     
    99107    /** General purpose register ++
    100108     * { */
    101     //uint64_t        rax; - scratch
     109    /*uint64_t        rax; - scratch*/
    102110    uint64_t        rbx;
    103     //uint64_t        rcx; - scratch
    104     //uint64_t        rdx; - scratch
     111    /*uint64_t        rcx; - scratch*/
     112    /*uint64_t        rdx; - scratch*/
    105113    uint64_t        rdi;
    106114    uint64_t        rsi;
    107115    uint64_t        rbp;
    108116    uint64_t        rsp;
    109     //uint64_t        r8; - scratch
    110     //uint64_t        r9; - scratch
     117    /*uint64_t        r8; - scratch*/
     118    /*uint64_t        r9; - scratch*/
    111119    uint64_t        r10;
    112120    uint64_t        r11;
     
    115123    uint64_t        r14;
    116124    uint64_t        r15;
    117     //uint64_t        rip; - scratch
     125    /*uint64_t        rip; - scratch*/
    118126    uint64_t        rflags;
    119127#endif
    120128
    121129#if HC_ARCH_BITS == 32
    122     //uint32_t        eax; - scratch
     130    /*uint32_t        eax; - scratch*/
    123131    uint32_t        ebx;
    124     //uint32_t        ecx; - scratch
    125     //uint32_t        edx; - scratch
     132    /*uint32_t        ecx; - scratch*/
     133    /*uint32_t        edx; - scratch*/
    126134    uint32_t        edi;
    127135    uint32_t        esi;
    128136    uint32_t        ebp;
    129137    X86EFLAGS       eflags;
    130     //uint32_t        eip; - scratch
     138    /*uint32_t        eip; - scratch*/
    131139    /* lss pair! */
    132140    uint32_t        esp;
     
    154162     * @{ */
    155163    uint32_t        cr0;
    156     //uint32_t        cr2; - scratch
     164    /*uint32_t        cr2; - scratch*/
    157165    uint32_t        cr3;
    158166    uint32_t        cr4;
     
    200208     * @{ */
    201209    uint64_t        cr0;
    202     //uint64_t        cr2; - scratch
     210    /*uint64_t        cr2; - scratch*/
    203211    uint64_t        cr3;
    204212    uint64_t        cr4;
     
    294302    } CR4;
    295303
     304#if 1 /*ndef VBOX_FOR_DTRACE_LIB*/ /* DTrace turns a 'bool' into a uint32_t. Ditto for uint8_t. Stupid, stupid DTrace! */
    296305    /** Synthetic CPU type? */
    297306    bool                    fSyntheticCpu;
     
    302311    bool                    fPendingRestore;
    303312    uint8_t                 abPadding[HC_ARCH_BITS == 64 ? 5 : 1];
     313#else
     314    uint8_t                 abPadding[(HC_ARCH_BITS == 64 ? 5 : 1) + 3];
     315#endif
    304316
    305317    /** The standard set of CpuId leaves. */
     
    400412    /** Align the structure on a 64-byte boundary. */
    401413    uint8_t                 abPadding2[HC_ARCH_BITS == 32 ? 34 : 26];
    402 } CPUMCPU, *PCPUMCPU;
     414} CPUMCPU;
    403415/** Pointer to the CPUMCPU instance data residing in the shared VMCPU structure. */
    404416typedef CPUMCPU *PCPUMCPU;
    405417
     418#ifndef VBOX_FOR_DTRACE_LIB
    406419RT_C_DECLS_BEGIN
    407420
     
    430443
    431444RT_C_DECLS_END
     445#endif /* !VBOX_FOR_DTRACE_LIB */
    432446
    433447/** @} */
  • trunk/src/VBox/VMM/testcase/Makefile.kmk

    r41155 r41259  
    2525ifdef VBOX_WITH_RAW_MODE
    2626 PROGRAMS  += tstVMStructRC tstAsmStructsRC
     27endif
     28if !defined(VBOX_ONLY_EXTPACKS) \
     29 && (   defined(VBOX_WITH_DTRACE_R3) \
     30     || defined(VBOX_WITH_DTRACE_R0) \
     31     || defined(VBOX_WITH_DTRACE_RC))
     32 PROGRAMS += tstVMStructDTrace
     33 INSTALLS += VMMLibDTraceStructTest
    2734endif
    2835ifndef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
     
    298305endif
    299306
     307
     308#
     309# Generate VM structure tests.
     310#
     311if !defined(VBOX_ONLY_EXTPACKS) \
     312 && (   defined(VBOX_WITH_DTRACE_R3) \
     313     || defined(VBOX_WITH_DTRACE_R0) \
     314     || defined(VBOX_WITH_DTRACE_RC))
     315 tstVMStructDTrace_TEMPLATE= VBOXR3AUTOTST
     316 tstVMStructDTrace_DEFS    = IN_VMM_R3 IN_DIS
     317 ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),darwin.x86)
     318  tstVMStructDTrace_DEFS  += \
     319        VBOX_WITH_2X_4GB_ADDR_SPACE   VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R3 \
     320        VBOX_WITH_HYBRID_32BIT_KERNEL VBOX_WITH_HYBRID_32BIT_KERNEL_IN_R3
     321 endif
     322 ifdef VBOX_WITH_RAW_MODE
     323  tstVMStructDTrace_DEFS  += VBOX_WITH_RAW_MODE
     324 endif
     325 tstVMStructDTrace_INCS    = \
     326        $(VBOX_PATH_VMM_SRC)/include \
     327        $(VBOX_PATH_VMM_SRC)/PATM \
     328        $(VBOX_VMM_TESTCASE_OUT_DIR)
     329 tstVMStructDTrace_SOURCES = tstVMStructDTrace.cpp
     330 ifdef VBOX_WITH_R0_LOGGING
     331  tstVMStructDTrace_DEFS  += VBOX_WITH_R0_LOGGING
     332 endif
     333 ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
     334  tstVMStructDTrace_DEFS  += VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
     335 endif
     336
     337
     338 VMMLibDTraceStructTest_INST = $(VBOX_INST_DTRACE_TST)$(KBUILD_TARGET_ARCH)/
     339 VMMLibDTraceStructTest_SOURCES = \
     340        $(tstVMStructDTrace_0_OUTDIR)/vbox-vm-struct-test.d
     341
     342 $$(tstVMStructDTrace_0_OUTDIR)/vbox-vm-struct-test.d: \
     343                $$(tstVMStructDTrace_1_STAGE_TARGET) | $$(dir $$@)
     344        $(QUIET)$(RM) -f $@
     345        $< > $@
     346
     347endif
     348
     349
    300350include $(KBUILD_PATH)/subfooter.kmk
    301351
  • trunk/src/VBox/VMM/testcase/tstVMStruct.h

    r41248 r41259  
    11/* $Id$ */
    22/** @file
    3  * tstVMMStructRC - Generate structure member and size checks from the
    4  *                  RC perspective.
     3 * tstVMMStruct - Statements for generating VM and VMCPU offset and size tests.
    54 *
    6  * This is built using the VBOXRC template but linked into a host
    7  * ring-3 executable, rather hacky.
     5 * This is used by tstVMStructRC.cpp and tstVMStructDTrace.cpp.  Tests that
     6 * are not yet available in DTrace are blocked by VBOX_FOR_DTRACE_LIB.
    87 */
    98
    109/*
    11  * Copyright (C) 2006-2010 Oracle Corporation
     10 * Copyright (C) 2006-2012 Oracle Corporation
    1211 *
    1312 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2120
    2221
    23 /*
    24  * Sanity checks.
    25  */
    26 #ifndef IN_RC
    27 # error Incorrect template!
    28 #endif
    29 #if defined(IN_RING3) || defined(IN_RING0)
    30 # error Incorrect template!
    31 #endif
    32 
    33 #include <VBox/types.h>
    34 #include <iprt/assert.h>
    35 AssertCompileSize(uint8_t,  1);
    36 AssertCompileSize(uint16_t, 2);
    37 AssertCompileSize(uint32_t, 4);
    38 AssertCompileSize(uint64_t, 8);
    39 AssertCompileSize(RTRCPTR,  4);
    40 #ifdef VBOX_WITH_64_BITS_GUESTS
    41 AssertCompileSize(RTGCPTR,  8);
     22#ifndef VBOX_FOR_DTRACE_LIB
     23    GEN_CHECK_SIZE(CFGM);
     24#endif
     25
     26    GEN_CHECK_SIZE(X86CPUIDFEATECX);
     27
     28    GEN_CHECK_SIZE(CPUM);    // has .mac
     29    GEN_CHECK_OFF(CPUM, offCPUMCPU0);
     30    GEN_CHECK_OFF(CPUM, fHostUseFlags);
     31    GEN_CHECK_OFF(CPUM, CPUFeatures);
     32    GEN_CHECK_OFF(CPUM, CPUFeaturesExt);
     33    GEN_CHECK_OFF(CPUM, CPUFeaturesExt);
     34    GEN_CHECK_OFF(CPUM, enmHostCpuVendor);
     35    GEN_CHECK_OFF(CPUM, enmGuestCpuVendor);
     36    GEN_CHECK_OFF(CPUM, CR4);
     37#ifndef VBOX_FOR_DTRACE_LIB
     38    GEN_CHECK_OFF(CPUM, fSyntheticCpu);
     39    GEN_CHECK_OFF(CPUM, u8PortableCpuIdLevel);
     40    GEN_CHECK_OFF(CPUM, fPendingRestore);
     41#endif
     42    GEN_CHECK_OFF(CPUM, aGuestCpuIdStd);
     43    GEN_CHECK_OFF(CPUM, aGuestCpuIdExt);
     44    GEN_CHECK_OFF(CPUM, aGuestCpuIdCentaur);
     45    GEN_CHECK_OFF(CPUM, aGuestCpuIdHyper);
     46    GEN_CHECK_OFF(CPUM, GuestCpuIdDef);
     47#ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
     48    GEN_CHECK_OFF(CPUM, pvApicBase);
     49    GEN_CHECK_OFF(CPUM, fApicDisVectors);
     50#endif
     51    GEN_CHECK_OFF(CPUM, GuestEntry);
     52
     53
     54    GEN_CHECK_SIZE(CPUMCPU); // has .mac
     55    GEN_CHECK_OFF(CPUMCPU, Hyper);
     56    GEN_CHECK_OFF(CPUMCPU, Host);
     57#ifdef VBOX_WITH_CRASHDUMP_MAGIC
     58    GEN_CHECK_OFF(CPUMCPU, aMagic);
     59    GEN_CHECK_OFF(CPUMCPU, uMagic);
     60#endif
     61    GEN_CHECK_OFF(CPUMCPU, Guest);
     62    GEN_CHECK_OFF(CPUMCPU, GuestMsrs);
     63    GEN_CHECK_OFF(CPUMCPU, pHyperCoreR3);
     64    GEN_CHECK_OFF(CPUMCPU, pHyperCoreR0);
     65    GEN_CHECK_OFF(CPUMCPU, pHyperCoreRC);
     66    GEN_CHECK_OFF(CPUMCPU, fUseFlags);
     67    GEN_CHECK_OFF(CPUMCPU, fChanged);
     68    GEN_CHECK_OFF(CPUMCPU, offCPUM);
     69    GEN_CHECK_OFF(CPUMCPU, u32RetCode);
     70    GEN_CHECK_OFF(CPUMCPU, fRawEntered);
     71    GEN_CHECK_OFF(CPUMCPU, fRemEntered);
     72
     73    GEN_CHECK_SIZE(CPUMHOSTCTX);
     74    GEN_CHECK_OFF(CPUMHOSTCTX, fpu);
     75#if HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
     76    GEN_CHECK_OFF(CPUMHOSTCTX, rbx);
     77    GEN_CHECK_OFF(CPUMHOSTCTX, rdi);
     78    GEN_CHECK_OFF(CPUMHOSTCTX, rsi);
     79    GEN_CHECK_OFF(CPUMHOSTCTX, rbp);
     80    GEN_CHECK_OFF(CPUMHOSTCTX, rsp);
     81    GEN_CHECK_OFF(CPUMHOSTCTX, r10);
     82    GEN_CHECK_OFF(CPUMHOSTCTX, r11);
     83    GEN_CHECK_OFF(CPUMHOSTCTX, r12);
     84    GEN_CHECK_OFF(CPUMHOSTCTX, r13);
     85    GEN_CHECK_OFF(CPUMHOSTCTX, r14);
     86    GEN_CHECK_OFF(CPUMHOSTCTX, r15);
     87    GEN_CHECK_OFF(CPUMHOSTCTX, rflags);
     88#endif
     89#if HC_ARCH_BITS == 32
     90    GEN_CHECK_OFF(CPUMHOSTCTX, ebx);
     91    GEN_CHECK_OFF(CPUMHOSTCTX, edi);
     92    GEN_CHECK_OFF(CPUMHOSTCTX, esi);
     93    GEN_CHECK_OFF(CPUMHOSTCTX, ebp);
     94    GEN_CHECK_OFF(CPUMHOSTCTX, eflags);
     95    GEN_CHECK_OFF(CPUMHOSTCTX, esp);
     96#endif
     97    GEN_CHECK_OFF(CPUMHOSTCTX, ss);
     98    GEN_CHECK_OFF(CPUMHOSTCTX, gs);
     99    GEN_CHECK_OFF(CPUMHOSTCTX, fs);
     100    GEN_CHECK_OFF(CPUMHOSTCTX, es);
     101    GEN_CHECK_OFF(CPUMHOSTCTX, ds);
     102    GEN_CHECK_OFF(CPUMHOSTCTX, cs);
     103#if HC_ARCH_BITS == 32 && !defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
     104    GEN_CHECK_OFF(CPUMHOSTCTX, cr0);
     105    GEN_CHECK_OFF(CPUMHOSTCTX, cr3);
     106    GEN_CHECK_OFF(CPUMHOSTCTX, cr4);
     107    GEN_CHECK_OFF(CPUMHOSTCTX, dr0);
     108    GEN_CHECK_OFF(CPUMHOSTCTX, dr1);
     109    GEN_CHECK_OFF(CPUMHOSTCTX, dr2);
     110    GEN_CHECK_OFF(CPUMHOSTCTX, dr3);
     111    GEN_CHECK_OFF(CPUMHOSTCTX, dr6);
     112    GEN_CHECK_OFF(CPUMHOSTCTX, dr7);
     113    GEN_CHECK_OFF(CPUMHOSTCTX, gdtr);
     114    GEN_CHECK_OFF(CPUMHOSTCTX, idtr);
     115    GEN_CHECK_OFF(CPUMHOSTCTX, ldtr);
     116    GEN_CHECK_OFF(CPUMHOSTCTX, tr);
     117    GEN_CHECK_OFF(CPUMHOSTCTX, SysEnter);
     118    GEN_CHECK_OFF(CPUMHOSTCTX, efer);
     119#elif HC_ARCH_BITS == 64 || defined(VBOX_WITH_HYBRID_32BIT_KERNEL)
     120    GEN_CHECK_OFF(CPUMHOSTCTX, cr0);
     121    GEN_CHECK_OFF(CPUMHOSTCTX, cr3);
     122    GEN_CHECK_OFF(CPUMHOSTCTX, cr4);
     123    GEN_CHECK_OFF(CPUMHOSTCTX, cr8);
     124    GEN_CHECK_OFF(CPUMHOSTCTX, dr0);
     125    GEN_CHECK_OFF(CPUMHOSTCTX, dr1);
     126    GEN_CHECK_OFF(CPUMHOSTCTX, dr2);
     127    GEN_CHECK_OFF(CPUMHOSTCTX, dr3);
     128    GEN_CHECK_OFF(CPUMHOSTCTX, dr6);
     129    GEN_CHECK_OFF(CPUMHOSTCTX, dr7);
     130    GEN_CHECK_OFF(CPUMHOSTCTX, gdtr);
     131    GEN_CHECK_OFF(CPUMHOSTCTX, idtr);
     132    GEN_CHECK_OFF(CPUMHOSTCTX, ldtr);
     133    GEN_CHECK_OFF(CPUMHOSTCTX, tr);
     134    GEN_CHECK_OFF(CPUMHOSTCTX, SysEnter);
     135    GEN_CHECK_OFF(CPUMHOSTCTX, FSbase);
     136    GEN_CHECK_OFF(CPUMHOSTCTX, GSbase);
     137    GEN_CHECK_OFF(CPUMHOSTCTX, efer);
    42138#else
    43 AssertCompileSize(RTGCPTR,  4);
    44 #endif
    45 AssertCompileSize(RTGCPHYS, 8);
    46 AssertCompileSize(RTHCPHYS, 8);
    47 
    48 
    49 /*******************************************************************************
    50 *   Header Files                                                               *
    51 *******************************************************************************/
    52 #define IN_TSTVMSTRUCTGC 1
    53 #include <VBox/vmm/cfgm.h>
    54 #include <VBox/vmm/cpum.h>
    55 #include <VBox/vmm/mm.h>
    56 #include <VBox/vmm/pgm.h>
    57 #include <VBox/vmm/selm.h>
    58 #include <VBox/vmm/trpm.h>
    59 #include <VBox/vmm/vmm.h>
    60 #include <VBox/vmm/stam.h>
    61 #include "PDMInternal.h"
    62 #include <VBox/vmm/pdm.h>
    63 #include "CFGMInternal.h"
    64 #include "CPUMInternal.h"
    65 #include "MMInternal.h"
    66 #include "PGMInternal.h"
    67 #include "SELMInternal.h"
    68 #include "TRPMInternal.h"
    69 #include "TMInternal.h"
    70 #include "IOMInternal.h"
    71 #include "REMInternal.h"
    72 #include "HWACCMInternal.h"
    73 #include "PATMInternal.h"
    74 #include "VMMInternal.h"
    75 #include "DBGFInternal.h"
    76 #include "STAMInternal.h"
    77 #include "CSAMInternal.h"
    78 #include "EMInternal.h"
    79 #include "IEMInternal.h"
    80 #include "REMInternal.h"
    81 #include <VBox/vmm/vm.h>
    82 #include <VBox/param.h>
    83 #include <iprt/x86.h>
    84 #include <iprt/assert.h>
    85 
    86 /* we don't use iprt here because we're pretending to be in GC! */
    87 #include <stdio.h>
    88 
    89 #define GEN_CHECK_SIZE(s)   printf("    CHECK_SIZE(%s, %u);\n", #s, (unsigned)sizeof(s))
    90 #define GEN_CHECK_OFF(s, m) printf("    CHECK_OFF(%s, %u, %s);\n", #s, (unsigned)RT_OFFSETOF(s, m), #m)
    91 
    92 int main()
    93 {
    94     GEN_CHECK_SIZE(CFGM);
    95 
    96     GEN_CHECK_SIZE(CPUM);    // has .mac
    97     GEN_CHECK_SIZE(CPUMCPU); // has .mac
    98     GEN_CHECK_SIZE(CPUMHOSTCTX);
     139# error HC_ARCH_BITS not defined
     140#endif
     141
     142
     143#ifndef VBOX_FOR_DTRACE_LIB
    99144    GEN_CHECK_SIZE(CPUMCTX);
    100145    GEN_CHECK_SIZE(CPUMCTXMSRS);
    101146    GEN_CHECK_SIZE(CPUMCTXCORE);
     147#endif
     148
     149#ifndef VBOX_FOR_DTRACE_LIB
    102150    GEN_CHECK_SIZE(STAMRATIOU32);
    103151    GEN_CHECK_SIZE(AVLOHCPHYSNODECORE);
     
    143191    GEN_CHECK_OFF(EMCPU, enmState);
    144192    GEN_CHECK_OFF(EMCPU, fForceRAW);
    145     GEN_CHECK_OFF(EMCPU, u.achPaddingFatalLongJump);
     193    GEN_CHECK_OFF_DOT(EMCPU, u.achPaddingFatalLongJump);
    146194    GEN_CHECK_OFF(EMCPU, DisState);
    147195    GEN_CHECK_OFF(EMCPU, StatForcedActions);
     
    283331    GEN_CHECK_OFF(MMLOOKUPHYPER, cb);
    284332    GEN_CHECK_OFF(MMLOOKUPHYPER, enmType);
    285     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvR3);
    286     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvR0);
    287     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.paHCPhysPages);
    288     GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.pvR3);
    289     GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.HCPhys);
    290     GEN_CHECK_OFF(MMLOOKUPHYPER, u.GCPhys.GCPhys);
     333    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.Locked.pvR3);
     334    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.Locked.pvR0);
     335    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.Locked.paHCPhysPages);
     336    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.HCPhys.pvR3);
     337    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.HCPhys.HCPhys);
     338    GEN_CHECK_OFF_DOT(MMLOOKUPHYPER, u.GCPhys.GCPhys);
    291339    GEN_CHECK_OFF(MMLOOKUPHYPER, pszDesc);
    292340
     
    300348    GEN_CHECK_OFF(PDM, pDrvs);
    301349    GEN_CHECK_OFF(PDM, aPciBuses);
    302     GEN_CHECK_OFF(PDM, aPciBuses[0].iBus);
    303     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR3);
    304     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR3);
    305     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnRegisterR3);
    306     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnIORegionRegisterR3);
    307     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSaveExecR3);
    308     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnLoadExecR3);
    309     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnFakePCIBIOSR3);
    310     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR0);
    311     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR0);
    312     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsRC);
    313     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqRC);
     350    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].iBus);
     351    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pDevInsR3);
     352    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnSetIrqR3);
     353    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnRegisterR3);
     354    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnIORegionRegisterR3);
     355    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnSaveExecR3);
     356    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnLoadExecR3);
     357    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnFakePCIBIOSR3);
     358    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pDevInsR0);
     359    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnSetIrqR0);
     360    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pDevInsRC);
     361    GEN_CHECK_OFF_DOT(PDM, aPciBuses[0].pfnSetIrqRC);
    314362    GEN_CHECK_OFF(PDM, Pic);
    315     GEN_CHECK_OFF(PDM, Pic.pDevInsR3);
    316     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR3);
    317     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR3);
    318     GEN_CHECK_OFF(PDM, Pic.pDevInsR0);
    319     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR0);
    320     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR0);
    321     GEN_CHECK_OFF(PDM, Pic.pDevInsRC);
    322     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqRC);
    323     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptRC);
     363    GEN_CHECK_OFF_DOT(PDM, Pic.pDevInsR3);
     364    GEN_CHECK_OFF_DOT(PDM, Pic.pfnSetIrqR3);
     365    GEN_CHECK_OFF_DOT(PDM, Pic.pfnGetInterruptR3);
     366    GEN_CHECK_OFF_DOT(PDM, Pic.pDevInsR0);
     367    GEN_CHECK_OFF_DOT(PDM, Pic.pfnSetIrqR0);
     368    GEN_CHECK_OFF_DOT(PDM, Pic.pfnGetInterruptR0);
     369    GEN_CHECK_OFF_DOT(PDM, Pic.pDevInsRC);
     370    GEN_CHECK_OFF_DOT(PDM, Pic.pfnSetIrqRC);
     371    GEN_CHECK_OFF_DOT(PDM, Pic.pfnGetInterruptRC);
    324372    GEN_CHECK_OFF(PDM, Apic);
    325     GEN_CHECK_OFF(PDM, Apic.pDevInsR3);
    326     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR3);
    327     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR3);
    328     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR3);
    329     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR3);
    330     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRR3);
    331     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRR3);
    332     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR3);
    333     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR3);
    334     GEN_CHECK_OFF(PDM, Apic.pDevInsR0);
    335     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR0);
    336     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR0);
    337     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR0);
    338     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR0);
    339     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR0);
    340     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRR0);
    341     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRR0);
    342     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR0);
    343     GEN_CHECK_OFF(PDM, Apic.pDevInsRC);
    344     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptRC);
    345     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseRC);
    346     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseRC);
    347     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRRC);
    348     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRRC);
    349     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRRC);
    350     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRRC);
    351     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverRC);
     373    GEN_CHECK_OFF_DOT(PDM, Apic.pDevInsR3);
     374    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetInterruptR3);
     375    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetBaseR3);
     376    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetBaseR3);
     377    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetTPRR3);
     378    GEN_CHECK_OFF_DOT(PDM, Apic.pfnWriteMSRR3);
     379    GEN_CHECK_OFF_DOT(PDM, Apic.pfnReadMSRR3);
     380    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetTPRR3);
     381    GEN_CHECK_OFF_DOT(PDM, Apic.pfnBusDeliverR3);
     382    GEN_CHECK_OFF_DOT(PDM, Apic.pDevInsR0);
     383    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetInterruptR0);
     384    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetBaseR0);
     385    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetBaseR0);
     386    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetTPRR0);
     387    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetTPRR0);
     388    GEN_CHECK_OFF_DOT(PDM, Apic.pfnWriteMSRR0);
     389    GEN_CHECK_OFF_DOT(PDM, Apic.pfnReadMSRR0);
     390    GEN_CHECK_OFF_DOT(PDM, Apic.pfnBusDeliverR0);
     391    GEN_CHECK_OFF_DOT(PDM, Apic.pDevInsRC);
     392    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetInterruptRC);
     393    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetBaseRC);
     394    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetBaseRC);
     395    GEN_CHECK_OFF_DOT(PDM, Apic.pfnSetTPRRC);
     396    GEN_CHECK_OFF_DOT(PDM, Apic.pfnGetTPRRC);
     397    GEN_CHECK_OFF_DOT(PDM, Apic.pfnWriteMSRRC);
     398    GEN_CHECK_OFF_DOT(PDM, Apic.pfnReadMSRRC);
     399    GEN_CHECK_OFF_DOT(PDM, Apic.pfnBusDeliverRC);
    352400    GEN_CHECK_OFF(PDM, IoApic);
    353     GEN_CHECK_OFF(PDM, IoApic.pDevInsR3);
    354     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR3);
    355     GEN_CHECK_OFF(PDM, IoApic.pDevInsR0);
    356     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR0);
    357     GEN_CHECK_OFF(PDM, IoApic.pDevInsRC);
    358     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqRC);
     401    GEN_CHECK_OFF_DOT(PDM, IoApic.pDevInsR3);
     402    GEN_CHECK_OFF_DOT(PDM, IoApic.pfnSetIrqR3);
     403    GEN_CHECK_OFF_DOT(PDM, IoApic.pDevInsR0);
     404    GEN_CHECK_OFF_DOT(PDM, IoApic.pfnSetIrqR0);
     405    GEN_CHECK_OFF_DOT(PDM, IoApic.pDevInsRC);
     406    GEN_CHECK_OFF_DOT(PDM, IoApic.pfnSetIrqRC);
    359407    GEN_CHECK_OFF(PDM, pDmac);
    360408    GEN_CHECK_OFF(PDM, pRtc);
     
    442490    GEN_CHECK_OFF(PDMQUEUE, enmType);
    443491    GEN_CHECK_OFF(PDMQUEUE, u);
    444     GEN_CHECK_OFF(PDMQUEUE, u.Dev.pfnCallback);
    445     GEN_CHECK_OFF(PDMQUEUE, u.Dev.pDevIns);
    446     GEN_CHECK_OFF(PDMQUEUE, u.Drv.pfnCallback);
    447     GEN_CHECK_OFF(PDMQUEUE, u.Drv.pDrvIns);
    448     GEN_CHECK_OFF(PDMQUEUE, u.Int.pfnCallback);
    449     GEN_CHECK_OFF(PDMQUEUE, u.Ext.pfnCallback);
    450     GEN_CHECK_OFF(PDMQUEUE, u.Ext.pvUser);
     492    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Dev.pfnCallback);
     493    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Dev.pDevIns);
     494    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Drv.pfnCallback);
     495    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Drv.pDrvIns);
     496    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Int.pfnCallback);
     497    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Ext.pfnCallback);
     498    GEN_CHECK_OFF_DOT(PDMQUEUE, u.Ext.pvUser);
    451499    GEN_CHECK_OFF(PDMQUEUE, pVMR3);
    452500    GEN_CHECK_OFF(PDMQUEUE, pVMR0);
     
    468516    GEN_CHECK_OFF(PDMQUEUE, aFreeItems);
    469517    GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1]);
    470     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[0].pItemR3);
    471     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[0].pItemR0);
    472     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1].pItemRC);
     518    GEN_CHECK_OFF_DOT(PDMQUEUE, aFreeItems[0].pItemR3);
     519    GEN_CHECK_OFF_DOT(PDMQUEUE, aFreeItems[0].pItemR0);
     520    GEN_CHECK_OFF_DOT(PDMQUEUE, aFreeItems[1].pItemRC);
    473521    GEN_CHECK_SIZE(PDMDEVHLPTASK);
    474522    GEN_CHECK_OFF(PDMDEVHLPTASK, Core);
     
    476524    GEN_CHECK_OFF(PDMDEVHLPTASK, enmOp);
    477525    GEN_CHECK_OFF(PDMDEVHLPTASK, u);
    478     GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iIrq);
    479     GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iLevel);
     526    GEN_CHECK_OFF_DOT(PDMDEVHLPTASK, u.SetIRQ.iIrq);
     527    GEN_CHECK_OFF_DOT(PDMDEVHLPTASK, u.SetIRQ.iLevel);
    480528
    481529    GEN_CHECK_SIZE(PGM);
     
    607655    GEN_CHECK_OFF(PGM, fNoMorePhysWrites);
    608656    GEN_CHECK_OFF(PGM, ChunkR3Map);
    609     GEN_CHECK_OFF(PGM, ChunkR3Map.pTree);
    610     GEN_CHECK_OFF(PGM, ChunkR3Map.Tlb);
    611     GEN_CHECK_OFF(PGM, ChunkR3Map.c);
    612     GEN_CHECK_OFF(PGM, ChunkR3Map.cMax);
    613     GEN_CHECK_OFF(PGM, ChunkR3Map.iNow);
     657    GEN_CHECK_OFF_DOT(PGM, ChunkR3Map.pTree);
     658    GEN_CHECK_OFF_DOT(PGM, ChunkR3Map.Tlb);
     659    GEN_CHECK_OFF_DOT(PGM, ChunkR3Map.c);
     660    GEN_CHECK_OFF_DOT(PGM, ChunkR3Map.cMax);
     661    GEN_CHECK_OFF_DOT(PGM, ChunkR3Map.iNow);
    614662    GEN_CHECK_OFF(PGM, PhysTlbHC);
    615     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[0]);
    616     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1]);
    617     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].GCPhys);
    618     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pMap);
    619     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pPage);
    620     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pv);
     663    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[0]);
     664    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[1]);
     665    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[1].GCPhys);
     666    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[1].pMap);
     667    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[1].pPage);
     668    GEN_CHECK_OFF_DOT(PGM, PhysTlbHC.aEntries[1].pv);
    621669    GEN_CHECK_OFF(PGM, HCPhysZeroPg);
    622670    GEN_CHECK_OFF(PGM, pvZeroPgR3);
     
    625673    GEN_CHECK_OFF(PGM, cHandyPages);
    626674    GEN_CHECK_OFF(PGM, aHandyPages);
    627     GEN_CHECK_OFF(PGM, aHandyPages[1]);
    628     GEN_CHECK_OFF(PGM, aHandyPages[1].HCPhysGCPhys);
    629     GEN_CHECK_OFF(PGM, aHandyPages[1].idPage);
    630     GEN_CHECK_OFF(PGM, aHandyPages[1].idSharedPage);
     675    GEN_CHECK_OFF_DOT(PGM, aHandyPages[1]);
     676    GEN_CHECK_OFF_DOT(PGM, aHandyPages[1].HCPhysGCPhys);
     677    GEN_CHECK_OFF_DOT(PGM, aHandyPages[1].idPage);
     678    GEN_CHECK_OFF_DOT(PGM, aHandyPages[1].idSharedPage);
    631679    GEN_CHECK_OFF(PGM, cAllPages);
    632680    GEN_CHECK_OFF(PGM, cPrivatePages);
     
    656704    GEN_CHECK_OFF(PGMMAPPING, pszDesc);
    657705    GEN_CHECK_OFF(PGMMAPPING, cPTs);
    658     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPT);
    659     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR3);
    660     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR0);
    661     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTRC);
    662     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT0);
    663     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT1);
    664     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR3);
    665     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsRC);
    666     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR0);
     706    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].HCPhysPT);
     707    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].pPTR3);
     708    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].pPTR0);
     709    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].pPTRC);
     710    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].HCPhysPaePT0);
     711    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].HCPhysPaePT1);
     712    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].paPaePTsR3);
     713    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].paPaePTsRC);
     714    GEN_CHECK_OFF_DOT(PGMMAPPING, aPTs[1].paPaePTsR0);
    667715    GEN_CHECK_SIZE(PGMPHYSHANDLER);
    668716    GEN_CHECK_OFF(PGMPHYSHANDLER, Core);
     
    692740    GEN_CHECK_OFF(PGMVIRTHANDLER, aPhysToVirt);
    693741    GEN_CHECK_SIZE(PGMPAGE);
    694     GEN_CHECK_OFF(PGMPAGE, s.cReadLocksY);
    695     GEN_CHECK_OFF(PGMPAGE, s.cWriteLocksY);
    696     GEN_CHECK_OFF(PGMPAGE, s.u16TrackingY);
     742    GEN_CHECK_OFF_DOT(PGMPAGE, s.cReadLocksY);
     743    GEN_CHECK_OFF_DOT(PGMPAGE, s.cWriteLocksY);
     744    GEN_CHECK_OFF_DOT(PGMPAGE, s.u16TrackingY);
    697745    GEN_CHECK_SIZE(PGMRAMRANGE);
    698746    GEN_CHECK_OFF(PGMRAMRANGE, pNextR3);
     
    825873    GEN_CHECK_OFF(PGMRCDYNMAPENTRY, pvPage);
    826874    GEN_CHECK_OFF(PGMRCDYNMAPENTRY, cRefs);
    827     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, uPte.pLegacy);
    828     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, uPte.pPae);
     875    GEN_CHECK_OFF_DOT(PGMRCDYNMAPENTRY, uPte.pLegacy);
     876    GEN_CHECK_OFF_DOT(PGMRCDYNMAPENTRY, uPte.pPae);
    829877    GEN_CHECK_OFF(PGMMAPSETENTRY, pvPage);
    830878    GEN_CHECK_OFF(PGMMAPSETENTRY, iPage);
     
    849897    GEN_CHECK_OFF(REMHANDLERNOTIFICATION, enmKind);
    850898    GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u);
    851     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.GCPhys);
    852     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.cb);
    853     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.enmType);
    854     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.fHasHCHandler);
    855     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.GCPhys);
    856     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.cb);
    857     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.enmType);
    858     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fHasHCHandler);
    859     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fRestoreAsRAM);
    860     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysOld);
    861     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysNew);
    862     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.cb);
    863     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.enmType);
    864     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.fHasHCHandler);
    865     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.fRestoreAsRAM);
     899    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalRegister.GCPhys);
     900    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalRegister.cb);
     901    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalRegister.enmType);
     902    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalRegister.fHasHCHandler);
     903    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalDeregister.GCPhys);
     904    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalDeregister.cb);
     905    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalDeregister.enmType);
     906    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fHasHCHandler);
     907    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fRestoreAsRAM);
     908    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysOld);
     909    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysNew);
     910    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.cb);
     911    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.enmType);
     912    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.fHasHCHandler);
     913    GEN_CHECK_OFF_DOT(REMHANDLERNOTIFICATION, u.PhysicalModify.fRestoreAsRAM);
    866914    GEN_CHECK_OFF(REMHANDLERNOTIFICATION, idxSelf);
    867915    GEN_CHECK_OFF(REMHANDLERNOTIFICATION, idxNext);
     
    914962    GEN_CHECK_OFF(TM, u64VirtualRawPrev);
    915963    GEN_CHECK_OFF(TM, VirtualGetRawDataR3);
    916     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pu64Prev);
    917     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnBad);
    918     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnRediscover);
    919     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.c1nsSteps);
    920     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cBadPrev);
    921     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cExpired);
    922     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cUpdateRaces);
     964    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.pu64Prev);
     965    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.pfnBad);
     966    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.pfnRediscover);
     967    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.c1nsSteps);
     968    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.cBadPrev);
     969    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.cExpired);
     970    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR3.cUpdateRaces);
    923971    GEN_CHECK_OFF(TM, VirtualGetRawDataR0);
    924     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pu64Prev);
    925     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnBad);
    926     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnRediscover);
    927     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.c1nsSteps);
    928     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cBadPrev);
    929     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cExpired);
    930     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cUpdateRaces);
     972    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.pu64Prev);
     973    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.pfnBad);
     974    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.pfnRediscover);
     975    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.c1nsSteps);
     976    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.cBadPrev);
     977    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.cExpired);
     978    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataR0.cUpdateRaces);
    931979    GEN_CHECK_OFF(TM, VirtualGetRawDataRC);
    932     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pu64Prev);
    933     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pfnBad);
    934     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pfnRediscover);
    935     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.c1nsSteps);
    936     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cBadPrev);
    937     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cExpired);
    938     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cUpdateRaces);
     980    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.pu64Prev);
     981    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.pfnBad);
     982    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.pfnRediscover);
     983    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.c1nsSteps);
     984    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.cBadPrev);
     985    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.cExpired);
     986    GEN_CHECK_OFF_DOT(TM, VirtualGetRawDataRC.cUpdateRaces);
    939987    GEN_CHECK_OFF(TM, pfnVirtualGetRawR3);
    940988    GEN_CHECK_OFF(TM, pfnVirtualGetRawR0);
     
    950998    GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpGiveUpThreshold);
    951999    GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods);
    952     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u64Start);
    953     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u32Percentage);
    954     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u64Start);
    955     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u32Percentage);
     1000    GEN_CHECK_OFF_DOT(TM, aVirtualSyncCatchUpPeriods[0].u64Start);
     1001    GEN_CHECK_OFF_DOT(TM, aVirtualSyncCatchUpPeriods[0].u32Percentage);
     1002    GEN_CHECK_OFF_DOT(TM, aVirtualSyncCatchUpPeriods[1].u64Start);
     1003    GEN_CHECK_OFF_DOT(TM, aVirtualSyncCatchUpPeriods[1].u32Percentage);
    9561004    GEN_CHECK_OFF(TM, pTimer);
    9571005    GEN_CHECK_OFF(TM, u32TimerMillies);
     
    9691017    GEN_CHECK_OFF(TMTIMER, enmClock);
    9701018    GEN_CHECK_OFF(TMTIMER, enmType);
    971     GEN_CHECK_OFF(TMTIMER, u.Dev.pfnTimer);
    972     GEN_CHECK_OFF(TMTIMER, u.Dev.pDevIns);
    973     GEN_CHECK_OFF(TMTIMER, u.Drv.pfnTimer);
    974     GEN_CHECK_OFF(TMTIMER, u.Drv.pDrvIns);
    975     GEN_CHECK_OFF(TMTIMER, u.Internal.pfnTimer);
    976     GEN_CHECK_OFF(TMTIMER, u.External.pfnTimer);
     1019    GEN_CHECK_OFF_DOT(TMTIMER, u.Dev.pfnTimer);
     1020    GEN_CHECK_OFF_DOT(TMTIMER, u.Dev.pDevIns);
     1021    GEN_CHECK_OFF_DOT(TMTIMER, u.Drv.pfnTimer);
     1022    GEN_CHECK_OFF_DOT(TMTIMER, u.Drv.pDrvIns);
     1023    GEN_CHECK_OFF_DOT(TMTIMER, u.Internal.pfnTimer);
     1024    GEN_CHECK_OFF_DOT(TMTIMER, u.External.pfnTimer);
    9771025    GEN_CHECK_OFF(TMTIMER, enmState);
    9781026    GEN_CHECK_OFF(TMTIMER, offScheduleNext);
     
    10051053    GEN_CHECK_OFF(VMM, enmSwitcher);
    10061054    GEN_CHECK_OFF(VMM, aoffSwitchers);
    1007     GEN_CHECK_OFF(VMM, aoffSwitchers[1]);
     1055    GEN_CHECK_OFF_DOT(VMM, aoffSwitchers[1]);
    10081056    GEN_CHECK_OFF(VMM, pfnHostToGuestR0);
    10091057    GEN_CHECK_OFF(VMM, pfnGuestToHostRC);
     
    10501098    GEN_CHECK_OFF(VMMCPU, u64CallRing3Arg);
    10511099    GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0);
    1052     GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0.SpCheck);
    1053     GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0.SpResume);
     1100    GEN_CHECK_OFF_DOT(VMMCPU, CallRing3JmpBufR0.SpCheck);
     1101    GEN_CHECK_OFF_DOT(VMMCPU, CallRing3JmpBufR0.SpResume);
    10541102
    10551103    GEN_CHECK_SIZE(RTPINGPONG);
     
    10761124    GEN_CHECK_OFF(CSAM, pPDGCBitmapHC);
    10771125    GEN_CHECK_OFF(CSAM, savedstate);
    1078     GEN_CHECK_OFF(CSAM, savedstate.pSSM);
    1079     GEN_CHECK_OFF(CSAM, savedstate.cPageRecords);
    1080     GEN_CHECK_OFF(CSAM, savedstate.cPatchPageRecords);
     1126    GEN_CHECK_OFF_DOT(CSAM, savedstate.pSSM);
     1127    GEN_CHECK_OFF_DOT(CSAM, savedstate.cPageRecords);
     1128    GEN_CHECK_OFF_DOT(CSAM, savedstate.cPatchPageRecords);
    10811129    GEN_CHECK_OFF(CSAM, cDirtyPages);
    10821130    GEN_CHECK_OFF(CSAM, pvDirtyBasePage);
    1083     GEN_CHECK_OFF(CSAM, pvDirtyBasePage[1]);
    1084     GEN_CHECK_OFF(CSAM, pvDirtyBasePage[CSAM_MAX_DIRTY_PAGES - 1]);
     1131    GEN_CHECK_OFF_DOT(CSAM, pvDirtyBasePage[1]);
     1132    GEN_CHECK_OFF_DOT(CSAM, pvDirtyBasePage[CSAM_MAX_DIRTY_PAGES - 1]);
    10851133    GEN_CHECK_OFF(CSAM, pvDirtyFaultPage);
    1086     GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[1]);
    1087     GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[CSAM_MAX_DIRTY_PAGES - 1]);
     1134    GEN_CHECK_OFF_DOT(CSAM, pvDirtyFaultPage[1]);
     1135    GEN_CHECK_OFF_DOT(CSAM, pvDirtyFaultPage[CSAM_MAX_DIRTY_PAGES - 1]);
    10881136    GEN_CHECK_OFF(CSAM, pvCallInstruction);
    10891137    GEN_CHECK_OFF(CSAM, iCallInstruction);
     
    11251173    GEN_CHECK_OFF(PATM, pvFaultMonitor);
    11261174    GEN_CHECK_OFF(PATM, mmio);
    1127     GEN_CHECK_OFF(PATM, mmio.GCPhys);
    1128     GEN_CHECK_OFF(PATM, mmio.pCachedData);
     1175    GEN_CHECK_OFF_DOT(PATM, mmio.GCPhys);
     1176    GEN_CHECK_OFF_DOT(PATM, mmio.pCachedData);
    11291177    GEN_CHECK_OFF(PATM, savedstate);
    1130     GEN_CHECK_OFF(PATM, savedstate.pSSM);
    1131     GEN_CHECK_OFF(PATM, savedstate.cPatches);
     1178    GEN_CHECK_OFF_DOT(PATM, savedstate.pSSM);
     1179    GEN_CHECK_OFF_DOT(PATM, savedstate.cPatches);
    11321180    GEN_CHECK_OFF(PATM, StatNrOpcodeRead);
    11331181    GEN_CHECK_OFF(PATM, StatU32FunctionMaxSlotsUsed);
     
    11451193    GEN_CHECK_OFF(PATMGCSTATE, GCPtrInhibitInterrupts);
    11461194    GEN_CHECK_OFF(PATMGCSTATE, Restore);
    1147     GEN_CHECK_OFF(PATMGCSTATE, Restore.uEAX);
    1148     GEN_CHECK_OFF(PATMGCSTATE, Restore.uECX);
    1149     GEN_CHECK_OFF(PATMGCSTATE, Restore.uEDI);
    1150     GEN_CHECK_OFF(PATMGCSTATE, Restore.eFlags);
    1151     GEN_CHECK_OFF(PATMGCSTATE, Restore.uFlags);
     1195    GEN_CHECK_OFF_DOT(PATMGCSTATE, Restore.uEAX);
     1196    GEN_CHECK_OFF_DOT(PATMGCSTATE, Restore.uECX);
     1197    GEN_CHECK_OFF_DOT(PATMGCSTATE, Restore.uEDI);
     1198    GEN_CHECK_OFF_DOT(PATMGCSTATE, Restore.eFlags);
     1199    GEN_CHECK_OFF_DOT(PATMGCSTATE, Restore.uFlags);
    11521200    GEN_CHECK_SIZE(PATMTREES);
    11531201    GEN_CHECK_OFF(PATMTREES, PatchTree);
     
    11851233    GEN_CHECK_OFF(PATCHINFO, nrPatch2GuestRecs);
    11861234    GEN_CHECK_OFF(PATCHINFO, unused);
    1187     GEN_CHECK_OFF(PATCHINFO, unused.pPatchLocStartHC);
    1188     GEN_CHECK_OFF(PATCHINFO, unused.pPatchLocEndHC);
    1189     GEN_CHECK_OFF(PATCHINFO, unused.pGuestLoc);
    1190     GEN_CHECK_OFF(PATCHINFO, unused.opsize);
     1235    GEN_CHECK_OFF_DOT(PATCHINFO, unused.pPatchLocStartHC);
     1236    GEN_CHECK_OFF_DOT(PATCHINFO, unused.pPatchLocEndHC);
     1237    GEN_CHECK_OFF_DOT(PATCHINFO, unused.pGuestLoc);
     1238    GEN_CHECK_OFF_DOT(PATCHINFO, unused.opsize);
    11911239    GEN_CHECK_OFF(PATCHINFO, pTempInfo);
    11921240    GEN_CHECK_OFF(PATCHINFO, pTrampolinePatchesHead);
     
    12031251    GEN_CHECK_OFF(PATMPATCHPAGE, cMaxPatches);
    12041252    GEN_CHECK_OFF(PATMPATCHPAGE, aPatch);
    1205 
    1206     return (0);
    1207 }
    1208 
     1253#endif
     1254
     1255
     1256    GEN_CHECK_SIZE(VM);
     1257    GEN_CHECK_OFF(VM, enmVMState);
     1258    GEN_CHECK_OFF(VM, fGlobalForcedActions);
     1259    GEN_CHECK_OFF(VM, paVMPagesR3);
     1260    GEN_CHECK_OFF(VM, pSession);
     1261    GEN_CHECK_OFF(VM, pUVM);
     1262    GEN_CHECK_OFF(VM, pVMR3);
     1263    GEN_CHECK_OFF(VM, pVMR0);
     1264    GEN_CHECK_OFF(VM, pVMRC);
     1265    GEN_CHECK_OFF(VM, hSelf);
     1266    GEN_CHECK_OFF(VM, cCpus);
     1267    GEN_CHECK_OFF(VM, uCpuExecutionCap);
     1268    GEN_CHECK_OFF(VM, cbSelf);
     1269    GEN_CHECK_OFF(VM, offVMCPU);
     1270    GEN_CHECK_OFF(VM, pfnVMMGCGuestToHostAsmGuestCtx);
     1271    GEN_CHECK_OFF(VM, pfnVMMGCGuestToHostAsmHyperCtx);
     1272    GEN_CHECK_OFF(VM, pfnVMMGCGuestToHostAsm);
     1273    GEN_CHECK_OFF(VM, fRecompileUser);
     1274    GEN_CHECK_OFF(VM, fRecompileSupervisor);
     1275    GEN_CHECK_OFF(VM, fPATMEnabled);
     1276    GEN_CHECK_OFF(VM, fCSAMEnabled);
     1277    GEN_CHECK_OFF(VM, fHWACCMEnabled);
     1278    GEN_CHECK_OFF(VM, fHwVirtExtForced);
     1279    GEN_CHECK_OFF(VM, fFaultTolerantMaster);
     1280    GEN_CHECK_OFF(VM, fUseLargePages);
     1281    GEN_CHECK_OFF(VM, hTraceBufRC);
     1282    GEN_CHECK_OFF(VM, uPadding3);
     1283    GEN_CHECK_OFF(VM, hTraceBufR3);
     1284    GEN_CHECK_OFF(VM, hTraceBufR0);
     1285    GEN_CHECK_OFF(VM, StatTotalQemuToGC);
     1286    GEN_CHECK_OFF(VM, StatTotalGCToQemu);
     1287    GEN_CHECK_OFF(VM, StatTotalInGC);
     1288    GEN_CHECK_OFF(VM, StatTotalInQemu);
     1289    GEN_CHECK_OFF(VM, StatSwitcherToGC);
     1290    GEN_CHECK_OFF(VM, StatSwitcherToHC);
     1291    GEN_CHECK_OFF(VM, StatSwitcherSaveRegs);
     1292    GEN_CHECK_OFF(VM, StatSwitcherSysEnter);
     1293    GEN_CHECK_OFF(VM, StatSwitcherDebug);
     1294    GEN_CHECK_OFF(VM, StatSwitcherCR0);
     1295    GEN_CHECK_OFF(VM, StatSwitcherCR4);
     1296    GEN_CHECK_OFF(VM, StatSwitcherJmpCR3);
     1297    GEN_CHECK_OFF(VM, StatSwitcherRstrRegs);
     1298    GEN_CHECK_OFF(VM, StatSwitcherLgdt);
     1299    GEN_CHECK_OFF(VM, StatSwitcherLidt);
     1300    GEN_CHECK_OFF(VM, StatSwitcherLldt);
     1301    GEN_CHECK_OFF(VM, StatSwitcherTSS);
     1302    GEN_CHECK_OFF(VM, cpum);
     1303    GEN_CHECK_OFF(VM, vmm);
     1304    GEN_CHECK_OFF(VM, pgm);
     1305    GEN_CHECK_OFF(VM, hwaccm);
     1306    GEN_CHECK_OFF(VM, trpm);
     1307    GEN_CHECK_OFF(VM, selm);
     1308    GEN_CHECK_OFF(VM, mm);
     1309    GEN_CHECK_OFF(VM, pdm);
     1310    GEN_CHECK_OFF(VM, iom);
     1311    GEN_CHECK_OFF(VM, patm);
     1312    GEN_CHECK_OFF(VM, csam);
     1313    GEN_CHECK_OFF(VM, em);
     1314    GEN_CHECK_OFF(VM, tm);
     1315    GEN_CHECK_OFF(VM, dbgf);
     1316    GEN_CHECK_OFF(VM, ssm);
     1317    GEN_CHECK_OFF(VM, ftm);
     1318    GEN_CHECK_OFF(VM, rem);
     1319    GEN_CHECK_OFF(VM, vm);
     1320    GEN_CHECK_OFF(VM, cfgm);
     1321    GEN_CHECK_OFF(VM, aCpus);
     1322
     1323
     1324    GEN_CHECK_SIZE(VMCPU);
     1325    GEN_CHECK_OFF(VMCPU, fLocalForcedActions);
     1326    GEN_CHECK_OFF(VMCPU, enmState);
     1327    GEN_CHECK_OFF(VMCPU, pUVCpu);
     1328    GEN_CHECK_OFF(VMCPU, pVMR3);
     1329    GEN_CHECK_OFF(VMCPU, pVMR0);
     1330    GEN_CHECK_OFF(VMCPU, pVMRC);
     1331    GEN_CHECK_OFF(VMCPU, idCpu);
     1332    GEN_CHECK_OFF(VMCPU, hNativeThread);
     1333    GEN_CHECK_OFF(VMCPU, hNativeThreadR0);
     1334    GEN_CHECK_OFF(VMCPU, idHostCpu);
     1335    GEN_CHECK_OFF(VMCPU, fTraceGroups);
     1336    GEN_CHECK_OFF(VMCPU, uAdHoc);
     1337    GEN_CHECK_OFF(VMCPU, aStatAdHoc);
     1338    GEN_CHECK_OFF(VMCPU, cpum);
     1339    GEN_CHECK_OFF(VMCPU, hwaccm);
     1340    GEN_CHECK_OFF(VMCPU, em);
     1341    GEN_CHECK_OFF(VMCPU, iem);
     1342    GEN_CHECK_OFF(VMCPU, trpm);
     1343    GEN_CHECK_OFF(VMCPU, tm);
     1344    GEN_CHECK_OFF(VMCPU, vmm);
     1345    GEN_CHECK_OFF(VMCPU, pdm);
     1346    GEN_CHECK_OFF(VMCPU, iom);
     1347    GEN_CHECK_OFF(VMCPU, dbgf);
     1348    GEN_CHECK_OFF(VMCPU, pgm);
     1349
  • trunk/src/VBox/VMM/testcase/tstVMStructRC.cpp

    r40170 r41259  
    8787#include <stdio.h>
    8888
    89 #define GEN_CHECK_SIZE(s)   printf("    CHECK_SIZE(%s, %u);\n", #s, (unsigned)sizeof(s))
    90 #define GEN_CHECK_OFF(s, m) printf("    CHECK_OFF(%s, %u, %s);\n", #s, (unsigned)RT_OFFSETOF(s, m), #m)
    9189
    9290int main()
    9391{
    94     GEN_CHECK_SIZE(CFGM);
    95 
    96     GEN_CHECK_SIZE(CPUM);    // has .mac
    97     GEN_CHECK_SIZE(CPUMCPU); // has .mac
    98     GEN_CHECK_SIZE(CPUMHOSTCTX);
    99     GEN_CHECK_SIZE(CPUMCTX);
    100     GEN_CHECK_SIZE(CPUMCTXMSRS);
    101     GEN_CHECK_SIZE(CPUMCTXCORE);
    102     GEN_CHECK_SIZE(STAMRATIOU32);
    103     GEN_CHECK_SIZE(AVLOHCPHYSNODECORE);
    104     GEN_CHECK_SIZE(AVLOGCPHYSNODECORE);
    105     GEN_CHECK_SIZE(AVLROGCPHYSNODECORE);
    106     GEN_CHECK_SIZE(AVLOGCPTRNODECORE);
    107     GEN_CHECK_SIZE(AVLROGCPTRNODECORE);
    108     GEN_CHECK_SIZE(AVLOIOPORTNODECORE);
    109     GEN_CHECK_SIZE(AVLROIOPORTNODECORE);
    110 
    111     GEN_CHECK_SIZE(DBGF);
    112     GEN_CHECK_OFF(DBGF, offVM);
    113     GEN_CHECK_OFF(DBGF, fAttached);
    114     GEN_CHECK_OFF(DBGF, fStoppedInHyper);
    115     GEN_CHECK_OFF(DBGF, PingPong);
    116     GEN_CHECK_OFF(DBGF, DbgEvent);
    117     GEN_CHECK_OFF(DBGF, enmVMMCmd);
    118     GEN_CHECK_OFF(DBGF, VMMCmdData);
    119     GEN_CHECK_OFF(DBGF, pInfoFirst);
    120     GEN_CHECK_OFF(DBGF, InfoCritSect);
    121     GEN_CHECK_OFF(DBGF, SymbolTree);
    122     GEN_CHECK_OFF(DBGF, pSymbolSpace);
    123     GEN_CHECK_OFF(DBGF, fSymInited);
    124     GEN_CHECK_OFF(DBGF, cHwBreakpoints);
    125     GEN_CHECK_OFF(DBGF, cBreakpoints);
    126     GEN_CHECK_OFF(DBGF, aHwBreakpoints);
    127     GEN_CHECK_OFF(DBGF, aBreakpoints);
    128     GEN_CHECK_OFF(DBGF, hAsDbLock);
    129     GEN_CHECK_OFF(DBGF, hRegDbLock);
    130     GEN_CHECK_OFF(DBGF, RegSetSpace);
    131     GEN_CHECK_OFF(DBGF, pCurOS);
    132     GEN_CHECK_SIZE(DBGFEVENT);
    133 
    134     GEN_CHECK_SIZE(DBGFCPU);
    135     GEN_CHECK_OFF(DBGFCPU, iActiveBp);
    136     GEN_CHECK_OFF(DBGFCPU, fSingleSteppingRaw);
    137     GEN_CHECK_OFF(DBGFCPU, pGuestRegSet);
    138     GEN_CHECK_OFF(DBGFCPU, pHyperRegSet);
    139 
    140     GEN_CHECK_SIZE(EM);
    141     GEN_CHECK_OFF(EM, offVM);
    142     GEN_CHECK_OFF(EMCPU, pCtx);
    143     GEN_CHECK_OFF(EMCPU, enmState);
    144     GEN_CHECK_OFF(EMCPU, fForceRAW);
    145     GEN_CHECK_OFF(EMCPU, u.achPaddingFatalLongJump);
    146     GEN_CHECK_OFF(EMCPU, DisState);
    147     GEN_CHECK_OFF(EMCPU, StatForcedActions);
    148     GEN_CHECK_OFF(EMCPU, StatTotalClis);
    149     GEN_CHECK_OFF(EMCPU, pStatsR3);
    150     GEN_CHECK_OFF(EMCPU, pStatsR0);
    151     GEN_CHECK_OFF(EMCPU, pStatsRC);
    152     GEN_CHECK_OFF(EMCPU, pCliStatTree);
    153 
    154     GEN_CHECK_SIZE(IEMCPU);
    155     GEN_CHECK_OFF(IEMCPU, pCtxR0);
    156     GEN_CHECK_OFF(IEMCPU, pCtxR3);
    157     GEN_CHECK_OFF(IEMCPU, pCtxRC);
    158     GEN_CHECK_OFF(IEMCPU, offVM);
    159     GEN_CHECK_OFF(IEMCPU, offVMCpu);
    160     GEN_CHECK_OFF(IEMCPU, enmCpuMode);
    161     GEN_CHECK_OFF(IEMCPU, fPrefixes);
    162     GEN_CHECK_OFF(IEMCPU, abOpcode);
    163     GEN_CHECK_OFF(IEMCPU, cActiveMappings);
    164     GEN_CHECK_OFF(IEMCPU, iNextMapping);
    165     GEN_CHECK_OFF(IEMCPU, aMemMappings);
    166     GEN_CHECK_OFF(IEMCPU, aMemMappings[1]);
    167     GEN_CHECK_OFF(IEMCPU, aBounceBuffers);
    168     GEN_CHECK_OFF(IEMCPU, aBounceBuffers[1]);
    169     GEN_CHECK_OFF(IEMCPU, aMemBbMappings);
    170     GEN_CHECK_OFF(IEMCPU, aMemBbMappings[1]);
    171 
    172     GEN_CHECK_SIZE(IOM);
    173     GEN_CHECK_OFF(IOM, pTreesRC);
    174     GEN_CHECK_OFF(IOM, pTreesR3);
    175     GEN_CHECK_OFF(IOM, pTreesR0);
    176     GEN_CHECK_OFF(IOM, pMMIORangeLastR3);
    177     GEN_CHECK_OFF(IOM, pMMIOStatsLastR3);
    178     GEN_CHECK_OFF(IOM, pMMIORangeLastR0);
    179     GEN_CHECK_OFF(IOM, pMMIOStatsLastR0);
    180     GEN_CHECK_OFF(IOM, pMMIORangeLastRC);
    181     GEN_CHECK_OFF(IOM, pMMIOStatsLastRC);
    182     GEN_CHECK_OFF(IOM, pRangeLastReadR0);
    183     GEN_CHECK_OFF(IOM, pRangeLastReadRC);
    184 
    185     GEN_CHECK_SIZE(IOMCPU);
    186     GEN_CHECK_OFF(IOMCPU, DisState);
    187     GEN_CHECK_OFF(IOMCPU, Dummy[0]);
    188 
    189     GEN_CHECK_SIZE(IOMMMIORANGE);
    190     GEN_CHECK_OFF(IOMMMIORANGE, GCPhys);
    191     GEN_CHECK_OFF(IOMMMIORANGE, cb);
    192     GEN_CHECK_OFF(IOMMMIORANGE, cRefs);
    193     GEN_CHECK_OFF(IOMMMIORANGE, fFlags);
    194     GEN_CHECK_OFF(IOMMMIORANGE, pszDesc);
    195     GEN_CHECK_OFF(IOMMMIORANGE, pvUserR3);
    196     GEN_CHECK_OFF(IOMMMIORANGE, pDevInsR3);
    197     GEN_CHECK_OFF(IOMMMIORANGE, pfnWriteCallbackR3);
    198     GEN_CHECK_OFF(IOMMMIORANGE, pfnReadCallbackR3);
    199     GEN_CHECK_OFF(IOMMMIORANGE, pfnFillCallbackR3);
    200     GEN_CHECK_OFF(IOMMMIORANGE, pvUserR0);
    201     GEN_CHECK_OFF(IOMMMIORANGE, pDevInsR0);
    202     GEN_CHECK_OFF(IOMMMIORANGE, pfnWriteCallbackR0);
    203     GEN_CHECK_OFF(IOMMMIORANGE, pfnReadCallbackR0);
    204     GEN_CHECK_OFF(IOMMMIORANGE, pfnFillCallbackR0);
    205     GEN_CHECK_OFF(IOMMMIORANGE, pvUserRC);
    206     GEN_CHECK_OFF(IOMMMIORANGE, pDevInsRC);
    207     GEN_CHECK_OFF(IOMMMIORANGE, pfnWriteCallbackRC);
    208     GEN_CHECK_OFF(IOMMMIORANGE, pfnReadCallbackRC);
    209     GEN_CHECK_OFF(IOMMMIORANGE, pfnFillCallbackRC);
    210 
    211     GEN_CHECK_SIZE(IOMMMIOSTATS);
    212     GEN_CHECK_OFF(IOMMMIOSTATS, Accesses);
    213     GEN_CHECK_OFF(IOMMMIOSTATS, WriteRZToR3);
    214 
    215     GEN_CHECK_SIZE(IOMIOPORTRANGER0);
    216     GEN_CHECK_OFF(IOMIOPORTRANGER0, Port);
    217     GEN_CHECK_OFF(IOMIOPORTRANGER0, cPorts);
    218     GEN_CHECK_OFF(IOMIOPORTRANGER0, pvUser);
    219     GEN_CHECK_OFF(IOMIOPORTRANGER0, pDevIns);
    220     GEN_CHECK_OFF(IOMIOPORTRANGER0, pszDesc);
    221 
    222     GEN_CHECK_SIZE(IOMIOPORTRANGERC);
    223     GEN_CHECK_OFF(IOMIOPORTRANGERC, Port);
    224     GEN_CHECK_OFF(IOMIOPORTRANGERC, cPorts);
    225     GEN_CHECK_OFF(IOMIOPORTRANGERC, pvUser);
    226     GEN_CHECK_OFF(IOMIOPORTRANGERC, pDevIns);
    227     GEN_CHECK_OFF(IOMIOPORTRANGERC, pszDesc);
    228 
    229     GEN_CHECK_SIZE(IOMIOPORTSTATS);
    230     GEN_CHECK_OFF(IOMIOPORTSTATS, InR3);
    231 
    232     GEN_CHECK_SIZE(IOMTREES);
    233     GEN_CHECK_OFF(IOMTREES, IOPortTreeR3);
    234     GEN_CHECK_OFF(IOMTREES, IOPortTreeR0);
    235     GEN_CHECK_OFF(IOMTREES, IOPortTreeRC);
    236     GEN_CHECK_OFF(IOMTREES, MMIOTree);
    237     GEN_CHECK_OFF(IOMTREES, IOPortStatTree);
    238     GEN_CHECK_OFF(IOMTREES, MmioStatTree);
    239 
    240     GEN_CHECK_SIZE(MM);
    241     GEN_CHECK_OFF(MM, offVM);
    242     GEN_CHECK_OFF(MM, offHyperNextStatic);
    243     GEN_CHECK_OFF(MM, cbHyperArea);
    244     GEN_CHECK_OFF(MM, fDoneMMR3InitPaging);
    245     GEN_CHECK_OFF(MM, fPGMInitialized);
    246     GEN_CHECK_OFF(MM, offLookupHyper);
    247     GEN_CHECK_OFF(MM, pHyperHeapRC);
    248     GEN_CHECK_OFF(MM, pHyperHeapR3);
    249     GEN_CHECK_OFF(MM, pHyperHeapR0);
    250     GEN_CHECK_OFF(MM, pPagePoolR3);
    251     GEN_CHECK_OFF(MM, pPagePoolLowR3);
    252 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    253     GEN_CHECK_OFF(MM, pPagePoolR0);
    254     GEN_CHECK_OFF(MM, pPagePoolLowR0);
    255 #endif
    256     GEN_CHECK_OFF(MM, pvDummyPage);
    257     GEN_CHECK_OFF(MM, HCPhysDummyPage);
    258     GEN_CHECK_OFF(MM, cbRamBase);
    259     GEN_CHECK_OFF(MM, cBasePages);
    260     GEN_CHECK_OFF(MM, cHandyPages);
    261     GEN_CHECK_OFF(MM, cShadowPages);
    262     GEN_CHECK_OFF(MM, cFixedPages);
    263     GEN_CHECK_SIZE(MMHYPERSTAT);
    264     GEN_CHECK_SIZE(MMHYPERCHUNK);
    265     GEN_CHECK_SIZE(MMHYPERCHUNKFREE);
    266     GEN_CHECK_SIZE(MMHYPERHEAP);
    267     GEN_CHECK_OFF(MMHYPERHEAP, u32Magic);
    268     GEN_CHECK_OFF(MMHYPERHEAP, cbHeap);
    269     GEN_CHECK_OFF(MMHYPERHEAP, pbHeapR3);
    270     GEN_CHECK_OFF(MMHYPERHEAP, pVMR3);
    271     GEN_CHECK_OFF(MMHYPERHEAP, pbHeapR0);
    272     GEN_CHECK_OFF(MMHYPERHEAP, pVMR0);
    273     GEN_CHECK_OFF(MMHYPERHEAP, pbHeapRC);
    274     GEN_CHECK_OFF(MMHYPERHEAP, pVMRC);
    275     GEN_CHECK_OFF(MMHYPERHEAP, cbFree);
    276     GEN_CHECK_OFF(MMHYPERHEAP, offFreeHead);
    277     GEN_CHECK_OFF(MMHYPERHEAP, offFreeTail);
    278     GEN_CHECK_OFF(MMHYPERHEAP, offPageAligned);
    279     GEN_CHECK_OFF(MMHYPERHEAP, HyperHeapStatTree);
    280     GEN_CHECK_SIZE(MMLOOKUPHYPER);
    281     GEN_CHECK_OFF(MMLOOKUPHYPER, offNext);
    282     GEN_CHECK_OFF(MMLOOKUPHYPER, off);
    283     GEN_CHECK_OFF(MMLOOKUPHYPER, cb);
    284     GEN_CHECK_OFF(MMLOOKUPHYPER, enmType);
    285     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvR3);
    286     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.pvR0);
    287     GEN_CHECK_OFF(MMLOOKUPHYPER, u.Locked.paHCPhysPages);
    288     GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.pvR3);
    289     GEN_CHECK_OFF(MMLOOKUPHYPER, u.HCPhys.HCPhys);
    290     GEN_CHECK_OFF(MMLOOKUPHYPER, u.GCPhys.GCPhys);
    291     GEN_CHECK_OFF(MMLOOKUPHYPER, pszDesc);
    292 
    293     GEN_CHECK_SIZE(PDM);
    294     GEN_CHECK_OFF(PDM, CritSect);
    295     GEN_CHECK_OFF(PDM, NopCritSect);
    296     GEN_CHECK_OFF(PDM, pDevs);
    297     GEN_CHECK_OFF(PDM, pDevInstances);
    298     GEN_CHECK_OFF(PDM, pUsbDevs);
    299     GEN_CHECK_OFF(PDM, pUsbInstances);
    300     GEN_CHECK_OFF(PDM, pDrvs);
    301     GEN_CHECK_OFF(PDM, aPciBuses);
    302     GEN_CHECK_OFF(PDM, aPciBuses[0].iBus);
    303     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR3);
    304     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR3);
    305     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnRegisterR3);
    306     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnIORegionRegisterR3);
    307     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSaveExecR3);
    308     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnLoadExecR3);
    309     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnFakePCIBIOSR3);
    310     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR0);
    311     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR0);
    312     GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsRC);
    313     GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqRC);
    314     GEN_CHECK_OFF(PDM, Pic);
    315     GEN_CHECK_OFF(PDM, Pic.pDevInsR3);
    316     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR3);
    317     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR3);
    318     GEN_CHECK_OFF(PDM, Pic.pDevInsR0);
    319     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqR0);
    320     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptR0);
    321     GEN_CHECK_OFF(PDM, Pic.pDevInsRC);
    322     GEN_CHECK_OFF(PDM, Pic.pfnSetIrqRC);
    323     GEN_CHECK_OFF(PDM, Pic.pfnGetInterruptRC);
    324     GEN_CHECK_OFF(PDM, Apic);
    325     GEN_CHECK_OFF(PDM, Apic.pDevInsR3);
    326     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR3);
    327     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR3);
    328     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR3);
    329     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR3);
    330     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRR3);
    331     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRR3);
    332     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR3);
    333     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR3);
    334     GEN_CHECK_OFF(PDM, Apic.pDevInsR0);
    335     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptR0);
    336     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseR0);
    337     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseR0);
    338     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRR0);
    339     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRR0);
    340     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRR0);
    341     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRR0);
    342     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverR0);
    343     GEN_CHECK_OFF(PDM, Apic.pDevInsRC);
    344     GEN_CHECK_OFF(PDM, Apic.pfnGetInterruptRC);
    345     GEN_CHECK_OFF(PDM, Apic.pfnSetBaseRC);
    346     GEN_CHECK_OFF(PDM, Apic.pfnGetBaseRC);
    347     GEN_CHECK_OFF(PDM, Apic.pfnSetTPRRC);
    348     GEN_CHECK_OFF(PDM, Apic.pfnGetTPRRC);
    349     GEN_CHECK_OFF(PDM, Apic.pfnWriteMSRRC);
    350     GEN_CHECK_OFF(PDM, Apic.pfnReadMSRRC);
    351     GEN_CHECK_OFF(PDM, Apic.pfnBusDeliverRC);
    352     GEN_CHECK_OFF(PDM, IoApic);
    353     GEN_CHECK_OFF(PDM, IoApic.pDevInsR3);
    354     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR3);
    355     GEN_CHECK_OFF(PDM, IoApic.pDevInsR0);
    356     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqR0);
    357     GEN_CHECK_OFF(PDM, IoApic.pDevInsRC);
    358     GEN_CHECK_OFF(PDM, IoApic.pfnSetIrqRC);
    359     GEN_CHECK_OFF(PDM, pDmac);
    360     GEN_CHECK_OFF(PDM, pRtc);
    361     GEN_CHECK_OFF(PDM, pUsbHubs);
    362     GEN_CHECK_OFF(PDM, pDevHlpQueueR3);
    363     GEN_CHECK_OFF(PDM, pDevHlpQueueR0);
    364     GEN_CHECK_OFF(PDM, pDevHlpQueueRC);
    365     GEN_CHECK_OFF(PDMCPU, cQueuedCritSectLeaves);
    366     GEN_CHECK_OFF(PDMCPU, apQueuedCritSectsLeaves);
    367     GEN_CHECK_OFF(PDM, pQueueFlushR0);
    368     GEN_CHECK_OFF(PDM, pQueueFlushRC);
    369     GEN_CHECK_OFF(PDM, StatQueuedCritSectLeaves);
    370 
    371     GEN_CHECK_SIZE(PDMDEVINSINT);
    372     GEN_CHECK_OFF(PDMDEVINSINT, pNextR3);
    373     GEN_CHECK_OFF(PDMDEVINSINT, pPerDeviceNextR3);
    374     GEN_CHECK_OFF(PDMDEVINSINT, pDevR3);
    375     GEN_CHECK_OFF(PDMDEVINSINT, pVMR3);
    376     GEN_CHECK_OFF(PDMDEVINSINT, pVMR0);
    377     GEN_CHECK_OFF(PDMDEVINSINT, pVMRC);
    378     GEN_CHECK_OFF(PDMDEVINSINT, pLunsR3);
    379     GEN_CHECK_OFF(PDMDEVINSINT, pfnAsyncNotify);
    380     GEN_CHECK_OFF(PDMDEVINSINT, pCfgHandle);
    381     GEN_CHECK_OFF(PDMDEVINSINT, pPciDeviceR3);
    382     GEN_CHECK_OFF(PDMDEVINSINT, pPciDeviceR0);
    383     GEN_CHECK_OFF(PDMDEVINSINT, pPciDeviceRC);
    384     GEN_CHECK_OFF(PDMDEVINSINT, pPciBusR3);
    385     GEN_CHECK_OFF(PDMDEVINSINT, pPciBusR0);
    386     GEN_CHECK_OFF(PDMDEVINSINT, pPciBusRC);
    387     GEN_CHECK_OFF(PDMDEVINSINT, fIntFlags);
    388     GEN_CHECK_OFF(PDMDEVINS, u32Version);
    389     GEN_CHECK_OFF(PDMDEVINS, iInstance);
    390     GEN_CHECK_OFF(PDMDEVINS, pHlpRC);
    391     GEN_CHECK_OFF(PDMDEVINS, pvInstanceDataRC);
    392     GEN_CHECK_OFF(PDMDEVINS, pHlpR0);
    393     GEN_CHECK_OFF(PDMDEVINS, pvInstanceDataR0);
    394     GEN_CHECK_OFF(PDMDEVINS, pHlpR3);
    395     GEN_CHECK_OFF(PDMDEVINS, pvInstanceDataR3);
    396     GEN_CHECK_OFF(PDMDEVINS, pReg);
    397     GEN_CHECK_OFF(PDMDEVINS, pCfg);
    398     GEN_CHECK_OFF(PDMDEVINS, IBase);
    399     GEN_CHECK_OFF(PDMDEVINS, Internal);
    400     GEN_CHECK_OFF(PDMDEVINS, achInstanceData);
    401 
    402     GEN_CHECK_SIZE(PDMDRVINSINT);
    403     GEN_CHECK_OFF(PDMDRVINSINT, pUp);
    404     GEN_CHECK_OFF(PDMDRVINSINT, pDown);
    405     GEN_CHECK_OFF(PDMDRVINSINT, pLun);
    406     GEN_CHECK_OFF(PDMDRVINSINT, pDrv);
    407     GEN_CHECK_OFF(PDMDRVINSINT, pVMR3);
    408     GEN_CHECK_OFF(PDMDRVINSINT, pVMR0);
    409     GEN_CHECK_OFF(PDMDRVINSINT, pVMRC);
    410     GEN_CHECK_OFF(PDMDRVINSINT, fDetaching);
    411     GEN_CHECK_OFF(PDMDRVINSINT, fVMSuspended);
    412     GEN_CHECK_OFF(PDMDRVINSINT, fVMReset);
    413     GEN_CHECK_OFF(PDMDRVINSINT, pfnAsyncNotify);
    414     GEN_CHECK_OFF(PDMDRVINSINT, pCfgHandle);
    415     GEN_CHECK_OFF(PDMDRVINS, u32Version);
    416     GEN_CHECK_OFF(PDMDRVINS, iInstance);
    417     GEN_CHECK_OFF(PDMDRVINS, pHlpRC);
    418     GEN_CHECK_OFF(PDMDRVINS, pvInstanceDataRC);
    419     GEN_CHECK_OFF(PDMDRVINS, pHlpR0);
    420     GEN_CHECK_OFF(PDMDRVINS, pvInstanceDataR0);
    421     GEN_CHECK_OFF(PDMDRVINS, pHlpR3);
    422     GEN_CHECK_OFF(PDMDRVINS, pvInstanceDataR3);
    423     GEN_CHECK_OFF(PDMDRVINS, pReg);
    424     GEN_CHECK_OFF(PDMDRVINS, pCfg);
    425     GEN_CHECK_OFF(PDMDRVINS, IBase);
    426     GEN_CHECK_OFF(PDMDRVINS, Internal);
    427     GEN_CHECK_OFF(PDMDRVINS, achInstanceData);
    428 
    429     GEN_CHECK_SIZE(PDMCRITSECTINT);
    430     GEN_CHECK_OFF(PDMCRITSECTINT, Core);
    431     GEN_CHECK_OFF(PDMCRITSECTINT, pNext);
    432     GEN_CHECK_OFF(PDMCRITSECTINT, pvKey);
    433     GEN_CHECK_OFF(PDMCRITSECTINT, pVMR3);
    434     GEN_CHECK_OFF(PDMCRITSECTINT, pVMR0);
    435     GEN_CHECK_OFF(PDMCRITSECTINT, pVMRC);
    436     GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionRZLock);
    437     GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionRZUnlock);
    438     GEN_CHECK_OFF(PDMCRITSECTINT, StatContentionR3);
    439     GEN_CHECK_OFF(PDMCRITSECTINT, StatLocked);
    440     GEN_CHECK_SIZE(PDMQUEUE);
    441     GEN_CHECK_OFF(PDMQUEUE, pNext);
    442     GEN_CHECK_OFF(PDMQUEUE, enmType);
    443     GEN_CHECK_OFF(PDMQUEUE, u);
    444     GEN_CHECK_OFF(PDMQUEUE, u.Dev.pfnCallback);
    445     GEN_CHECK_OFF(PDMQUEUE, u.Dev.pDevIns);
    446     GEN_CHECK_OFF(PDMQUEUE, u.Drv.pfnCallback);
    447     GEN_CHECK_OFF(PDMQUEUE, u.Drv.pDrvIns);
    448     GEN_CHECK_OFF(PDMQUEUE, u.Int.pfnCallback);
    449     GEN_CHECK_OFF(PDMQUEUE, u.Ext.pfnCallback);
    450     GEN_CHECK_OFF(PDMQUEUE, u.Ext.pvUser);
    451     GEN_CHECK_OFF(PDMQUEUE, pVMR3);
    452     GEN_CHECK_OFF(PDMQUEUE, pVMR0);
    453     GEN_CHECK_OFF(PDMQUEUE, pVMRC);
    454     GEN_CHECK_OFF(PDMQUEUE, cMilliesInterval);
    455     GEN_CHECK_OFF(PDMQUEUE, pTimer);
    456     GEN_CHECK_OFF(PDMQUEUE, cbItem);
    457     GEN_CHECK_OFF(PDMQUEUE, cItems);
    458     GEN_CHECK_OFF(PDMQUEUE, pPendingR3);
    459     GEN_CHECK_OFF(PDMQUEUE, pPendingR0);
    460     GEN_CHECK_OFF(PDMQUEUE, pPendingRC);
    461     GEN_CHECK_OFF(PDMQUEUE, iFreeHead);
    462     GEN_CHECK_OFF(PDMQUEUE, iFreeTail);
    463     GEN_CHECK_OFF(PDMQUEUE, pszName);
    464     GEN_CHECK_OFF(PDMQUEUE, StatAllocFailures);
    465     GEN_CHECK_OFF(PDMQUEUE, StatInsert);
    466     GEN_CHECK_OFF(PDMQUEUE, StatFlush);
    467     GEN_CHECK_OFF(PDMQUEUE, StatFlushLeftovers);
    468     GEN_CHECK_OFF(PDMQUEUE, aFreeItems);
    469     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1]);
    470     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[0].pItemR3);
    471     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[0].pItemR0);
    472     GEN_CHECK_OFF(PDMQUEUE, aFreeItems[1].pItemRC);
    473     GEN_CHECK_SIZE(PDMDEVHLPTASK);
    474     GEN_CHECK_OFF(PDMDEVHLPTASK, Core);
    475     GEN_CHECK_OFF(PDMDEVHLPTASK, pDevInsR3);
    476     GEN_CHECK_OFF(PDMDEVHLPTASK, enmOp);
    477     GEN_CHECK_OFF(PDMDEVHLPTASK, u);
    478     GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iIrq);
    479     GEN_CHECK_OFF(PDMDEVHLPTASK, u.SetIRQ.iLevel);
    480 
    481     GEN_CHECK_SIZE(PGM);
    482     GEN_CHECK_OFF(PGM, offVM);
    483     GEN_CHECK_OFF(PGM, fRamPreAlloc);
    484     GEN_CHECK_OFF(PGM, paDynPageMap32BitPTEsGC);
    485     GEN_CHECK_OFF(PGM, paDynPageMapPaePTEsGC);
    486     GEN_CHECK_OFF(PGM, enmHostMode);
    487     GEN_CHECK_OFF(PGMCPU, offVM);
    488     GEN_CHECK_OFF(PGMCPU, offVCpu);
    489     GEN_CHECK_OFF(PGMCPU, offPGM);
    490 #if defined(VBOX_WITH_2X_4GB_ADDR_SPACE) || defined(VBOX_WITH_RAW_MODE)
    491     GEN_CHECK_OFF(PGMCPU, AutoSet);
    492 #endif
    493     GEN_CHECK_OFF(PGMCPU, GCPhysA20Mask);
    494     GEN_CHECK_OFF(PGMCPU, fA20Enabled);
    495     GEN_CHECK_OFF(PGMCPU, fSyncFlags);
    496     GEN_CHECK_OFF(PGMCPU, enmShadowMode);
    497     GEN_CHECK_OFF(PGMCPU, enmGuestMode);
    498     GEN_CHECK_OFF(PGMCPU, GCPhysCR3);
    499     GEN_CHECK_OFF(PGM, GCPtrCR3Mapping);
    500     GEN_CHECK_OFF(PGMCPU, pGst32BitPdR3);
    501 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    502     GEN_CHECK_OFF(PGMCPU, pGst32BitPdR0);
    503 #endif
    504     GEN_CHECK_OFF(PGMCPU, pGst32BitPdRC);
    505     GEN_CHECK_OFF(PGMCPU, pGstPaePdptR3);
    506 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    507     GEN_CHECK_OFF(PGMCPU, pGstPaePdptR0);
    508 #endif
    509     GEN_CHECK_OFF(PGMCPU, pGstPaePdptRC);
    510     GEN_CHECK_OFF(PGMCPU, apGstPaePDsR3);
    511 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    512     GEN_CHECK_OFF(PGMCPU, apGstPaePDsR0);
    513 #endif
    514     GEN_CHECK_OFF(PGMCPU, apGstPaePDsRC);
    515     GEN_CHECK_OFF(PGMCPU, aGCPhysGstPaePDs);
    516     GEN_CHECK_OFF(PGMCPU, aGCPhysGstPaePDsMonitored);
    517     GEN_CHECK_OFF(PGMCPU, pShwPageCR3R3);
    518     GEN_CHECK_OFF(PGMCPU, pShwPageCR3R0);
    519     GEN_CHECK_OFF(PGMCPU, pShwPageCR3RC);
    520     GEN_CHECK_OFF(PGMCPU, pfnR3ShwRelocate);
    521     GEN_CHECK_OFF(PGMCPU, pfnR3ShwExit);
    522     GEN_CHECK_OFF(PGMCPU, pfnR3ShwGetPage);
    523     GEN_CHECK_OFF(PGMCPU, pfnR3ShwModifyPage);
    524     GEN_CHECK_OFF(PGMCPU, pfnRCShwGetPage);
    525     GEN_CHECK_OFF(PGMCPU, pfnRCShwModifyPage);
    526     GEN_CHECK_OFF(PGMCPU, pfnR3GstRelocate);
    527     GEN_CHECK_OFF(PGMCPU, pfnR3GstExit);
    528     GEN_CHECK_OFF(PGMCPU, pfnR3BthMapCR3);
    529     GEN_CHECK_OFF(PGMCPU, pfnR3BthUnmapCR3);
    530     GEN_CHECK_OFF(PGMCPU, pfnR3GstGetPage);
    531     GEN_CHECK_OFF(PGMCPU, pfnR3GstModifyPage);
    532     GEN_CHECK_OFF(PGMCPU, pfnR3GstGetPDE);
    533     GEN_CHECK_OFF(PGMCPU, pfnRCGstGetPage);
    534     GEN_CHECK_OFF(PGMCPU, pfnRCGstModifyPage);
    535     GEN_CHECK_OFF(PGMCPU, pfnRCGstGetPDE);
    536     GEN_CHECK_OFF(PGMCPU, pfnR3BthRelocate);
    537     GEN_CHECK_OFF(PGMCPU, pfnR3BthSyncCR3);
    538     GEN_CHECK_OFF(PGMCPU, pfnR3BthInvalidatePage);
    539     GEN_CHECK_OFF(PGMCPU, pfnR3BthPrefetchPage);
    540     GEN_CHECK_OFF(PGMCPU, pfnR3BthVerifyAccessSyncPage);
    541     GEN_CHECK_OFF(PGMCPU, pfnR3BthAssertCR3);
    542     GEN_CHECK_OFF(PGMCPU, pfnRCBthTrap0eHandler);
    543     GEN_CHECK_OFF(PGMCPU, pfnRCBthInvalidatePage);
    544     GEN_CHECK_OFF(PGMCPU, pfnRCBthPrefetchPage);
    545     GEN_CHECK_OFF(PGMCPU, pfnRCBthVerifyAccessSyncPage);
    546     GEN_CHECK_OFF(PGMCPU, pfnRCBthAssertCR3);
    547     GEN_CHECK_OFF(PGMCPU, pfnR0BthTrap0eHandler);
    548     GEN_CHECK_OFF(PGMCPU, pfnR0BthInvalidatePage);
    549     GEN_CHECK_OFF(PGMCPU, pfnR0BthPrefetchPage);
    550     GEN_CHECK_OFF(PGMCPU, pfnR0BthVerifyAccessSyncPage);
    551     GEN_CHECK_OFF(PGMCPU, pfnR0BthAssertCR3);
    552     GEN_CHECK_OFF(PGMCPU, DisState);
    553     GEN_CHECK_OFF(PGMCPU, cGuestModeChanges);
    554 #ifdef VBOX_WITH_STATISTICS
    555     GEN_CHECK_OFF(PGMCPU, pStatsR0);
    556     GEN_CHECK_OFF(PGMCPU, pStatTrap0eAttributionR0);
    557     GEN_CHECK_OFF(PGMCPU, pStatsRC);
    558     GEN_CHECK_OFF(PGMCPU, pStatTrap0eAttributionRC);
    559     GEN_CHECK_OFF(PGMCPU, pStatsR3);
    560 #endif
    561     GEN_CHECK_OFF(PGM, offVM);
    562     GEN_CHECK_OFF(PGM, offVCpuPGM);
    563     GEN_CHECK_OFF(PGM, fRamPreAlloc);
    564     GEN_CHECK_OFF(PGM, paDynPageMap32BitPTEsGC);
    565     GEN_CHECK_OFF(PGM, paDynPageMapPaePTEsGC);
    566     GEN_CHECK_OFF(PGM, enmHostMode);
    567     GEN_CHECK_OFF(PGM, GCPhys4MBPSEMask);
    568     GEN_CHECK_OFF(PGM, pRamRangesXR3);
    569     GEN_CHECK_OFF(PGM, pRamRangesXR0);
    570     GEN_CHECK_OFF(PGM, pRamRangesXRC);
    571     GEN_CHECK_OFF(PGM, pRomRangesR3);
    572     GEN_CHECK_OFF(PGM, pRomRangesR0);
    573     GEN_CHECK_OFF(PGM, pRomRangesRC);
    574     GEN_CHECK_OFF(PGM, pTreesR3);
    575     GEN_CHECK_OFF(PGM, pTreesR0);
    576     GEN_CHECK_OFF(PGM, pTreesRC);
    577     GEN_CHECK_OFF(PGM, pMappingsR3);
    578     GEN_CHECK_OFF(PGM, pMappingsRC);
    579     GEN_CHECK_OFF(PGM, pMappingsR0);
    580     GEN_CHECK_OFF(PGM, fFinalizedMappings);
    581     GEN_CHECK_OFF(PGM, fMappingsFixed);
    582     GEN_CHECK_OFF(PGM, fMappingsFixedRestored);
    583     GEN_CHECK_OFF(PGM, fMappingsDisabled);
    584     GEN_CHECK_OFF(PGM, GCPtrMappingFixed);
    585     GEN_CHECK_OFF(PGM, cbMappingFixed);
    586     GEN_CHECK_OFF(PGM, pInterPD);
    587     GEN_CHECK_OFF(PGM, apInterPTs);
    588     GEN_CHECK_OFF(PGM, apInterPaePTs);
    589     GEN_CHECK_OFF(PGM, apInterPaePDs);
    590     GEN_CHECK_OFF(PGM, pInterPaePDPT);
    591     GEN_CHECK_OFF(PGM, pInterPaePDPT64);
    592     GEN_CHECK_OFF(PGM, pInterPaePML4);
    593     GEN_CHECK_OFF(PGM, HCPhysInterPD);
    594     GEN_CHECK_OFF(PGM, HCPhysInterPaePDPT);
    595     GEN_CHECK_OFF(PGM, HCPhysInterPaePML4);
    596     GEN_CHECK_OFF(PGM, pbDynPageMapBaseGC);
    597     GEN_CHECK_OFF(PGM, pRCDynMap);
    598     GEN_CHECK_OFF(PGM, pvR0DynMapUsed);
    599     GEN_CHECK_OFF(PGM, GCPhys4MBPSEMask);
    600     GEN_CHECK_OFF(PGMCPU, GCPhysA20Mask);
    601     GEN_CHECK_OFF(PGMCPU, fA20Enabled);
    602     GEN_CHECK_OFF(PGMCPU, fSyncFlags);
    603     GEN_CHECK_OFF(PGM, CritSectX);
    604     GEN_CHECK_OFF(PGM, pPoolR3);
    605     GEN_CHECK_OFF(PGM, pPoolR0);
    606     GEN_CHECK_OFF(PGM, pPoolRC);
    607     GEN_CHECK_OFF(PGM, fNoMorePhysWrites);
    608     GEN_CHECK_OFF(PGM, ChunkR3Map);
    609     GEN_CHECK_OFF(PGM, ChunkR3Map.pTree);
    610     GEN_CHECK_OFF(PGM, ChunkR3Map.Tlb);
    611     GEN_CHECK_OFF(PGM, ChunkR3Map.c);
    612     GEN_CHECK_OFF(PGM, ChunkR3Map.cMax);
    613     GEN_CHECK_OFF(PGM, ChunkR3Map.iNow);
    614     GEN_CHECK_OFF(PGM, PhysTlbHC);
    615     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[0]);
    616     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1]);
    617     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].GCPhys);
    618     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pMap);
    619     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pPage);
    620     GEN_CHECK_OFF(PGM, PhysTlbHC.aEntries[1].pv);
    621     GEN_CHECK_OFF(PGM, HCPhysZeroPg);
    622     GEN_CHECK_OFF(PGM, pvZeroPgR3);
    623     GEN_CHECK_OFF(PGM, pvZeroPgR0);
    624     GEN_CHECK_OFF(PGM, pvZeroPgRC);
    625     GEN_CHECK_OFF(PGM, cHandyPages);
    626     GEN_CHECK_OFF(PGM, aHandyPages);
    627     GEN_CHECK_OFF(PGM, aHandyPages[1]);
    628     GEN_CHECK_OFF(PGM, aHandyPages[1].HCPhysGCPhys);
    629     GEN_CHECK_OFF(PGM, aHandyPages[1].idPage);
    630     GEN_CHECK_OFF(PGM, aHandyPages[1].idSharedPage);
    631     GEN_CHECK_OFF(PGM, cAllPages);
    632     GEN_CHECK_OFF(PGM, cPrivatePages);
    633     GEN_CHECK_OFF(PGM, cSharedPages);
    634     GEN_CHECK_OFF(PGM, cZeroPages);
    635     GEN_CHECK_OFF(PGM, cPureMmioPages);
    636     GEN_CHECK_OFF(PGM, cMonitoredPages);
    637     GEN_CHECK_OFF(PGM, cWrittenToPages);
    638     GEN_CHECK_OFF(PGM, cWriteLockedPages);
    639     GEN_CHECK_OFF(PGM, cReadLockedPages);
    640     GEN_CHECK_OFF(PGM, cRelocations);
    641 #ifdef VBOX_WITH_STATISTICS
    642     GEN_CHECK_OFF(PGMCPU, pStatsR0);
    643     GEN_CHECK_OFF(PGMCPU, pStatsRC);
    644     GEN_CHECK_OFF(PGMCPU, pStatsR3);
    645 #endif
    646 
    647     GEN_CHECK_SIZE(PGMMAPPING);
    648     GEN_CHECK_OFF(PGMMAPPING, pNextR3);
    649     GEN_CHECK_OFF(PGMMAPPING, pNextRC);
    650     GEN_CHECK_OFF(PGMMAPPING, pNextR0);
    651     GEN_CHECK_OFF(PGMMAPPING, GCPtr);
    652     GEN_CHECK_OFF(PGMMAPPING, GCPtrLast);
    653     GEN_CHECK_OFF(PGMMAPPING, cb);
    654     GEN_CHECK_OFF(PGMMAPPING, pfnRelocate);
    655     GEN_CHECK_OFF(PGMMAPPING, pvUser);
    656     GEN_CHECK_OFF(PGMMAPPING, pszDesc);
    657     GEN_CHECK_OFF(PGMMAPPING, cPTs);
    658     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPT);
    659     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR3);
    660     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTR0);
    661     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].pPTRC);
    662     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT0);
    663     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].HCPhysPaePT1);
    664     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR3);
    665     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsRC);
    666     GEN_CHECK_OFF(PGMMAPPING, aPTs[1].paPaePTsR0);
    667     GEN_CHECK_SIZE(PGMPHYSHANDLER);
    668     GEN_CHECK_OFF(PGMPHYSHANDLER, Core);
    669     GEN_CHECK_SIZE(((PPGMPHYSHANDLER)0)->Core);
    670     GEN_CHECK_OFF(PGMPHYSHANDLER, enmType);
    671     GEN_CHECK_OFF(PGMPHYSHANDLER, cPages);
    672     GEN_CHECK_OFF(PGMPHYSHANDLER, cAliasedPages);
    673     GEN_CHECK_OFF(PGMPHYSHANDLER, cTmpOffPages);
    674     GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR3);
    675     GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR3);
    676     GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerR0);
    677     GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserR0);
    678     GEN_CHECK_OFF(PGMPHYSHANDLER, pfnHandlerRC);
    679     GEN_CHECK_OFF(PGMPHYSHANDLER, pvUserRC);
    680     GEN_CHECK_OFF(PGMPHYSHANDLER, pszDesc);
    681     GEN_CHECK_SIZE(PGMPHYS2VIRTHANDLER);
    682     GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, Core);
    683     GEN_CHECK_OFF(PGMPHYS2VIRTHANDLER, offVirtHandler);
    684     GEN_CHECK_SIZE(PGMVIRTHANDLER);
    685     GEN_CHECK_OFF(PGMVIRTHANDLER, Core);
    686     GEN_CHECK_OFF(PGMVIRTHANDLER, enmType);
    687     GEN_CHECK_OFF(PGMVIRTHANDLER, cb);
    688     GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerR3);
    689     GEN_CHECK_OFF(PGMVIRTHANDLER, pfnHandlerRC);
    690     GEN_CHECK_OFF(PGMVIRTHANDLER, pszDesc);
    691     GEN_CHECK_OFF(PGMVIRTHANDLER, cPages);
    692     GEN_CHECK_OFF(PGMVIRTHANDLER, aPhysToVirt);
    693     GEN_CHECK_SIZE(PGMPAGE);
    694     GEN_CHECK_OFF(PGMPAGE, s.cReadLocksY);
    695     GEN_CHECK_OFF(PGMPAGE, s.cWriteLocksY);
    696     GEN_CHECK_OFF(PGMPAGE, s.u16TrackingY);
    697     GEN_CHECK_SIZE(PGMRAMRANGE);
    698     GEN_CHECK_OFF(PGMRAMRANGE, pNextR3);
    699     GEN_CHECK_OFF(PGMRAMRANGE, pNextR0);
    700     GEN_CHECK_OFF(PGMRAMRANGE, pNextRC);
    701     GEN_CHECK_OFF(PGMRAMRANGE, GCPhys);
    702     GEN_CHECK_OFF(PGMRAMRANGE, GCPhysLast);
    703     GEN_CHECK_OFF(PGMRAMRANGE, cb);
    704     GEN_CHECK_OFF(PGMRAMRANGE, fFlags);
    705     GEN_CHECK_OFF(PGMRAMRANGE, pvR3);
    706     GEN_CHECK_OFF(PGMRAMRANGE, pszDesc);
    707     GEN_CHECK_OFF(PGMRAMRANGE, aPages);
    708     GEN_CHECK_OFF(PGMRAMRANGE, aPages[1]);
    709     GEN_CHECK_SIZE(PGMROMPAGE);
    710     GEN_CHECK_OFF(PGMROMPAGE, Virgin);
    711     GEN_CHECK_OFF(PGMROMPAGE, Shadow);
    712     GEN_CHECK_OFF(PGMROMPAGE, enmProt);
    713     GEN_CHECK_SIZE(PGMROMRANGE);
    714     GEN_CHECK_OFF(PGMROMRANGE, pNextR3);
    715     GEN_CHECK_OFF(PGMROMRANGE, pNextR0);
    716     GEN_CHECK_OFF(PGMROMRANGE, pNextRC);
    717     GEN_CHECK_OFF(PGMROMRANGE, GCPhys);
    718     GEN_CHECK_OFF(PGMROMRANGE, GCPhysLast);
    719     GEN_CHECK_OFF(PGMROMRANGE, cb);
    720     GEN_CHECK_OFF(PGMROMRANGE, fFlags);
    721     GEN_CHECK_OFF(PGMROMRANGE, cbOriginal);
    722     GEN_CHECK_OFF(PGMROMRANGE, pvOriginal);
    723     GEN_CHECK_OFF(PGMROMRANGE, pszDesc);
    724     GEN_CHECK_OFF(PGMROMRANGE, aPages);
    725     GEN_CHECK_OFF(PGMROMRANGE, aPages[1]);
    726     GEN_CHECK_SIZE(PGMMMIO2RANGE);
    727     GEN_CHECK_OFF(PGMMMIO2RANGE, pDevInsR3);
    728     GEN_CHECK_OFF(PGMMMIO2RANGE, pNextR3);
    729     GEN_CHECK_OFF(PGMMMIO2RANGE, fMapped);
    730     GEN_CHECK_OFF(PGMMMIO2RANGE, fOverlapping);
    731     GEN_CHECK_OFF(PGMMMIO2RANGE, iRegion);
    732     GEN_CHECK_OFF(PGMMMIO2RANGE, RamRange);
    733     GEN_CHECK_SIZE(PGMTREES);
    734     GEN_CHECK_OFF(PGMTREES, PhysHandlers);
    735     GEN_CHECK_OFF(PGMTREES, VirtHandlers);
    736     GEN_CHECK_OFF(PGMTREES, PhysToVirtHandlers);
    737     GEN_CHECK_OFF(PGMTREES, HyperVirtHandlers);
    738     GEN_CHECK_SIZE(PGMPOOLPAGE);
    739     GEN_CHECK_OFF(PGMPOOLPAGE, Core);
    740     GEN_CHECK_OFF(PGMPOOLPAGE, GCPhys);
    741     GEN_CHECK_OFF(PGMPOOLPAGE, pvPageR3);
    742     GEN_CHECK_OFF(PGMPOOLPAGE, enmKind);
    743     GEN_CHECK_OFF(PGMPOOLPAGE, enmAccess);
    744     GEN_CHECK_OFF(PGMPOOLPAGE, idx);
    745     GEN_CHECK_OFF(PGMPOOLPAGE, iNext);
    746 #ifdef PGMPOOL_WITH_USER_TRACKING
    747     GEN_CHECK_OFF(PGMPOOLPAGE, iUserHead);
    748     GEN_CHECK_OFF(PGMPOOLPAGE, cPresent);
    749     GEN_CHECK_OFF(PGMPOOLPAGE, iFirstPresent);
    750 #endif
    751 #ifdef PGMPOOL_WITH_MONITORING
    752     GEN_CHECK_OFF(PGMPOOLPAGE, cModifications);
    753     GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedNext);
    754     GEN_CHECK_OFF(PGMPOOLPAGE, iModifiedPrev);
    755     GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredNext);
    756     GEN_CHECK_OFF(PGMPOOLPAGE, iMonitoredPrev);
    757 #endif
    758 #ifdef PGMPOOL_WITH_CACHE
    759     GEN_CHECK_OFF(PGMPOOLPAGE, iAgeNext);
    760     GEN_CHECK_OFF(PGMPOOLPAGE, iAgePrev);
    761 #endif
    762     GEN_CHECK_OFF(PGMPOOLPAGE, fZeroed);
    763     GEN_CHECK_OFF(PGMPOOLPAGE, fSeenNonGlobal);
    764     GEN_CHECK_OFF(PGMPOOLPAGE, fMonitored);
    765     GEN_CHECK_OFF(PGMPOOLPAGE, fCached);
    766     GEN_CHECK_OFF(PGMPOOLPAGE, fReusedFlushPending);
    767     GEN_CHECK_OFF(PGMPOOLPAGE, cLocked);
    768     GEN_CHECK_SIZE(PGMPOOL);
    769     GEN_CHECK_OFF(PGMPOOL, pVMR3);
    770     GEN_CHECK_OFF(PGMPOOL, pVMR0);
    771     GEN_CHECK_OFF(PGMPOOL, pVMRC);
    772     GEN_CHECK_OFF(PGMPOOL, cMaxPages);
    773     GEN_CHECK_OFF(PGMPOOL, cCurPages);
    774     GEN_CHECK_OFF(PGMPOOL, iFreeHead);
    775     GEN_CHECK_OFF(PGMPOOL, u16Padding);
    776 #ifdef PGMPOOL_WITH_USER_TRACKING
    777     GEN_CHECK_OFF(PGMPOOL, iUserFreeHead);
    778     GEN_CHECK_OFF(PGMPOOL, cMaxUsers);
    779     GEN_CHECK_OFF(PGMPOOL, cPresent);
    780     GEN_CHECK_OFF(PGMPOOL, paUsersR3);
    781     GEN_CHECK_OFF(PGMPOOL, paUsersR0);
    782     GEN_CHECK_OFF(PGMPOOL, paUsersRC);
    783 #endif /* PGMPOOL_WITH_USER_TRACKING */
    784 #ifdef PGMPOOL_WITH_GCPHYS_TRACKING
    785     GEN_CHECK_OFF(PGMPOOL, iPhysExtFreeHead);
    786     GEN_CHECK_OFF(PGMPOOL, cMaxPhysExts);
    787     GEN_CHECK_OFF(PGMPOOL, paPhysExtsR3);
    788     GEN_CHECK_OFF(PGMPOOL, paPhysExtsR0);
    789     GEN_CHECK_OFF(PGMPOOL, paPhysExtsRC);
    790 #endif
    791 #ifdef PGMPOOL_WITH_CACHE
    792     GEN_CHECK_OFF(PGMPOOL, aiHash);
    793     GEN_CHECK_OFF(PGMPOOL, iAgeHead);
    794     GEN_CHECK_OFF(PGMPOOL, iAgeTail);
    795     GEN_CHECK_OFF(PGMPOOL, fCacheEnabled);
    796 #endif
    797 #ifdef PGMPOOL_WITH_MONITORING
    798     GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerRC);
    799     GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR0);
    800     GEN_CHECK_OFF(PGMPOOL, pfnAccessHandlerR3);
    801     GEN_CHECK_OFF(PGMPOOL, pszAccessHandler);
    802     GEN_CHECK_OFF(PGMPOOL, iModifiedHead);
    803     GEN_CHECK_OFF(PGMPOOL, cModifiedPages);
    804 #endif
    805     GEN_CHECK_OFF(PGMPOOL, cUsedPages);
    806 #ifdef VBOX_WITH_STATISTICS
    807     GEN_CHECK_OFF(PGMPOOL, cUsedPagesHigh);
    808     GEN_CHECK_OFF(PGMPOOL, StatAlloc);
    809     GEN_CHECK_OFF(PGMPOOL, StatClearAll);
    810 #endif
    811     GEN_CHECK_OFF(PGMPOOL, HCPhysTree);
    812     GEN_CHECK_OFF(PGMPOOL, aPages);
    813     GEN_CHECK_OFF(PGMPOOL, aPages[1]);
    814     GEN_CHECK_OFF(PGMPOOL, aPages[PGMPOOL_IDX_FIRST - 1]);
    815     GEN_CHECK_SIZE(PGMRCDYNMAP);
    816     GEN_CHECK_OFF(PGMRCDYNMAP, u32Magic);
    817     GEN_CHECK_OFF(PGMRCDYNMAP, paPages);
    818     GEN_CHECK_OFF(PGMRCDYNMAP, cPages);
    819     GEN_CHECK_OFF(PGMRCDYNMAP, cLoad);
    820     GEN_CHECK_OFF(PGMRCDYNMAP, cMaxLoad);
    821     GEN_CHECK_OFF(PGMRCDYNMAP, cGuardPages);
    822     GEN_CHECK_OFF(PGMRCDYNMAP, cUsers);
    823     GEN_CHECK_SIZE(PGMRCDYNMAPENTRY);
    824     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, HCPhys);
    825     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, pvPage);
    826     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, cRefs);
    827     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, uPte.pLegacy);
    828     GEN_CHECK_OFF(PGMRCDYNMAPENTRY, uPte.pPae);
    829     GEN_CHECK_OFF(PGMMAPSETENTRY, pvPage);
    830     GEN_CHECK_OFF(PGMMAPSETENTRY, iPage);
    831     GEN_CHECK_OFF(PGMMAPSETENTRY, cRefs);
    832     GEN_CHECK_OFF(PGMMAPSETENTRY, cInlinedRefs);
    833     GEN_CHECK_OFF(PGMMAPSETENTRY, cUnrefs);
    834     GEN_CHECK_OFF(PGMMAPSETENTRY, HCPhys);
    835 
    836     GEN_CHECK_SIZE(REM);
    837     GEN_CHECK_OFF(REM, pCtx);
    838     GEN_CHECK_OFF(REM, cCanExecuteRaw);
    839     GEN_CHECK_OFF(REM, aGCPtrInvalidatedPages);
    840     GEN_CHECK_OFF(REM, idxPendingList);
    841     GEN_CHECK_OFF(REM, aHandlerNotifications);
    842     GEN_CHECK_OFF(REM, idxFreeList);
    843     GEN_CHECK_OFF(REM, CritSectRegister);
    844     GEN_CHECK_OFF(REM, rc);
    845     GEN_CHECK_OFF(REM, StatsInQEMU);
    846     GEN_CHECK_OFF(REM, Env);
    847 
    848     GEN_CHECK_SIZE(REMHANDLERNOTIFICATION);
    849     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, enmKind);
    850     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u);
    851     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.GCPhys);
    852     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.cb);
    853     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.enmType);
    854     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalRegister.fHasHCHandler);
    855     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.GCPhys);
    856     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.cb);
    857     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.enmType);
    858     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fHasHCHandler);
    859     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalDeregister.fRestoreAsRAM);
    860     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysOld);
    861     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.GCPhysNew);
    862     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.cb);
    863     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.enmType);
    864     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.fHasHCHandler);
    865     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, u.PhysicalModify.fRestoreAsRAM);
    866     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, idxSelf);
    867     GEN_CHECK_OFF(REMHANDLERNOTIFICATION, idxNext);
    868 
    869     GEN_CHECK_SIZE(SELM);
    870     GEN_CHECK_OFF(SELM, offVM);
    871     GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_CS]);
    872     GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_DS]);
    873     GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_CS64]);
    874     GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_TSS]);
    875     GEN_CHECK_OFF(SELM, aHyperSel[SELM_HYPER_SEL_TSS_TRAP08]);
    876     GEN_CHECK_OFF(SELM, paGdtR3);
    877     GEN_CHECK_OFF(SELM, paGdtRC);
    878     GEN_CHECK_OFF(SELM, GuestGdtr);
    879     GEN_CHECK_OFF(SELM, cbEffGuestGdtLimit);
    880     GEN_CHECK_OFF(SELM, pvLdtR3);
    881     GEN_CHECK_OFF(SELM, pvLdtRC);
    882     GEN_CHECK_OFF(SELM, GCPtrGuestLdt);
    883     GEN_CHECK_OFF(SELM, cbLdtLimit);
    884     GEN_CHECK_OFF(SELM, offLdtHyper);
    885     GEN_CHECK_OFF(SELM, Tss);
    886     GEN_CHECK_OFF(SELM, TssTrap08);
    887     GEN_CHECK_OFF(SELM, pvMonShwTssRC);
    888     GEN_CHECK_OFF(SELM, GCPtrGuestTss);
    889     GEN_CHECK_OFF(SELM, cbGuestTss);
    890     GEN_CHECK_OFF(SELM, fGuestTss32Bit);
    891     GEN_CHECK_OFF(SELM, cbMonitoredGuestTss);
    892     GEN_CHECK_OFF(SELM, GCSelTss);
    893     GEN_CHECK_OFF(SELM, fGDTRangeRegistered);
    894     GEN_CHECK_OFF(SELM, StatUpdateFromCPUM);
    895 
    896     GEN_CHECK_SIZE(TM);
    897     GEN_CHECK_OFF(TM, offVM);
    898     GEN_CHECK_OFF(TM, pvGIPR3);
    899     //GEN_CHECK_OFF(TM, pvGIPR0);
    900     GEN_CHECK_OFF(TM, pvGIPRC);
    901     GEN_CHECK_OFF(TMCPU, fTSCTicking);
    902     GEN_CHECK_OFF(TM, fTSCUseRealTSC);
    903     GEN_CHECK_OFF(TM, fTSCTiedToExecution);
    904     GEN_CHECK_OFF(TMCPU, offTSCRawSrc);
    905     GEN_CHECK_OFF(TMCPU, u64TSC);
    906     GEN_CHECK_OFF(TM, cTSCTicksPerSecond);
    907     GEN_CHECK_OFF(TM, cVirtualTicking);
    908     GEN_CHECK_OFF(TM, fVirtualWarpDrive);
    909     GEN_CHECK_OFF(TM, fVirtualSyncTicking);
    910     GEN_CHECK_OFF(TM, fVirtualSyncCatchUp);
    911     GEN_CHECK_OFF(TM, u32VirtualWarpDrivePercentage);
    912     GEN_CHECK_OFF(TM, u64VirtualOffset);
    913     GEN_CHECK_OFF(TM, u64Virtual);
    914     GEN_CHECK_OFF(TM, u64VirtualRawPrev);
    915     GEN_CHECK_OFF(TM, VirtualGetRawDataR3);
    916     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pu64Prev);
    917     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnBad);
    918     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.pfnRediscover);
    919     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.c1nsSteps);
    920     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cBadPrev);
    921     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cExpired);
    922     GEN_CHECK_OFF(TM, VirtualGetRawDataR3.cUpdateRaces);
    923     GEN_CHECK_OFF(TM, VirtualGetRawDataR0);
    924     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pu64Prev);
    925     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnBad);
    926     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.pfnRediscover);
    927     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.c1nsSteps);
    928     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cBadPrev);
    929     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cExpired);
    930     GEN_CHECK_OFF(TM, VirtualGetRawDataR0.cUpdateRaces);
    931     GEN_CHECK_OFF(TM, VirtualGetRawDataRC);
    932     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pu64Prev);
    933     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pfnBad);
    934     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.pfnRediscover);
    935     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.c1nsSteps);
    936     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cBadPrev);
    937     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cExpired);
    938     GEN_CHECK_OFF(TM, VirtualGetRawDataRC.cUpdateRaces);
    939     GEN_CHECK_OFF(TM, pfnVirtualGetRawR3);
    940     GEN_CHECK_OFF(TM, pfnVirtualGetRawR0);
    941     GEN_CHECK_OFF(TM, pfnVirtualGetRawRC);
    942     GEN_CHECK_OFF(TM, u64VirtualWarpDriveStart);
    943     GEN_CHECK_OFF(TM, u64VirtualSync);
    944     GEN_CHECK_OFF(TM, offVirtualSync);
    945     GEN_CHECK_OFF(TM, offVirtualSyncGivenUp);
    946     GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpPrev);
    947     GEN_CHECK_OFF(TM, u32VirtualSyncCatchUpPercentage);
    948     GEN_CHECK_OFF(TM, u32VirtualSyncScheduleSlack);
    949     GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpStopThreshold);
    950     GEN_CHECK_OFF(TM, u64VirtualSyncCatchUpGiveUpThreshold);
    951     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods);
    952     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u64Start);
    953     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[0].u32Percentage);
    954     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u64Start);
    955     GEN_CHECK_OFF(TM, aVirtualSyncCatchUpPeriods[1].u32Percentage);
    956     GEN_CHECK_OFF(TM, pTimer);
    957     GEN_CHECK_OFF(TM, u32TimerMillies);
    958     GEN_CHECK_OFF(TM, pFree);
    959     GEN_CHECK_OFF(TM, pCreated);
    960     GEN_CHECK_OFF(TM, paTimerQueuesR3);
    961     GEN_CHECK_OFF(TM, paTimerQueuesR0);
    962     GEN_CHECK_OFF(TM, paTimerQueuesRC);
    963     GEN_CHECK_OFF(TM, TimerCritSect);
    964     GEN_CHECK_OFF(TM, VirtualSyncLock);
    965     GEN_CHECK_OFF(TM, StatDoQueues);
    966     GEN_CHECK_OFF(TM, StatTimerCallbackSetFF);
    967     GEN_CHECK_SIZE(TMTIMER);
    968     GEN_CHECK_OFF(TMTIMER, u64Expire);
    969     GEN_CHECK_OFF(TMTIMER, enmClock);
    970     GEN_CHECK_OFF(TMTIMER, enmType);
    971     GEN_CHECK_OFF(TMTIMER, u.Dev.pfnTimer);
    972     GEN_CHECK_OFF(TMTIMER, u.Dev.pDevIns);
    973     GEN_CHECK_OFF(TMTIMER, u.Drv.pfnTimer);
    974     GEN_CHECK_OFF(TMTIMER, u.Drv.pDrvIns);
    975     GEN_CHECK_OFF(TMTIMER, u.Internal.pfnTimer);
    976     GEN_CHECK_OFF(TMTIMER, u.External.pfnTimer);
    977     GEN_CHECK_OFF(TMTIMER, enmState);
    978     GEN_CHECK_OFF(TMTIMER, offScheduleNext);
    979     GEN_CHECK_OFF(TMTIMER, offNext);
    980     GEN_CHECK_OFF(TMTIMER, offPrev);
    981     GEN_CHECK_OFF(TMTIMER, pVMR0);
    982     GEN_CHECK_OFF(TMTIMER, pVMR3);
    983     GEN_CHECK_OFF(TMTIMER, pVMRC);
    984     GEN_CHECK_OFF(TMTIMER, uHzHint);
    985     GEN_CHECK_OFF(TMTIMER, pvUser);
    986     GEN_CHECK_OFF(TMTIMER, pCritSect);
    987     GEN_CHECK_OFF(TMTIMER, pBigNext);
    988     GEN_CHECK_OFF(TMTIMER, pBigPrev);
    989     GEN_CHECK_OFF(TMTIMER, pszDesc);
    990     GEN_CHECK_SIZE(TMTIMERQUEUE);
    991     GEN_CHECK_OFF(TMTIMERQUEUE, offActive);
    992     GEN_CHECK_OFF(TMTIMERQUEUE, offSchedule);
    993     GEN_CHECK_OFF(TMTIMERQUEUE, enmClock);
    994 
    995     GEN_CHECK_SIZE(TRPM); // has .mac
    996     GEN_CHECK_SIZE(TRPMCPU); // has .mac
    997     GEN_CHECK_SIZE(VM);  // has .mac
    998     GEN_CHECK_SIZE(VMM);
    999     GEN_CHECK_OFF(VMM, offVM);
    1000     GEN_CHECK_OFF(VMM, cbCoreCode);
    1001     GEN_CHECK_OFF(VMM, HCPhysCoreCode);
    1002     GEN_CHECK_OFF(VMM, pvCoreCodeR3);
    1003     GEN_CHECK_OFF(VMM, pvCoreCodeR0);
    1004     GEN_CHECK_OFF(VMM, pvCoreCodeRC);
    1005     GEN_CHECK_OFF(VMM, enmSwitcher);
    1006     GEN_CHECK_OFF(VMM, aoffSwitchers);
    1007     GEN_CHECK_OFF(VMM, aoffSwitchers[1]);
    1008     GEN_CHECK_OFF(VMM, pfnHostToGuestR0);
    1009     GEN_CHECK_OFF(VMM, pfnGuestToHostRC);
    1010     GEN_CHECK_OFF(VMM, pfnCallTrampolineRC);
    1011     GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuest);
    1012     GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuestV86);
    1013     GEN_CHECK_OFF(VMM, pRCLoggerRC);
    1014     GEN_CHECK_OFF(VMM, pRCLoggerR3);
    1015     GEN_CHECK_OFF(VMM, cbRCLogger);
    1016     GEN_CHECK_OFF(VMM, fRCLoggerFlushingDisabled);
    1017     GEN_CHECK_OFF(VMM, fStackGuardsStationed);
    1018     GEN_CHECK_OFF(VMM, fUsePeriodicPreemptionTimers);
    1019     GEN_CHECK_OFF(VMM, pYieldTimer);
    1020     GEN_CHECK_OFF(VMM, cYieldResumeMillies);
    1021     GEN_CHECK_OFF(VMM, cYieldEveryMillies);
    1022     GEN_CHECK_OFF(VMM, pahEvtRendezvousEnterOrdered);
    1023     GEN_CHECK_OFF(VMM, hEvtRendezvousEnterOneByOne);
    1024     GEN_CHECK_OFF(VMM, hEvtMulRendezvousEnterAllAtOnce);
    1025     GEN_CHECK_OFF(VMM, hEvtMulRendezvousDone);
    1026     GEN_CHECK_OFF(VMM, hEvtRendezvousDoneCaller);
    1027     GEN_CHECK_OFF(VMM, pfnRendezvous);
    1028     GEN_CHECK_OFF(VMM, pvRendezvousUser);
    1029     GEN_CHECK_OFF(VMM, fRendezvousFlags);
    1030     GEN_CHECK_OFF(VMM, cRendezvousEmtsEntered);
    1031     GEN_CHECK_OFF(VMM, cRendezvousEmtsDone);
    1032     GEN_CHECK_OFF(VMM, cRendezvousEmtsReturned);
    1033     GEN_CHECK_OFF(VMM, i32RendezvousStatus);
    1034     GEN_CHECK_OFF(VMM, u32RendezvousLock);
    1035     GEN_CHECK_OFF(VMM, szRing0AssertMsg1);
    1036     GEN_CHECK_OFF(VMM, szRing0AssertMsg2);
    1037     GEN_CHECK_OFF(VMM, StatRunRC);
    1038     GEN_CHECK_OFF(VMM, StatRZCallPGMLock);
    1039     GEN_CHECK_OFF(VMMCPU, iLastGZRc);
    1040     GEN_CHECK_OFF(VMMCPU, pbEMTStackR3);
    1041     GEN_CHECK_OFF(VMMCPU, pbEMTStackRC);
    1042     GEN_CHECK_OFF(VMMCPU, pbEMTStackBottomRC);
    1043 #ifdef LOG_ENABLED
    1044     GEN_CHECK_OFF(VMMCPU, pR0LoggerR0);
    1045     GEN_CHECK_OFF(VMMCPU, pR0LoggerR3);
    1046 #endif
    1047     GEN_CHECK_OFF(VMMCPU, cCallRing3Disabled);
    1048     GEN_CHECK_OFF(VMMCPU, enmCallRing3Operation);
    1049     GEN_CHECK_OFF(VMMCPU, rcCallRing3);
    1050     GEN_CHECK_OFF(VMMCPU, u64CallRing3Arg);
    1051     GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0);
    1052     GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0.SpCheck);
    1053     GEN_CHECK_OFF(VMMCPU, CallRing3JmpBufR0.SpResume);
    1054 
    1055     GEN_CHECK_SIZE(RTPINGPONG);
    1056     GEN_CHECK_SIZE(RTCRITSECT);
    1057     GEN_CHECK_OFF(RTCRITSECT, u32Magic);
    1058     GEN_CHECK_OFF(RTCRITSECT, cLockers);
    1059     GEN_CHECK_OFF(RTCRITSECT, NativeThreadOwner);
    1060     GEN_CHECK_OFF(RTCRITSECT, cNestings);
    1061     GEN_CHECK_OFF(RTCRITSECT, fFlags);
    1062     GEN_CHECK_OFF(RTCRITSECT, EventSem);
    1063     GEN_CHECK_OFF(RTCRITSECT, pValidatorRec);
    1064 
    1065     GEN_CHECK_SIZE(CSAM);
    1066     GEN_CHECK_OFF(CSAM, offVM);
    1067     GEN_CHECK_OFF(CSAM, pPageTree);
    1068     GEN_CHECK_OFF(CSAM, aDangerousInstr);
    1069     GEN_CHECK_OFF(CSAM, aDangerousInstr[1]);
    1070     GEN_CHECK_OFF(CSAM, aDangerousInstr[CSAM_MAX_DANGR_INSTR - 1]);
    1071     GEN_CHECK_OFF(CSAM, cDangerousInstr);
    1072     GEN_CHECK_OFF(CSAM, iDangerousInstr);
    1073     GEN_CHECK_OFF(CSAM, pPDBitmapGC);
    1074     GEN_CHECK_OFF(CSAM, pPDHCBitmapGC);
    1075     GEN_CHECK_OFF(CSAM, pPDBitmapHC);
    1076     GEN_CHECK_OFF(CSAM, pPDGCBitmapHC);
    1077     GEN_CHECK_OFF(CSAM, savedstate);
    1078     GEN_CHECK_OFF(CSAM, savedstate.pSSM);
    1079     GEN_CHECK_OFF(CSAM, savedstate.cPageRecords);
    1080     GEN_CHECK_OFF(CSAM, savedstate.cPatchPageRecords);
    1081     GEN_CHECK_OFF(CSAM, cDirtyPages);
    1082     GEN_CHECK_OFF(CSAM, pvDirtyBasePage);
    1083     GEN_CHECK_OFF(CSAM, pvDirtyBasePage[1]);
    1084     GEN_CHECK_OFF(CSAM, pvDirtyBasePage[CSAM_MAX_DIRTY_PAGES - 1]);
    1085     GEN_CHECK_OFF(CSAM, pvDirtyFaultPage);
    1086     GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[1]);
    1087     GEN_CHECK_OFF(CSAM, pvDirtyFaultPage[CSAM_MAX_DIRTY_PAGES - 1]);
    1088     GEN_CHECK_OFF(CSAM, pvCallInstruction);
    1089     GEN_CHECK_OFF(CSAM, iCallInstruction);
    1090     GEN_CHECK_OFF(CSAM, fScanningStarted);
    1091     GEN_CHECK_OFF(CSAM, fGatesChecked);
    1092     GEN_CHECK_OFF(CSAM, StatNrTraps);
    1093     GEN_CHECK_OFF(CSAM, StatNrPages);
    1094 
    1095     GEN_CHECK_SIZE(PATM);
    1096     GEN_CHECK_OFF(PATM, offVM);
    1097     GEN_CHECK_OFF(PATM, pPatchMemGC);
    1098     GEN_CHECK_OFF(PATM, pPatchMemHC);
    1099     GEN_CHECK_OFF(PATM, cbPatchMem);
    1100     GEN_CHECK_OFF(PATM, offPatchMem);
    1101     GEN_CHECK_OFF(PATM, fOutOfMemory);
    1102     GEN_CHECK_OFF(PATM, deltaReloc);
    1103     GEN_CHECK_OFF(PATM, pGCStateGC);
    1104     GEN_CHECK_OFF(PATM, pGCStateHC);
    1105     GEN_CHECK_OFF(PATM, pGCStackGC);
    1106     GEN_CHECK_OFF(PATM, pGCStackHC);
    1107     GEN_CHECK_OFF(PATM, pCPUMCtxGC);
    1108     GEN_CHECK_OFF(PATM, pStatsGC);
    1109     GEN_CHECK_OFF(PATM, pStatsHC);
    1110     GEN_CHECK_OFF(PATM, uCurrentPatchIdx);
    1111     GEN_CHECK_OFF(PATM, ulCallDepth);
    1112     GEN_CHECK_OFF(PATM, cPageRecords);
    1113     GEN_CHECK_OFF(PATM, pPatchedInstrGCLowest);
    1114     GEN_CHECK_OFF(PATM, pPatchedInstrGCHighest);
    1115     GEN_CHECK_OFF(PATM, PatchLookupTreeHC);
    1116     GEN_CHECK_OFF(PATM, PatchLookupTreeGC);
    1117     GEN_CHECK_OFF(PATM, pfnHelperCallGC);
    1118     GEN_CHECK_OFF(PATM, pfnHelperRetGC);
    1119     GEN_CHECK_OFF(PATM, pfnHelperJumpGC);
    1120     GEN_CHECK_OFF(PATM, pfnHelperIretGC);
    1121     GEN_CHECK_OFF(PATM, pGlobalPatchRec);
    1122     GEN_CHECK_OFF(PATM, pfnSysEnterGC);
    1123     GEN_CHECK_OFF(PATM, pfnSysEnterPatchGC);
    1124     GEN_CHECK_OFF(PATM, uSysEnterPatchIdx);
    1125     GEN_CHECK_OFF(PATM, pvFaultMonitor);
    1126     GEN_CHECK_OFF(PATM, mmio);
    1127     GEN_CHECK_OFF(PATM, mmio.GCPhys);
    1128     GEN_CHECK_OFF(PATM, mmio.pCachedData);
    1129     GEN_CHECK_OFF(PATM, savedstate);
    1130     GEN_CHECK_OFF(PATM, savedstate.pSSM);
    1131     GEN_CHECK_OFF(PATM, savedstate.cPatches);
    1132     GEN_CHECK_OFF(PATM, StatNrOpcodeRead);
    1133     GEN_CHECK_OFF(PATM, StatU32FunctionMaxSlotsUsed);
    1134 
    1135     GEN_CHECK_SIZE(PATMGCSTATE);
    1136     GEN_CHECK_OFF(PATMGCSTATE, uVMFlags);
    1137     GEN_CHECK_OFF(PATMGCSTATE, uPendingAction);
    1138     GEN_CHECK_OFF(PATMGCSTATE, uPatchCalls);
    1139     GEN_CHECK_OFF(PATMGCSTATE, uScratch);
    1140     GEN_CHECK_OFF(PATMGCSTATE, uIretEFlags);
    1141     GEN_CHECK_OFF(PATMGCSTATE, uIretCS);
    1142     GEN_CHECK_OFF(PATMGCSTATE, uIretEIP);
    1143     GEN_CHECK_OFF(PATMGCSTATE, Psp);
    1144     GEN_CHECK_OFF(PATMGCSTATE, fPIF);
    1145     GEN_CHECK_OFF(PATMGCSTATE, GCPtrInhibitInterrupts);
    1146     GEN_CHECK_OFF(PATMGCSTATE, Restore);
    1147     GEN_CHECK_OFF(PATMGCSTATE, Restore.uEAX);
    1148     GEN_CHECK_OFF(PATMGCSTATE, Restore.uECX);
    1149     GEN_CHECK_OFF(PATMGCSTATE, Restore.uEDI);
    1150     GEN_CHECK_OFF(PATMGCSTATE, Restore.eFlags);
    1151     GEN_CHECK_OFF(PATMGCSTATE, Restore.uFlags);
    1152     GEN_CHECK_SIZE(PATMTREES);
    1153     GEN_CHECK_OFF(PATMTREES, PatchTree);
    1154     GEN_CHECK_OFF(PATMTREES, PatchTreeByPatchAddr);
    1155     GEN_CHECK_OFF(PATMTREES, PatchTreeByPage);
    1156     GEN_CHECK_SIZE(PATMPATCHREC);
    1157     GEN_CHECK_OFF(PATMPATCHREC, Core);
    1158     GEN_CHECK_OFF(PATMPATCHREC, CoreOffset);
    1159     GEN_CHECK_OFF(PATMPATCHREC, patch);
    1160     GEN_CHECK_SIZE(PATCHINFO);
    1161     GEN_CHECK_OFF(PATCHINFO, uState);
    1162     GEN_CHECK_OFF(PATCHINFO, uOldState);
    1163     GEN_CHECK_OFF(PATCHINFO, uOpMode);
    1164     GEN_CHECK_OFF(PATCHINFO, unusedHC);
    1165     GEN_CHECK_OFF(PATCHINFO, pPrivInstrGC);
    1166     GEN_CHECK_OFF(PATCHINFO, aPrivInstr);
    1167     GEN_CHECK_OFF(PATCHINFO, aPrivInstr[1]);
    1168     GEN_CHECK_OFF(PATCHINFO, aPrivInstr[MAX_INSTR_SIZE - 1]);
    1169     GEN_CHECK_OFF(PATCHINFO, cbPrivInstr);
    1170     GEN_CHECK_OFF(PATCHINFO, opcode);
    1171     GEN_CHECK_OFF(PATCHINFO, cbPatchJump);
    1172     GEN_CHECK_OFF(PATCHINFO, pPatchJumpDestGC);
    1173     GEN_CHECK_OFF(PATCHINFO, pPatchBlockOffset);
    1174     GEN_CHECK_OFF(PATCHINFO, cbPatchBlockSize);
    1175     GEN_CHECK_OFF(PATCHINFO, uCurPatchOffset);
    1176     GEN_CHECK_OFF(PATCHINFO, flags);
    1177     GEN_CHECK_OFF(PATCHINFO, pInstrGCLowest);
    1178     GEN_CHECK_OFF(PATCHINFO, pInstrGCHighest);
    1179     GEN_CHECK_OFF(PATCHINFO, FixupTree);
    1180     GEN_CHECK_OFF(PATCHINFO, nrFixups);
    1181     GEN_CHECK_OFF(PATCHINFO, JumpTree);
    1182     GEN_CHECK_OFF(PATCHINFO, nrJumpRecs);
    1183     GEN_CHECK_OFF(PATCHINFO, Patch2GuestAddrTree);
    1184     GEN_CHECK_OFF(PATCHINFO, Guest2PatchAddrTree);
    1185     GEN_CHECK_OFF(PATCHINFO, nrPatch2GuestRecs);
    1186     GEN_CHECK_OFF(PATCHINFO, unused);
    1187     GEN_CHECK_OFF(PATCHINFO, unused.pPatchLocStartHC);
    1188     GEN_CHECK_OFF(PATCHINFO, unused.pPatchLocEndHC);
    1189     GEN_CHECK_OFF(PATCHINFO, unused.pGuestLoc);
    1190     GEN_CHECK_OFF(PATCHINFO, unused.opsize);
    1191     GEN_CHECK_OFF(PATCHINFO, pTempInfo);
    1192     GEN_CHECK_OFF(PATCHINFO, pTrampolinePatchesHead);
    1193     GEN_CHECK_OFF(PATCHINFO, cCodeWrites);
    1194     GEN_CHECK_OFF(PATCHINFO, cTraps);
    1195     GEN_CHECK_OFF(PATCHINFO, cInvalidWrites);
    1196     GEN_CHECK_OFF(PATCHINFO, uPatchIdx);
    1197     GEN_CHECK_OFF(PATCHINFO, bDirtyOpcode);
    1198     GEN_CHECK_SIZE(PATMPATCHPAGE);
    1199     GEN_CHECK_OFF(PATMPATCHPAGE, Core);
    1200     GEN_CHECK_OFF(PATMPATCHPAGE, pLowestAddrGC);
    1201     GEN_CHECK_OFF(PATMPATCHPAGE, pHighestAddrGC);
    1202     GEN_CHECK_OFF(PATMPATCHPAGE, cCount);
    1203     GEN_CHECK_OFF(PATMPATCHPAGE, cMaxPatches);
    1204     GEN_CHECK_OFF(PATMPATCHPAGE, aPatch);
    1205 
     92#define GEN_CHECK_SIZE(s)       printf("    CHECK_SIZE(%s, %u);\n",    #s, (unsigned)sizeof(s))
     93#define GEN_CHECK_OFF(s, m)     printf("    CHECK_OFF(%s, %u, %s);\n", #s, (unsigned)RT_OFFSETOF(s, m), #m)
     94#define GEN_CHECK_OFF_DOT(s, m) printf("    CHECK_OFF(%s, %u, %s);\n", #s, (unsigned)RT_OFFSETOF(s, m), #m)
     95#include "tstVMStruct.h"
    120696    return (0);
    120797}
Note: See TracChangeset for help on using the changeset viewer.

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