Changeset 9888 in vbox for trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
- Timestamp:
- Jun 23, 2008 3:46:11 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 32279
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r9874 r9888 93 93 # define GST_PDPT_MASK X86_PDPT_MASK_PAE 94 94 # define GST_PTE_PG_MASK X86_PTE_PAE_PG_MASK 95 # define GST_CR3_PAGE_MASK X86_CR3_PAE_PAGE_MASK 95 96 # else 96 97 # define GST_TOTAL_PD_ENTRIES (X86_PG_AMD64_ENTRIES * X86_PG_AMD64_PDPE_ENTRIES) … … 100 101 # define GST_PDPT_MASK X86_PDPT_MASK_AMD64 101 102 # define GST_PTE_PG_MASK X86_PTE_PAE_PG_MASK_FULL 103 # define GST_CR3_PAGE_MASK X86_CR3_AMD64_PAGE_MASK 102 104 # endif 103 105 # define GST_PT_SHIFT X86_PT_PAE_SHIFT 104 106 # define GST_PT_MASK X86_PT_PAE_MASK 105 # define GST_CR3_PAGE_MASK X86_CR3_PAE_PAGE_MASK106 107 #endif 107 108 … … 466 467 } 467 468 # elif PGM_GST_TYPE == PGM_TYPE_AMD64 469 PPGMPOOL pPool = pVM->pgm.s.CTXSUFF(pPool); 470 468 471 pVM->pgm.s.pGstPaePML4HC = (R3R0PTRTYPE(PX86PML4))HCPtrGuestCR3; 472 473 if (pVM->pgm.s.pShwAmd64CR3) 474 pgmPoolFreeByPage(pPool, pVM->pgm.s.pShwAmd64CR3, PGMPOOL_IDX_AMD64_CR3, pVM->pgm.s.pShwAmd64CR3->GCPhys >> PAGE_SHIFT); 475 476 Assert(!(GCPhysCR3 >> (PAGE_SHIFT + 32))); 477 rc = pgmPoolAlloc(pVM, GCPhysCR3, PGMPOOLKIND_ROOT_PML4, PGMPOOL_IDX_AMD64_CR3, GCPhysCR3 >> PAGE_SHIFT, &pVM->pgm.s.pShwAmd64CR3); 478 if (rc == VERR_PGM_POOL_FLUSHED) 479 { 480 AssertFailed(); /* check if we handle this properly!! */ 481 return VINF_PGM_SYNC_CR3; 482 } 469 483 # endif 470 484 } … … 510 524 #elif PGM_GST_TYPE == PGM_TYPE_AMD64 511 525 pVM->pgm.s.pGstPaePML4HC = 0; 526 if (pVM->pgm.s.pShwAmd64CR3) 527 { 528 PPGMPOOL pPool = pVM->pgm.s.CTXSUFF(pPool); 529 pgmPoolFreeByPage(pPool, pVM->pgm.s.pShwAmd64CR3, PGMPOOL_IDX_AMD64_CR3, pVM->pgm.s.pShwAmd64CR3->GCPhys >> PAGE_SHIFT); 530 } 531 512 532 #else /* prot/real mode stub */ 513 533 /* nothing to do */
Note:
See TracChangeset
for help on using the changeset viewer.