Changeset 17058 in vbox
- Timestamp:
- Feb 24, 2009 12:21:56 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/pgm.h
r17057 r17058 459 459 VMMDECL(int) PGMDynLockHCPage(PVM pVM, RCPTRTYPE(uint8_t *) GCPage); 460 460 VMMDECL(int) PGMDynUnlockHCPage(PVM pVM, RCPTRTYPE(uint8_t *) GCPage); 461 # ifdef VBOX_STRICT 462 VMMDECL(void) PGMDynCheckLocks(PVM pVM); 463 # endif 461 464 # endif 462 465 VMMDECL(void) PGMDynMapStartAutoSet(PVMCPU pVCpu); -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r17057 r17058 2250 2250 } 2251 2251 2252 # ifdef VBOX_STRICT 2253 /** 2254 * Check for lock leaks. 2255 * 2256 * @param pVM VM handle. 2257 */ 2258 VMMDECL(void) PGMDynCheckLocks(PVM pVM) 2259 { 2260 for (unsigned i=0;i<(MM_HYPER_DYNAMIC_SIZE >> PAGE_SHIFT);i++) 2261 Assert(!(pVM->pgm.s.paDynPageMap32BitPTEsGC[i].u & PGM_PTFLAGS_DYN_LOCKED)); 2262 } 2263 # endif 2252 2264 # endif /* IN_RC */ 2253 2265 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r17001 r17058 82 82 PGM_BTH_DECL(int, Trap0eHandler)(PVM pVM, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault) 83 83 { 84 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 85 PGMDynCheckLocks(pVM); 86 # endif 87 84 88 # if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64) \ 85 89 && PGM_SHW_TYPE != PGM_TYPE_NESTED \ … … 2452 2456 Assert(!PdeDst.n.u1Present); /* We're only supposed to call SyncPT on PDE!P and conflicts.*/ 2453 2457 2458 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 2459 /* Make sure the dynamic pPdeDst mapping will not be reused during this function. */ 2460 PGMDynLockHCPage(pVM, pPdeDst); 2461 # endif 2462 2454 2463 /* 2455 2464 * Sync page directory entry. … … 2518 2527 } 2519 2528 *pPdeDst = PdeDst; 2529 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 2530 PGMDynUnlockHCPage(pVM, pPdeDst); 2531 # endif 2520 2532 return VINF_SUCCESS; 2521 2533 } … … 2523 2535 { 2524 2536 VM_FF_SET(pVM, VM_FF_PGM_SYNC_CR3); 2537 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 2538 PGMDynUnlockHCPage(pVM, pPdeDst); 2539 # endif 2525 2540 return VINF_PGM_SYNC_CR3; 2526 2541 } … … 2553 2568 | (PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D)); 2554 2569 *pPdeDst = PdeDst; 2570 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 2571 PGMDynUnlockHCPage(pVM, pPdeDst); 2572 # endif 2555 2573 2556 2574 /* … … 2656 2674 } 2657 2675 *pPdeDst = PdeDst; 2676 # if defined(IN_RC) && defined(VBOX_WITH_PGMPOOL_PAGING_ONLY) 2677 PGMDynUnlockHCPage(pVM, pPdeDst); 2678 # endif 2658 2679 2659 2680 /*
Note:
See TracChangeset
for help on using the changeset viewer.