VirtualBox

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


Ignore:
Timestamp:
Aug 26, 2010 2:00:51 PM (14 years ago)
Author:
vboxsync
Message:

Changed the remaining X86_PML4E_PG_MASK uses to X86_PML4E_PG_MASK_FULL.

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

Legend:

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

    r31997 r31998  
    10741074    /* Allocate page directory pointer table if not present. */
    10751075    if (    !pPml4e->n.u1Present
    1076         &&  !(pPml4e->u & X86_PML4E_PG_MASK))
     1076        &&  !(pPml4e->u & X86_PML4E_PG_MASK_FULL))
    10771077    {
    10781078        RTGCPTR64   GCPml4;
     
    10991099    else
    11001100    {
    1101         pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK);
     1101        pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK_FULL);
    11021102        AssertReturn(pShwPage, VERR_INTERNAL_ERROR);
    11031103
     
    11771177    PVM             pVM      = pVCpu->CTX_SUFF(pVM);
    11781178    PPGMPOOL        pPool    = pVM->pgm.s.CTX_SUFF(pPool);
    1179     PPGMPOOLPAGE    pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK);
     1179    PPGMPOOLPAGE    pShwPage = pgmPoolGetPage(pPool, pPml4e->u & X86_PML4E_PG_MASK_FULL);
    11801180    AssertReturn(pShwPage, VERR_INTERNAL_ERROR);
    11811181
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r31996 r31998  
    36693669        }
    36703670
    3671         pShwPdpt = pgmPoolGetPage(pPool, pPml4eDst->u & X86_PML4E_PG_MASK);
     3671        pShwPdpt = pgmPoolGetPage(pPool, pPml4eDst->u & X86_PML4E_PG_MASK_FULL);
    36723672        GCPhysPdptSrc = pPml4eSrc->u & X86_PML4E_PG_MASK_FULL;
    36733673
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r31996 r31998  
    662662                {
    663663                    LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPML4->a[iShw].u));
    664                     pgmPoolFree(pVM, uShw.pPML4->a[iShw].u & X86_PML4E_PG_MASK, pPage->idx, iShw);
     664                    pgmPoolFree(pVM, uShw.pPML4->a[iShw].u & X86_PML4E_PG_MASK_FULL, pPage->idx, iShw);
    665665                    ASMAtomicWriteSize(&uShw.pPML4->a[iShw].u, 0);
    666666                }
     
    673673                    {
    674674                        LogFlow(("pgmPoolMonitorChainChanging: pml4 iShw2=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPML4->a[iShw2].u));
    675                         pgmPoolFree(pVM, uShw.pPML4->a[iShw2].u & X86_PML4E_PG_MASK, pPage->idx, iShw2);
     675                        pgmPoolFree(pVM, uShw.pPML4->a[iShw2].u & X86_PML4E_PG_MASK_FULL, pPage->idx, iShw2);
    676676                        ASMAtomicWriteSize(&uShw.pPML4->a[iShw2].u, 0);
    677677                    }
     
    43484348                pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i);
    43494349            else
    4350                 AssertFatalMsgFailed(("%RX64\n", pShwPML4->a[i].u & X86_PML4E_PG_MASK));
     4350                AssertFatalMsgFailed(("%RX64\n", pShwPML4->a[i].u & X86_PML4E_PG_MASK_FULL));
    43514351            /** @todo 64-bit guests: have to ensure that we're not exhausting the dynamic mappings! */
    43524352        }
  • trunk/src/VBox/VMM/VMMAll/PGMAllShw.h

    r31775 r31998  
    217217    /* PDPT */
    218218    PX86PDPT        pPDPT;
    219     int rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK, &pPDPT);
     219    int rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK_FULL, &pPDPT);
    220220    if (RT_FAILURE(rc))
    221221        return rc;
     
    383383        /* PDPT */
    384384        PX86PDPT        pPDPT;
    385         rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK, &pPDPT);
     385        rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pml4e.u & X86_PML4E_PG_MASK_FULL, &pPDPT);
    386386        if (RT_FAILURE(rc))
    387387            return rc;
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