VirtualBox

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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r80176 r80179  
    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;
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