VirtualBox

Ignore:
Timestamp:
Feb 25, 2009 3:10:11 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
43384
Message:

VBOX_WITH_PGMPOOL_PAGING_ONLY: updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r17059 r17134  
    46434643    uint32_t     iOldShwUserTable  = pVM->pgm.s.iShwUserTable;
    46444644    uint32_t     iOldShwUser       = pVM->pgm.s.iShwUser;
     4645    PPGMPOOLPAGE pNewShwPageCR3;
    46454646
    46464647    Assert(!(GCPhysCR3 >> (PAGE_SHIFT + 32)));
    4647     rc = pgmPoolAlloc(pVM, GCPhysCR3 & GST_CR3_PAGE_MASK, BTH_PGMPOOLKIND_ROOT, SHW_POOL_ROOT_IDX, GCPhysCR3 >> PAGE_SHIFT, &pVM->pgm.s.CTX_SUFF(pShwPageCR3));
     4648    rc = pgmPoolAlloc(pVM, GCPhysCR3 & GST_CR3_PAGE_MASK, BTH_PGMPOOLKIND_ROOT, SHW_POOL_ROOT_IDX, GCPhysCR3 >> PAGE_SHIFT, &pNewShwPageCR3);
    46484649    if (rc == VERR_PGM_POOL_FLUSHED)
    46494650    {
    46504651        Log(("MapCR3: PGM pool flushed -> signal sync cr3\n"));
    4651         pVM->pgm.s.CTX_SUFF(pShwPageCR3) = pOldShwPageCR3;
    46524652        Assert(VM_FF_ISSET(pVM, VM_FF_PGM_SYNC_CR3));
    46534653        return VINF_PGM_SYNC_CR3;
     
    46554655    AssertRCReturn(rc, rc);
    46564656    rc = VINF_SUCCESS;
     4657
    46574658    pVM->pgm.s.iShwUser      = SHW_POOL_ROOT_IDX;
    46584659    pVM->pgm.s.iShwUserTable = GCPhysCR3 >> PAGE_SHIFT;
     4660    pVM->pgm.s.CTX_SUFF(pShwPageCR3) = pNewShwPageCR3;
    46594661#  ifdef IN_RING0
    46604662    pVM->pgm.s.pShwPageCR3R3 = MMHyperCCToR3(pVM, pVM->pgm.s.CTX_SUFF(pShwPageCR3));
     
    46824684    Assert(VM_FF_ISSET(pVM, VM_FF_PGM_SYNC_CR3_NON_GLOBAL));
    46834685#   endif
    4684     rc = PGMMapActivateAll(pVM);
     4686    rc = pgmMapActivateCR3(pVM, pNewShwPageCR3);
    46854687    AssertRCReturn(rc, rc);
    46864688#  endif
     
    47834785# ifndef PGM_WITHOUT_MAPPINGS
    47844786    /* Remove the hypervisor mappings from the shadow page table. */
    4785     PGMMapDeactivateAll(pVM);
     4787    pgmMapDeactivateCR3(pVM, pVM->pgm.s.CTX_SUFF(pShwPageCR3));
    47864788# endif
    47874789
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