VirtualBox

Changeset 31565 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Aug 11, 2010 12:47:07 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
64669
Message:

PGM,HWACCM: MMIO optimizations - coding in progress.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r31402 r31565  
    12711271#endif /* IN_RC */
    12721272
     1273#ifdef IN_RING0
     1274/**
     1275 * Synchronizes a range of nested page table entries.
     1276 *
     1277 * The caller must own the PGM lock.
     1278 *
     1279 * @param   pVCpu               The current CPU.
     1280 * @param   GCPhys              Where to start.
     1281 * @param   cPages              How many pages which entries should be synced.
     1282 * @param   enmShwPagingMode    The shadow paging mode (PGMMODE_EPT for VT-x,
     1283 *                              host paging mode for AMD-V).
     1284 */
     1285int pgmShwSyncNestedPageLocked(PVMCPU pVCpu, RTGCPHYS GCPhysFault, uint32_t cPages, PGMMODE enmShwPagingMode)
     1286{
     1287    Assert(PGMIsLockOwner(pVCpu->CTX_SUFF(pVM)));
     1288
     1289    int rc;
     1290    switch (enmShwPagingMode)
     1291    {
     1292        case PGMMODE_32_BIT:
     1293        {
     1294            X86PDE PdeDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A };
     1295            rc = PGM_BTH_NAME_32BIT_PROT(SyncPage)(pVCpu, PdeDummy, GCPhysFault, cPages, ~0U /*uErr*/);
     1296            break;
     1297        }
     1298
     1299        case PGMMODE_PAE:
     1300        case PGMMODE_PAE_NX:
     1301        {
     1302            X86PDEPAE PdeDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A };
     1303            rc = PGM_BTH_NAME_PAE_PROT(SyncPage)(pVCpu, PdeDummy, GCPhysFault, cPages, ~0U /*uErr*/);
     1304            break;
     1305        }
     1306
     1307        case PGMMODE_AMD64:
     1308        case PGMMODE_AMD64_NX:
     1309        {
     1310            X86PDEPAE PdeDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A };
     1311            rc = PGM_BTH_NAME_AMD64_PROT(SyncPage)(pVCpu, PdeDummy, GCPhysFault, cPages, ~0U /*uErr*/);
     1312            break;
     1313        }
     1314
     1315        case PGMMODE_EPT:
     1316        {
     1317            X86PDEPAE PdeDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A };
     1318            rc = PGM_BTH_NAME_EPT_PROT(SyncPage)(pVCpu, PdeDummy, GCPhysFault, cPages, ~0U /*uErr*/);
     1319            break;
     1320        }
     1321
     1322        default:
     1323            AssertMsgFailedReturn(("%d\n", enmShwPagingMode), VERR_INTERNAL_ERROR_5);
     1324    }
     1325    return rc;
     1326}
     1327#endif /* IN_RING0 */
     1328
     1329
    12731330/**
    12741331 * Gets effective Guest OS page information.
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r31447 r31565  
    146146{
    147147# if !PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE)
    148     GSTPDE const    PdeSrcDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A};
     148    GSTPDE const    PdeSrcDummy = { X86_PDE_P | X86_PDE_US | X86_PDE_RW | X86_PDE_A };
    149149#endif
    150150    PVM             pVM         = pVCpu->CTX_SUFF(pVM);
Note: See TracChangeset for help on using the changeset viewer.

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