Changeset 31851 in vbox
- Timestamp:
- Aug 23, 2010 8:18:42 AM (14 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMBth.h
r31141 r31851 163 163 pVCpu->pgm.s.iShwUser = SHW_POOL_ROOT_IDX; 164 164 pVCpu->pgm.s.iShwUserTable = GCPhysCR3 >> PAGE_SHIFT; 165 int rc = pgmPoolAlloc(pVM, GCPhysCR3, BTH_PGMPOOLKIND_ROOT, pVCpu->pgm.s.iShwUser, pVCpu->pgm.s.iShwUserTable, &pVCpu->pgm.s.pShwPageCR3R3); 165 int rc = pgmPoolAlloc(pVM, GCPhysCR3, BTH_PGMPOOLKIND_ROOT, pVCpu->pgm.s.iShwUser, pVCpu->pgm.s.iShwUserTable, 166 &pVCpu->pgm.s.pShwPageCR3R3); 166 167 if (rc == VERR_PGM_POOL_FLUSHED) 167 168 { -
trunk/src/VBox/VMM/PGMInternal.h
r31850 r31851 3800 3800 # endif 3801 3801 #endif 3802 int pgmPoolAllocEx(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, PGMPOOLACCESS enmAccess, uint16_t iUser, uint32_t iUserTable, PPPGMPOOLPAGE ppPage, bool fLockPage = false); 3803 3804 DECLINLINE(int) pgmPoolAlloc(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, uint16_t iUser, uint32_t iUserTable, PPPGMPOOLPAGE ppPage, bool fLockPage = false) 3805 { 3806 return pgmPoolAllocEx(pVM, GCPhys, enmKind, PGMPOOLACCESS_DONTCARE, iUser, iUserTable, ppPage, fLockPage); 3802 int pgmPoolAllocEx(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, PGMPOOLACCESS enmAccess, uint16_t iUser, 3803 uint32_t iUserTable, bool fLockPage, PPPGMPOOLPAGE ppPage); 3804 3805 DECLINLINE(int) pgmPoolAlloc(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, uint16_t iUser, uint32_t iUserTable, 3806 PPPGMPOOLPAGE ppPage) 3807 { 3808 return pgmPoolAllocEx(pVM, GCPhys, enmKind, PGMPOOLACCESS_DONTCARE, iUser, iUserTable, false, ppPage); 3807 3809 } 3808 3810 -
trunk/src/VBox/VMM/PGMShw.h
r31775 r31851 194 194 pgmLock(pVM); 195 195 196 int rc = pgmPoolAlloc(pVM, GCPhysCR3, PGMPOOLKIND_ROOT_NESTED, PGMPOOL_IDX_NESTED_ROOT, GCPhysCR3 >> PAGE_SHIFT, &pNewShwPageCR3, true /* lock page */); 196 int rc = pgmPoolAllocEx(pVM, GCPhysCR3, PGMPOOLKIND_ROOT_NESTED, PGMPOOLACCESS_DONTCARE, PGMPOOL_IDX_NESTED_ROOT, 197 GCPhysCR3 >> PAGE_SHIFT, true /*fLockPage*/, &pNewShwPageCR3); 197 198 AssertFatalRC(rc); 198 199 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r31849 r31851 2617 2617 GCPhys |= (iPDDst & 1) * (PAGE_SIZE / 2); 2618 2618 # endif 2619 rc = pgmPoolAlloc(pVM, GCPhys, BTH_PGMPOOLKIND_PT_FOR_PT, pShwPde->idx, 2619 rc = pgmPoolAlloc(pVM, GCPhys, BTH_PGMPOOLKIND_PT_FOR_PT, pShwPde->idx, iPDDst, &pShwPage); 2620 2620 } 2621 2621 else … … 2648 2648 enmAccess = (fNoExecute) ? PGMPOOLACCESS_SUPERVISOR_R_NX : PGMPOOLACCESS_SUPERVISOR_R; 2649 2649 } 2650 rc = pgmPoolAllocEx(pVM, GCPhys, BTH_PGMPOOLKIND_PT_FOR_BIG, enmAccess, pShwPde->idx, iPDDst, &pShwPage); 2650 rc = pgmPoolAllocEx(pVM, GCPhys, BTH_PGMPOOLKIND_PT_FOR_BIG, enmAccess, pShwPde->idx, iPDDst, false /*fLockPage*/, 2651 &pShwPage); 2651 2652 } 2652 2653 if (rc == VINF_SUCCESS) … … 4494 4495 4495 4496 Assert(!(GCPhysCR3 >> (PAGE_SHIFT + 32))); 4496 rc = pgmPoolAlloc(pVM, GCPhysCR3 & GST_CR3_PAGE_MASK, BTH_PGMPOOLKIND_ROOT, SHW_POOL_ROOT_IDX, GCPhysCR3 >> PAGE_SHIFT, &pNewShwPageCR3, true /* lock page */); 4497 rc = pgmPoolAllocEx(pVM, GCPhysCR3 & GST_CR3_PAGE_MASK, BTH_PGMPOOLKIND_ROOT, PGMPOOLACCESS_DONTCARE, SHW_POOL_ROOT_IDX, 4498 GCPhysCR3 >> PAGE_SHIFT, true /*fLockPage*/, &pNewShwPageCR3); 4497 4499 AssertFatalRC(rc); 4498 4500 rc = VINF_SUCCESS; -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r31849 r31851 4755 4755 * @param iUser The shadow page pool index of the user table. 4756 4756 * @param iUserTable The index into the user table (shadowed). 4757 * @param fLockPage Lock the page 4757 4758 * @param ppPage Where to store the pointer to the page. NULL is stored here on failure. 4758 * @param fLockPage Lock the page4759 */ 4760 int pgmPoolAllocEx(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, PGMPOOLACCESS enmAccess, uint16_t iUser, uint32_t iUserTable, PPPGMPOOLPAGE ppPage, bool fLockPage)4759 */ 4760 int pgmPoolAllocEx(PVM pVM, RTGCPHYS GCPhys, PGMPOOLKIND enmKind, PGMPOOLACCESS enmAccess, uint16_t iUser, uint32_t iUserTable, 4761 bool fLockPage, PPPGMPOOLPAGE ppPage) 4761 4762 { 4762 4763 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
Note:
See TracChangeset
for help on using the changeset viewer.