VirtualBox

Ignore:
Timestamp:
Jun 17, 2008 10:14:26 AM (16 years ago)
Author:
vboxsync
Message:

PAE & AMD64 paging updates.

  • create references to upper level shadow descriptors
  • don't flush lower levels if an upper level table entry changes
File:
1 edited

Legend:

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

    r9690 r9752  
    779779
    780780        Assert(!(pPdpe->u & X86_PDPE_PG_MASK));
    781         rc = pgmPoolAlloc(pVM, pPdptGst->a[iPdPt].u & X86_PDPE_PG_MASK, PGMPOOLKIND_64BIT_PD_FOR_64BIT_PD, PGMPOOL_IDX_PDPT, iPml4e * X86_PG_PAE_ENTRIES + iPdPt, &pShwPage);
     781        /* Create a reference back to the PML4E by using the index in its shadow page. */
     782        rc = pgmPoolAlloc(pVM, pPdptGst->a[iPdPt].u & X86_PDPE_PG_MASK, PGMPOOLKIND_64BIT_PD_FOR_64BIT_PD, pShwPage->idx, iPdPt, &pShwPage);
    782783        if (rc == VERR_PGM_POOL_FLUSHED)
    783784            return VINF_PGM_SYNC_CR3;
     
    825826
    826827    const unsigned iPdPt = (GCPtr >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
    827     PX86PDPT  pPdpt = (PX86PDPT)PGMPOOL_PAGE_2_PTR(pVM, pShwPage);   
     828    PX86PDPT  pPdpt = (PX86PDPT)PGMPOOL_PAGE_2_PTR(pVM, pShwPage);
    828829    PX86PDPE  pPdpe = &pPdpt->a[iPdPt];
    829830
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