VirtualBox

Changeset 80181 in vbox for trunk/src


Ignore:
Timestamp:
Aug 7, 2019 10:49:52 AM (5 years ago)
Author:
vboxsync
Message:

VMM: Kicking out raw-mode - Bunch of RCPTRTYPE use in PGM. bugref:9517

Location:
trunk/src/VBox/VMM
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r80180 r80181  
    22522252    if (RT_SUCCESS(rc))
    22532253    {
    2254         RTRCPTR     RCPtr       = NIL_RTRCPTR;
    22552254        RTHCPTR     HCPtr       = NIL_RTHCPTR;
    22562255# ifndef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     
    22652264# endif
    22662265            if (fChanged)
    2267             {
    22682266                pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt]   = GCPhys;
    2269                 pVCpu->pgm.s.apGstPaePDsRC[iPdpt]      = (RCPTRTYPE(PX86PDPAE))RCPtr;
    2270             }
    22712267
    22722268            *ppPd = pVCpu->pgm.s.CTX_SUFF(apGstPaePDs)[iPdpt];
     
    22822278    pVCpu->pgm.s.apGstPaePDsR0[iPdpt]      = 0;
    22832279# endif
    2284     pVCpu->pgm.s.apGstPaePDsRC[iPdpt]      = 0;
    22852280
    22862281    pgmUnlock(pVM);
     
    23772372            pVCpu->pgm.s.apGstPaePDsR0[i]     = 0;
    23782373#endif
    2379             pVCpu->pgm.s.apGstPaePDsRC[i]     = 0;
    23802374            pVCpu->pgm.s.aGCPhysGstPaePDs[i]  = NIL_RTGCPHYS;
    23812375        }
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r80180 r80181  
    135135        pgmPoolFreeByPage(pPool, pOldShwPageCR3, NIL_PGMPOOL_IDX, UINT32_MAX);
    136136        pVCpu->pgm.s.pShwPageCR3R3 = NIL_RTR3PTR;
    137         pVCpu->pgm.s.pShwPageCR3RC = NIL_RTRCPTR;
    138137        pVCpu->pgm.s.pShwPageCR3R0 = NIL_RTR0PTR;
    139138    }
     
    148147
    149148    pVCpu->pgm.s.pShwPageCR3R3 = (R3PTRTYPE(PPGMPOOLPAGE))MMHyperCCToR3(pVM, pNewShwPageCR3);
    150     pVCpu->pgm.s.pShwPageCR3RC = (RCPTRTYPE(PPGMPOOLPAGE))MMHyperCCToRC(pVM, pNewShwPageCR3);
    151149    pVCpu->pgm.s.pShwPageCR3R0 = (R0PTRTYPE(PPGMPOOLPAGE))MMHyperCCToR0(pVM, pNewShwPageCR3);
    152150
     
    35863584                    false);
    35873585#  if !defined(IN_RING0) && PGM_GST_TYPE != PGM_TYPE_AMD64
    3588 #   if PGM_GST_TYPE == PGM_TYPE_32BIT
     3586#   if 0
     3587#    if PGM_GST_TYPE == PGM_TYPE_32BIT
    35893588    rc = PGMShwGetPage(pVCpu, (RTRCUINTPTR)pPGM->pGst32BitPdRC, NULL, &HCPhysShw);
    3590 #   else
     3589#    else
    35913590    rc = PGMShwGetPage(pVCpu, (RTRCUINTPTR)pPGM->pGstPaePdptRC, NULL, &HCPhysShw);
    3592 #   endif
     3591#    endif
    35933592    AssertRCReturn(rc, 1);
    35943593    HCPhys = NIL_RTHCPHYS;
    35953594    rc = pgmRamGCPhys2HCPhys(pVM, PGM_A20_APPLY(pVCpu, cr3 & GST_CR3_PAGE_MASK), &HCPhys);
    35963595    AssertMsgReturn(HCPhys == HCPhysShw, ("HCPhys=%RHp HCPhyswShw=%RHp (cr3)\n", HCPhys, HCPhysShw), false);
     3596#   endif
    35973597#   if PGM_GST_TYPE == PGM_TYPE_32BIT && defined(IN_RING3)
    35983598    pgmGstGet32bitPDPtr(pVCpu);
     
    43894389            pVCpu->pgm.s.apGstPaePDsR0[i]     = 0;
    43904390#  endif
    4391             pVCpu->pgm.s.apGstPaePDsRC[i]     = 0;
    43924391            pVCpu->pgm.s.aGCPhysGstPaePDs[i]  = NIL_RTGCPHYS;
    43934392        }
     
    44434442#  ifdef IN_RING0
    44444443    pVCpu->pgm.s.pShwPageCR3R3 = MMHyperCCToR3(pVM, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3));
    4445     pVCpu->pgm.s.pShwPageCR3RC = MMHyperCCToRC(pVM, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3));
    44464444#  else
    44474445    pVCpu->pgm.s.pShwPageCR3R0 = MMHyperCCToR0(pVM, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3));
    4448     pVCpu->pgm.s.pShwPageCR3RC = MMHyperCCToRC(pVM, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3));
    44494446#  endif
    44504447
     
    45084505    pVCpu->pgm.s.pGst32BitPdR0 = 0;
    45094506# endif
    4510     pVCpu->pgm.s.pGst32BitPdRC = 0;
    45114507
    45124508#elif PGM_GST_TYPE == PGM_TYPE_PAE
     
    45154511    pVCpu->pgm.s.pGstPaePdptR0 = 0;
    45164512# endif
    4517     pVCpu->pgm.s.pGstPaePdptRC = 0;
    45184513    for (unsigned i = 0; i < X86_PG_PAE_PDPE_ENTRIES; i++)
    45194514    {
     
    45224517        pVCpu->pgm.s.apGstPaePDsR0[i]    = 0;
    45234518# endif
    4524         pVCpu->pgm.s.apGstPaePDsRC[i]    = 0;
    45254519        pVCpu->pgm.s.aGCPhysGstPaePDs[i] = NIL_RTGCPHYS;
    45264520    }
     
    45684562        pVCpu->pgm.s.pShwPageCR3R3 = 0;
    45694563        pVCpu->pgm.s.pShwPageCR3R0 = 0;
    4570         pVCpu->pgm.s.pShwPageCR3RC = 0;
    45714564    }
    45724565
  • trunk/src/VBox/VMM/VMMAll/PGMAllGst.h

    r80180 r80181  
    516516PGM_GST_DECL(int, Relocate)(PVMCPU pVCpu, RTGCPTR offDelta)
    517517{
    518     pVCpu->pgm.s.pGst32BitPdRC += offDelta;
    519     for (unsigned i = 0; i < RT_ELEMENTS(pVCpu->pgm.s.apGstPaePDsRC); i++)
    520         pVCpu->pgm.s.apGstPaePDsRC[i] += offDelta;
    521     pVCpu->pgm.s.pGstPaePdptRC += offDelta;
    522 
     518    RT_NOREF(pVCpu, offDelta);
    523519    return VINF_SUCCESS;
    524520}
  • trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp

    r80180 r80181  
    459459        pVM->pgm.s.pLastPhysHandlerR0 = 0;
    460460        pVM->pgm.s.pLastPhysHandlerR3 = 0;
    461         pVM->pgm.s.pLastPhysHandlerRC = 0;
    462461
    463462        pPhysHandler->Core.Key     = NIL_RTGCPHYS;
     
    538537        pVM->pgm.s.pLastPhysHandlerR0 = 0;
    539538        pVM->pgm.s.pLastPhysHandlerR3 = 0;
    540         pVM->pgm.s.pLastPhysHandlerRC = 0;
    541539
    542540        pgmUnlock(pVM);
     
    938936        pVM->pgm.s.pLastPhysHandlerR0 = 0;
    939937        pVM->pgm.s.pLastPhysHandlerR3 = 0;
    940         pVM->pgm.s.pLastPhysHandlerRC = 0;
    941938        PGMHandlerPhysicalTypeRelease(pVM, pCur->hType);
    942939        MMHyperFree(pVM, pCur);
     
    10961093                        pVM->pgm.s.pLastPhysHandlerR0 = 0;
    10971094                        pVM->pgm.s.pLastPhysHandlerR3 = 0;
    1098                         pVM->pgm.s.pLastPhysHandlerRC = 0;
    10991095                        PGMHandlerPhysicalTypeRelease(pVM, pCur2->hType);
    11001096                        MMHyperFree(pVM, pCur2);
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r80180 r80181  
    323323{
    324324    pgmLock(pVM);
    325     for (uint32_t i = 0; i < PGM_RAMRANGE_TLB_ENTRIES; i++)
    326     {
    327         pVM->pgm.s.apRamRangesTlbR3[i] = NIL_RTR3PTR;
    328         pVM->pgm.s.apRamRangesTlbR0[i] = NIL_RTR0PTR;
    329         pVM->pgm.s.apRamRangesTlbRC[i] = NIL_RTRCPTR;
    330     }
     325    RT_ZERO(pVM->pgm.s.apRamRangesTlbR3);
     326    RT_ZERO(pVM->pgm.s.apRamRangesTlbR0);
    331327    pgmUnlock(pVM);
    332328}
  • trunk/src/VBox/VMM/VMMAll/PGMAllShw.h

    r80180 r80181  
    222222
    223223    pVCpu->pgm.s.pShwPageCR3R3 = (R3PTRTYPE(PPGMPOOLPAGE))MMHyperCCToR3(pVM, pNewShwPageCR3);
    224     pVCpu->pgm.s.pShwPageCR3RC = (RCPTRTYPE(PPGMPOOLPAGE))MMHyperCCToRC(pVM, pNewShwPageCR3);
    225224    pVCpu->pgm.s.pShwPageCR3R0 = (R0PTRTYPE(PPGMPOOLPAGE))MMHyperCCToR0(pVM, pNewShwPageCR3);
    226225
     
    261260        pVCpu->pgm.s.pShwPageCR3R3 = 0;
    262261        pVCpu->pgm.s.pShwPageCR3R0 = 0;
    263         pVCpu->pgm.s.pShwPageCR3RC = 0;
    264262
    265263        pgmUnlock(pVM);
     
    613611PGM_SHW_DECL(int, Relocate)(PVMCPU pVCpu, RTGCPTR offDelta)
    614612{
    615 # if PGM_SHW_TYPE != PGM_TYPE_NONE
    616     pVCpu->pgm.s.pShwPageCR3RC += offDelta;
    617 # else
    618613    RT_NOREF(pVCpu, offDelta);
    619 # endif
    620614    return VINF_SUCCESS;
    621615}
  • trunk/src/VBox/VMM/VMMR3/PGM.cpp

    r80180 r80181  
    804804        pPGM->pGstAmd64Pml4R0   = NIL_RTR0PTR;
    805805#endif
    806         pPGM->pGst32BitPdRC     = NIL_RTRCPTR;
    807         pPGM->pGstPaePdptRC     = NIL_RTRCPTR;
    808806        for (unsigned i = 0; i < RT_ELEMENTS(pVCpu->pgm.s.apGstPaePDsR3); i++)
    809807        {
     
    812810            pPGM->apGstPaePDsR0[i]             = NIL_RTR0PTR;
    813811#endif
    814             pPGM->apGstPaePDsRC[i]             = NIL_RTRCPTR;
    815812            pPGM->aGCPhysGstPaePDs[i]          = NIL_RTGCPHYS;
    816813            pPGM->aGstPaePdpeRegs[i].u         = UINT64_MAX;
     
    893890    pVM->pgm.s.pStatsR3 = (PGMSTATS *)pv;
    894891    pVM->pgm.s.pStatsR0 = MMHyperCCToR0(pVM, pv);
    895     pVM->pgm.s.pStatsRC = MMHyperCCToRC(pVM, pv);
    896892    pv = (uint8_t *)pv + RT_ALIGN_Z(sizeof(PGMSTATS), 64);
    897893
     
    900896        pVM->aCpus[iCpu].pgm.s.pStatsR3 = (PGMCPUSTATS *)pv;
    901897        pVM->aCpus[iCpu].pgm.s.pStatsR0 = MMHyperCCToR0(pVM, pv);
    902         pVM->aCpus[iCpu].pgm.s.pStatsRC = MMHyperCCToRC(pVM, pv);
    903898
    904899        pv = (uint8_t *)pv + RT_ALIGN_Z(sizeof(PGMCPUSTATS), 64);
     
    939934    rc = MMHyperAlloc(pVM, sizeof(PGMTREES), 0, MM_TAG_PGM, (void **)&pVM->pgm.s.pTreesR3);
    940935    if (RT_SUCCESS(rc))
    941     {
    942936        pVM->pgm.s.pTreesR0 = MMHyperR3ToR0(pVM, pVM->pgm.s.pTreesR3);
    943         pVM->pgm.s.pTreesRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pTreesR3);
    944     }
    945937
    946938    /*
     
    18731865
    18741866    /*
    1875      * Trees.
    1876      */
    1877     pVM->pgm.s.pTreesRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pTreesR3);
    1878 
    1879     /*
    18801867     * Ram ranges.
    18811868     */
     
    18871874                pCur->pSelfRC = MMHyperCCToRC(pVM, pCur);
    18881875        pgmR3PhysRelinkRamRanges(pVM);
    1889 
    1890         /* Flush the RC TLB. */
    1891         for (unsigned i = 0; i < PGM_RAMRANGE_TLB_ENTRIES; i++)
    1892             pVM->pgm.s.apRamRangesTlbRC[i] = NIL_RTRCPTR;
    18931876    }
    18941877
     
    19571940    PGMRELOCHANDLERARGS Args = { offDelta, pVM };
    19581941    RTAvlroGCPhysDoWithAll(&pVM->pgm.s.pTreesR3->PhysHandlers,     true, pgmR3RelocatePhysHandler,      &Args);
    1959     pVM->pgm.s.pLastPhysHandlerRC = NIL_RTRCPTR;
    19601942
    19611943    PPGMPHYSHANDLERTYPEINT pCurPhysType;
     
    19721954     */
    19731955    pgmR3PoolRelocate(pVM);
    1974 
    1975 #ifdef VBOX_WITH_STATISTICS
    1976     /*
    1977      * Statistics.
    1978      */
    1979     pVM->pgm.s.pStatsRC = MMHyperCCToRC(pVM, pVM->pgm.s.pStatsR3);
    1980     for (VMCPUID iCpu = 0; iCpu < pVM->cCpus; iCpu++)
    1981         pVM->aCpus[iCpu].pgm.s.pStatsRC = MMHyperCCToRC(pVM, pVM->aCpus[iCpu].pgm.s.pStatsR3);
    1982 #endif
    19831956}
    19841957
  • trunk/src/VBox/VMM/VMMR3/PGMPhys.cpp

    r80180 r80181  
    980980    pVM->pgm.s.pRamRangeTreeR3 = pRoot;
    981981    pVM->pgm.s.pRamRangeTreeR0 = pRoot ? pRoot->pSelfR0 : NIL_RTR0PTR;
    982     pVM->pgm.s.pRamRangeTreeRC = pRoot ? pRoot->pSelfRC : NIL_RTRCPTR;
    983982
    984983#ifdef VBOX_STRICT
     
    10481047    {
    10491048        pVM->pgm.s.pRamRangesXR0 = pCur->pSelfR0;
    1050         pVM->pgm.s.pRamRangesXRC = pCur->pSelfRC;
    10511049
    10521050        for (; pCur->pNextR3; pCur = pCur->pNextR3)
     
    10621060    {
    10631061        Assert(pVM->pgm.s.pRamRangesXR0 == NIL_RTR0PTR);
    1064         Assert(pVM->pgm.s.pRamRangesXRC == NIL_RTRCPTR);
    10651062    }
    10661063    ASMAtomicIncU32(&pVM->pgm.s.idRamRangesGen);
     
    11001097        pVM->pgm.s.pRamRangesXR3 = pNew;
    11011098        pVM->pgm.s.pRamRangesXR0 = pNew->pSelfR0;
    1102         pVM->pgm.s.pRamRangesXRC = pNew->pSelfRC;
    11031099    }
    11041100    ASMAtomicIncU32(&pVM->pgm.s.idRamRangesGen);
     
    11361132        pVM->pgm.s.pRamRangesXR3 = pNext;
    11371133        pVM->pgm.s.pRamRangesXR0 = pNext ? pNext->pSelfR0 : NIL_RTR0PTR;
    1138         pVM->pgm.s.pRamRangesXRC = pNext ? pNext->pSelfRC : NIL_RTRCPTR;
    11391134    }
    11401135    ASMAtomicIncU32(&pVM->pgm.s.idRamRangesGen);
     
    44114406                            pVM->pgm.s.pRomRangesR3 = pRomNew;
    44124407                            pVM->pgm.s.pRomRangesR0 = MMHyperCCToR0(pVM, pRomNew);
    4413                             pVM->pgm.s.pRomRangesRC = MMHyperCCToRC(pVM, pRomNew);
    44144408                        }
    44154409
  • trunk/src/VBox/VMM/VMMR3/PGMPool.cpp

    r80180 r80181  
    234234    pVM->pgm.s.pPoolR3 = pPool;
    235235    pVM->pgm.s.pPoolR0 = MMHyperR3ToR0(pVM, pPool);
    236     pVM->pgm.s.pPoolRC = MMHyperR3ToRC(pVM, pPool);
    237236
    238237    /*
     
    241240    pPool->pVMR3     = pVM;
    242241    pPool->pVMR0     = pVM->pVMR0;
    243     pPool->pVMRC     = pVM->pVMRC;
    244242    pPool->cMaxPages = cMaxPages;
    245243    pPool->cCurPages = PGMPOOL_IDX_FIRST;
     
    249247    pPool->paUsersR3 = paUsers;
    250248    pPool->paUsersR0 = MMHyperR3ToR0(pVM, paUsers);
    251     pPool->paUsersRC = MMHyperR3ToRC(pVM, paUsers);
    252249    for (unsigned i = 0; i < cMaxUsers; i++)
    253250    {
     
    262259    pPool->paPhysExtsR3 = paPhysExts;
    263260    pPool->paPhysExtsR0 = MMHyperR3ToR0(pVM, paPhysExts);
    264     pPool->paPhysExtsRC = MMHyperR3ToRC(pVM, paPhysExts);
    265261    for (unsigned i = 0; i < cMaxPhysExts; i++)
    266262    {
     
    466462void pgmR3PoolRelocate(PVM pVM)
    467463{
    468     pVM->pgm.s.pPoolRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pPoolR3);
    469     pVM->pgm.s.pPoolR3->pVMRC = pVM->pVMRC;
    470     pVM->pgm.s.pPoolR3->paUsersRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pPoolR3->paUsersR3);
    471     pVM->pgm.s.pPoolR3->paPhysExtsRC = MMHyperR3ToRC(pVM, pVM->pgm.s.pPoolR3->paPhysExtsR3);
     464    RT_NOREF(pVM);
    472465}
    473466
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r80180 r80181  
    21872187    /** The VM handle - R0 Ptr. */
    21882188    PVMR0                       pVMR0;
    2189     /** The VM handle - RC Ptr. */
    2190     PVMRC                       pVMRC;
    21912189    /** The max pool size. This includes the special IDs. */
    21922190    uint16_t                    cMaxPages;
     
    22032201    /** The number of present page table entries in the entire pool. */
    22042202    uint32_t                    cPresent;
    2205     /** Pointer to the array of user nodes - RC pointer. */
    2206     RCPTRTYPE(PPGMPOOLUSER)     paUsersRC;
    22072203    /** Pointer to the array of user nodes - R3 pointer. */
    22082204    R3PTRTYPE(PPGMPOOLUSER)     paUsersR3;
     
    22132209    /** The number of user nodes we've allocated. */
    22142210    uint16_t                    cMaxPhysExts;
    2215     /** Pointer to the array of physical xref extent - RC pointer. */
    2216     RCPTRTYPE(PPGMPOOLPHYSEXT)  paPhysExtsRC;
     2211    uint32_t                    u32Padding0b;
    22172212    /** Pointer to the array of physical xref extent nodes - R3 pointer. */
    22182213    R3PTRTYPE(PPGMPOOLPHYSEXT)  paPhysExtsR3;
     
    31993194    R0PTRTYPE(PPGMREGMMIORANGE)     apMmio2RangesR0[PGM_MMIO2_MAX_RANGES];
    32003195
    3201     /** RAM range TLB for RC. */
    3202     RCPTRTYPE(PPGMRAMRANGE)         apRamRangesTlbRC[PGM_RAMRANGE_TLB_ENTRIES];
    3203     /** RC pointer corresponding to PGM::pRamRangesXR3. */
    3204     RCPTRTYPE(PPGMRAMRANGE)         pRamRangesXRC;
    3205     /** Root of the RAM range search tree for raw-mode context. */
    3206     RCPTRTYPE(PPGMRAMRANGE)         pRamRangeTreeRC;
    3207     /** PGM offset based trees - RC Ptr. */
    3208     RCPTRTYPE(PPGMTREES)            pTreesRC;
    3209     /** Caching the last physical handler we looked up in RC. */
    3210     RCPTRTYPE(PPGMPHYSHANDLER)      pLastPhysHandlerRC;
    3211     /** Shadow Page Pool - RC Ptr. */
    3212     RCPTRTYPE(PPGMPOOL)             pPoolRC;
    3213 #ifndef PGM_WITHOUT_MAPPINGS
    3214     /** Linked list of GC mappings - for RC.
    3215      * The list is sorted ascending on address. */
    3216     RCPTRTYPE(PPGMMAPPING)          pMappingsRC;
    3217     RTRCPTR                         RCPtrAlignment0;
    3218 #endif
    3219     /** RC pointer corresponding to PGM::pRomRangesR3. */
    3220     RCPTRTYPE(PPGMROMRANGE)         pRomRangesRC;
    3221 #ifndef PGM_WITHOUT_MAPPINGS
    3222     /** Pointer to the page table entries for the dynamic page mapping area - GCPtr. */
    3223     RCPTRTYPE(PX86PTE)              paDynPageMap32BitPTEsGC;
    3224     /** Pointer to the page table entries for the dynamic page mapping area - GCPtr. */
    3225     RCPTRTYPE(PPGMSHWPTEPAE)        paDynPageMapPaePTEsGC;
    3226 #endif
    3227 
    3228 
    32293196#ifndef PGM_WITHOUT_MAPPINGS
    32303197    /** Pointer to the 5 page CR3 content mapping.
     
    32793246    uint32_t                        cDeprecatedPageLocks;
    32803247    /** Alignment padding. */
    3281     uint32_t                        au32Alignment2[3];
     3248    uint32_t                        au32Alignment2[1];
    32823249
    32833250
     
    34663433    R3PTRTYPE(PGMSTATS *)           pStatsR3;
    34673434    R0PTRTYPE(PGMSTATS *)           pStatsR0;
    3468     RCPTRTYPE(PGMSTATS *)           pStatsRC;
    3469     RTRCPTR                         RCPtrAlignment;
    34703435    /** @} */
    34713436#endif
     
    37543719    R0PTRTYPE(PX86PD)               pGst32BitPdR0;
    37553720#endif
    3756     /** The guest's page directory, static RC mapping. */
    3757     RCPTRTYPE(PX86PD)               pGst32BitPdRC;
    37583721    /** Mask containing the MBZ bits of a big page PDE. */
    37593722    uint32_t                        fGst32BitMbzBigPdeMask;
     
    37663729    /** @name PAE Guest Paging.
    37673730     * @{ */
    3768     /** The guest's page directory pointer table, static RC mapping. */
    3769     RCPTRTYPE(PX86PDPT)             pGstPaePdptRC;
    37703731    /** The guest's page directory pointer table, R3 pointer. */
    37713732    R3PTRTYPE(PX86PDPT)             pGstPaePdptR3;
     
    37843745    R0PTRTYPE(PX86PDPAE)            apGstPaePDsR0[4];
    37853746#endif
    3786     /** The guest's page directories, static GC mapping.
    3787      * Unlike the R3/R0 array the first entry can be accessed as a 2048 entry PD.
    3788      * These don't have to be up-to-date - use pgmGstGetPaePD() to access them. */
    3789     RCPTRTYPE(PX86PDPAE)            apGstPaePDsRC[4];
    37903747    /** The physical addresses of the guest page directories (PAE) pointed to by apGstPagePDsHC/GC.
    37913748     * @todo Remove this and use aGstPaePdpeRegs instead? */
     
    38493806    /** Pointer to the page of the current active CR3 - R0 Ptr. */
    38503807    R0PTRTYPE(PPGMPOOLPAGE)         pShwPageCR3R0;
    3851     /** Pointer to the page of the current active CR3 - RC Ptr. */
    3852     RCPTRTYPE(PPGMPOOLPAGE)         pShwPageCR3RC;
    3853     /** Explicit alignment. */
    3854     RTRCPTR                         alignment6;
    38553808    /** @} */
    38563809
     
    38763829    /** @name Statistics
    38773830     * @{ */
    3878     /** RC: Pointer to the statistics. */
    3879     RCPTRTYPE(PGMCPUSTATS *)        pStatsRC;
    3880     /** RC: Which statistic this \#PF should be attributed to. */
    3881     RCPTRTYPE(PSTAMPROFILE)         pStatTrap0eAttributionRC;
    38823831    /** R0: Pointer to the statistics. */
    38833832    R0PTRTYPE(PGMCPUSTATS *)        pStatsR0;
  • trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp

    r80180 r80181  
    250250    CHECK_PADDING_VMCPU(4096, pgm);
    251251    CHECK_PADDING_VMCPU(4096, cpum);
    252 #ifdef VBOX_WITH_STATISTICS
    253     PRINT_OFFSET(VMCPU, pgm.s.pStatTrap0eAttributionRC);
    254 #endif
    255252
    256253    PVM pVM = NULL; NOREF(pVM);
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