Lines Matching defs:pVM

59     PVM         pVM;
407 PVM pVM = pVCpu->CTX_SUFF(pVM);
461 PGM_LOCK_ASSERT_OWNER(pVM);
462 pgmUnlock(pVM);
525 * @param pVM Pointer to the VM.
528 PPGMMAPPING pgmGetMapping(PVM pVM, RTGCPTR GCPtr)
530 PPGMMAPPING pMapping = pVM->pgm.s.CTX_SUFF(pMappings);
609 PVM pVM = pVCpu->CTX_SUFF(pVM);
640 if (!pVM->pgm.s.fNestedPaging)
722 PVM pVM = pVCpu->CTX_SUFF(pVM);
730 REMNotifyInvalidatePage(pVM, GCPtrPage);
738 if (pgmMapAreMappingsFloating(pVM))
740 if ( pgmGetMapping(pVM, GCPtrPage)
745 STAM_COUNTER_INC(&pVM->pgm.s.CTX_SUFF(pStats)->StatRCInvlPgConflict);
752 STAM_COUNTER_INC(&pVM->pgm.s.CTX_SUFF(pStats)->StatRCInvlPgSyncMonCR3);
762 pgmLock(pVM);
764 pgmUnlock(pVM);
775 Assert(!pVM->pgm.s.fMappingsFixed); Assert(pgmMapAreMappingsEnabled(pVM));
785 CSAMR3FlushPage(pVM, GCPtrPage);
804 * @param pVM Pointer to the VM.
809 VMMDECL(VBOXSTRICTRC) PGMInterpretInstruction(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault)
811 NOREF(pVM);
834 pgmLock(pVCpu->CTX_SUFF(pVM));
836 pgmUnlock(pVCpu->CTX_SUFF(pVM));
862 PVM pVM = pVCpu->CTX_SUFF(pVM);
863 pgmLock(pVM);
865 pgmUnlock(pVM);
984 PVM pVM = pVCpu->CTX_SUFF(pVM);
985 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
989 PGM_LOCK_ASSERT_OWNER(pVM);
998 if (pVM->pgm.s.fNestedPaging || !CPUMIsGuestPagingEnabled(pVCpu))
1013 Assert(!HMIsEnabled(pVM));
1033 rc = pgmPoolAlloc(pVM, GCPdPt, enmKind, PGMPOOLACCESS_DONTCARE, PGM_A20_IS_ENABLED(pVCpu),
1059 *ppPD = (PX86PDPAE)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1076 PVM pVM = pVCpu->CTX_SUFF(pVM);
1078 PGM_LOCK_ASSERT_OWNER(pVM);
1089 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK);
1115 PVM pVM = pVCpu->CTX_SUFF(pVM);
1116 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
1119 bool fNestedPagingOrNoGstPaging = pVM->pgm.s.fNestedPaging || !CPUMIsGuestPagingEnabled(pVCpu);
1123 PGM_LOCK_ASSERT_OWNER(pVM);
1147 rc = pgmPoolAlloc(pVM, GCPml4, enmKind, PGMPOOLACCESS_DONTCARE, PGM_A20_IS_ENABLED(pVCpu),
1163 PX86PDPT pPdpt = (PX86PDPT)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1186 rc = pgmPoolAlloc(pVM, GCPdPt, enmKind, PGMPOOLACCESS_DONTCARE, PGM_A20_IS_ENABLED(pVCpu),
1201 *ppPD = (PX86PDPAE)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1220 PGM_LOCK_ASSERT_OWNER(pVCpu->CTX_SUFF(pVM));
1231 PVM pVM = pVCpu->CTX_SUFF(pVM);
1232 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
1237 PCX86PDPT pPdpt = *ppPdpt = (PX86PDPT)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1244 *ppPD = (PX86PDPAE)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1262 PVM pVM = pVCpu->CTX_SUFF(pVM);
1264 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
1270 Assert(pVM->pgm.s.fNestedPaging);
1271 PGM_LOCK_ASSERT_OWNER(pVM);
1273 pPml4 = (PEPTPML4)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3));
1284 rc = pgmPoolAlloc(pVM, GCPml4, PGMPOOLKIND_EPT_PDPT_FOR_PHYS, PGMPOOLACCESS_DONTCARE, PGM_A20_IS_ENABLED(pVCpu),
1303 PEPTPDPT pPdpt = (PEPTPDPT)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1314 rc = pgmPoolAlloc(pVM, GCPdPt, PGMPOOLKIND_EPT_PD_FOR_PHYS, PGMPOOLACCESS_DONTCARE, PGM_A20_IS_ENABLED(pVCpu),
1332 *ppPD = (PEPTPD)PGMPOOL_PAGE_2_PTR_V2(pVM, pVCpu, pShwPage);
1352 PGM_LOCK_ASSERT_OWNER(pVCpu->CTX_SUFF(pVM));
1561 PVM pVM = pVCpu->CTX_SUFF(pVM);
1562 pgmLock(pVM);
1568 int rc = pgmPhysGetPageEx(pVM, GCPhysCR3, &pPage);
1572 rc = pgmPhysGCPhys2CCPtrInternalDepr(pVM, pPage, GCPhysCR3, (void **)&HCPtrGuestCR3);
1581 pgmUnlock(pVM);
1587 pgmUnlock(pVM);
1605 PVM pVM = pVCpu->CTX_SUFF(pVM);
1606 pgmLock(pVM);
1610 int rc = pgmPhysGetPageEx(pVM, GCPhysCR3, &pPage);
1614 rc = pgmPhysGCPhys2CCPtrInternalDepr(pVM, pPage, GCPhysCR3, (void **)&HCPtrGuestCR3);
1623 pgmUnlock(pVM);
1630 pgmUnlock(pVM);
1648 PVM pVM = pVCpu->CTX_SUFF(pVM);
1649 pgmLock(pVM);
1658 int rc = pgmPhysGetPageEx(pVM, GCPhys, &pPage);
1664 rc = pgmPhysGCPhys2CCPtrInternalDepr(pVM, pPage, GCPhys, &HCPtr);
1669 RCPtr = (RTRCPTR)(RTRCUINTPTR)(pVM->pgm.s.GCPtrCR3Mapping + (1 + iPdpt) * PAGE_SIZE);
1670 rc = PGMMap(pVM, (RTRCUINTPTR)RCPtr, PGM_PAGE_GET_HCPHYS(pPage), PAGE_SIZE, 0);
1685 pgmUnlock(pVM);
1698 pgmUnlock(pVM);
1715 PVM pVM = pVCpu->CTX_SUFF(pVM);
1716 pgmLock(pVM);
1720 int rc = pgmPhysGetPageEx(pVM, GCPhysCR3, &pPage);
1724 rc = pgmPhysGCPhys2CCPtrInternalDepr(pVM, pPage, GCPhysCR3, (void **)&HCPtrGuestCR3);
1733 pgmUnlock(pVM);
1738 pgmUnlock(pVM);
1829 * @param pVM Pointer to the VM.
1831 VMMDECL(RTHCPHYS) PGMGetInterHCCR3(PVM pVM)
1833 switch (pVM->pgm.s.enmHostMode)
1837 return pVM->pgm.s.HCPhysInterPD;
1843 return pVM->pgm.s.HCPhysInterPaePDPT;
1849 return pVM->pgm.s.HCPhysInterPaePDPT;
1852 AssertMsgFailed(("enmHostMode=%d\n", pVM->pgm.s.enmHostMode));
1861 * @param pVM Pointer to the VM.
1864 VMMDECL(RTHCPHYS) PGMGetInterRCCR3(PVM pVM, PVMCPU pVCpu)
1869 return pVM->pgm.s.HCPhysInterPD;
1873 return pVM->pgm.s.HCPhysInterPaePDPT;
1877 return pVM->pgm.s.HCPhysInterPaePML4;
1893 * @param pVM Pointer to the VM.
1895 VMMDECL(RTHCPHYS) PGMGetInter32BitCR3(PVM pVM)
1897 return pVM->pgm.s.HCPhysInterPD;
1904 * @param pVM Pointer to the VM.
1906 VMMDECL(RTHCPHYS) PGMGetInterPaeCR3(PVM pVM)
1908 return pVM->pgm.s.HCPhysInterPaePDPT;
1915 * @param pVM Pointer to the VM.
1917 VMMDECL(RTHCPHYS) PGMGetInterAmd64CR3(PVM pVM)
1919 return pVM->pgm.s.HCPhysInterPaePML4;
1938 PVM pVM = pVCpu->CTX_SUFF(pVM);
1979 if (pgmMapAreMappingsFloating(pVM))
1988 if (pgmMapAreMappingsFloating(pVM))
2000 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool);
2003 pgmLock(pVM);
2004 pgmPoolResetDirtyPages(pVM);
2005 pgmUnlock(pVM);
2014 Assert(!pVM->pgm.s.fMappingsFixed); Assert(pgmMapAreMappingsEnabled(pVM));
2050 Assert(pVCpu->CTX_SUFF(pVM)->pgm.s.fNestedPaging || pVCpu->pgm.s.enmShadowMode == PGMMODE_EPT);
2051 Assert(!pgmMapAreMappingsEnabled(pVCpu->CTX_SUFF(pVM)));
2214 Assert(!pVCpu->CTX_SUFF(pVM)->pgm.s.fMappingsFixed);
2215 Assert(pgmMapAreMappingsEnabled(pVCpu->CTX_SUFF(pVM)));
2289 return PGMR3ChangeMode(pVCpu->CTX_SUFF(pVM), pVCpu, enmGuestMode);
2315 Assert(pVCpu->CTX_SUFF(pVM)->cCpus == 1);
2355 * @param pVM Pointer to the VM.
2357 VMMDECL(PGMMODE) PGMGetHostMode(PVM pVM)
2359 switch (pVM->pgm.s.enmHostMode)
2381 default: AssertMsgFailed(("enmHostMode=%d\n", pVM->pgm.s.enmHostMode)); break;
2474 * @param pVM Pointer to the VM.
2476 VMMDECL(bool) PGMHasDirtyPages(PVM pVM)
2478 return pVM->pgm.s.CTX_SUFF(pPool)->cDirtyPages != 0;
2486 * @param pVM Pointer to the VM.
2488 VMMDECL(bool) PGMIsLockOwner(PVM pVM)
2490 return PDMCritSectIsOwner(&pVM->pgm.s.CritSectX);
2498 * @param pVM Pointer to the VM.
2501 VMMDECL(int) PGMSetLargePageUsage(PVM pVM, bool fUseLargePages)
2503 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_VM_HANDLE);
2505 pVM->fUseLargePages = fUseLargePages;
2514 * @param pVM Pointer to the VM.
2517 int pgmLockDebug(PVM pVM, RT_SRC_POS_DECL)
2519 int pgmLock(PVM pVM)
2523 int rc = PDMCritSectEnterDebug(&pVM->pgm.s.CritSectX, VERR_SEM_BUSY, (uintptr_t)ASMReturnAddress(), RT_SRC_POS_ARGS);
2525 int rc = PDMCritSectEnter(&pVM->pgm.s.CritSectX, VERR_SEM_BUSY);
2529 rc = VMMRZCallRing3NoCpu(pVM, VMMCALLRING3_PGM_LOCK, 0);
2540 * @param pVM Pointer to the VM.
2542 void pgmUnlock(PVM pVM)
2544 uint32_t cDeprecatedPageLocks = pVM->pgm.s.cDeprecatedPageLocks;
2545 pVM->pgm.s.cDeprecatedPageLocks = 0;
2546 int rc = PDMCritSectLeave(&pVM->pgm.s.CritSectX);
2548 pVM->pgm.s.cDeprecatedPageLocks = cDeprecatedPageLocks;
2557 * @param pVM Pointer to the VM.
2563 int pgmRZDynMapGCPageCommon(PVM pVM, PVMCPU pVCpu, RTGCPHYS GCPhys, void **ppv RTLOG_COMMA_SRC_POS_DECL)
2565 pgmLock(pVM);
2571 PPGMPAGE pPage = pgmPhysGetPage(pVM, GCPhys);
2574 rc = pgmPhysPageMakeWritable(pVM, pPage, GCPhys);
2591 pgmUnlock(pVM);
2756 * @param pVM Pointer to the VM.
2758 VMMDECL(unsigned) PGMAssertNoMappingConflicts(PVM pVM)
2763 Assert(pVM->cCpus == 1);
2764 PVMCPU pVCpu = &pVM->aCpus[0];
2769 for (PPGMMAPPING pMapping = pVM->pgm.s.CTX_SUFF(pMappings);
2800 * @param pVM Pointer to the VM.
2805 VMMDECL(unsigned) PGMAssertCR3(PVM pVM, PVMCPU pVCpu, uint64_t cr3, uint64_t cr4)
2808 pgmLock(pVM);
2810 pgmUnlock(pVM);