- Timestamp:
- May 14, 2009 10:15:44 AM (16 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/em.h
r19611 r19682 181 181 VMMR3DECL(int) EMR3Interpret(PVM pVM); 182 182 183 VMMR3DECL(void) EMR3ReleaseOwnedLocks(PVM pVM); 184 183 185 /** 184 186 * Command argument for EMR3RawSetMode(). -
trunk/include/VBox/iom.h
r18232 r19682 264 264 RCPTRTYPE(PFNIOMMMIOFILL) pfnFillCallback); 265 265 VMMR3DECL(int) IOMR3MMIODeregister(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange); 266 267 VMMR3DECL(void) IOMR3ReleaseOwnedLocks(PVM pVM); 268 266 269 /** @} */ 267 270 #endif /* IN_RING3 */ -
trunk/include/VBox/mm.h
r19666 r19682 253 253 254 254 VMMR3DECL(int) MMR3HCPhys2HCVirt(PVM pVM, RTHCPHYS HCPhys, void **ppv); 255 255 VMMR3DECL(void) MMR3ReleaseOwnedLocks(PVM pVM); 256 256 257 257 /** @defgroup grp_mm_r3_hyper Hypervisor Memory Manager (HC R3 Portion) -
trunk/include/VBox/pdmapi.h
r19141 r19682 115 115 VMMR3DECL(int) PDMR3UnregisterVMMDevHeap(PVM pVM, RTGCPHYS GCPhys); 116 116 117 VMMR3DECL(void) PDMR3ReleaseOwnedLocks(PVM pVM); 117 118 /** @} */ 118 119 #endif -
trunk/include/VBox/pgm.h
r19473 r19682 551 551 VMMR3DECL(int) PGMR3PhysAllocateHandyPages(PVM pVM); 552 552 553 554 VMMR3DECL(void) PGMR3ReleaseOwnedLocks(PVM pVM); 555 553 556 VMMR3DECL(int) PGMR3CheckIntegrity(PVM pVM); 554 557 -
trunk/src/VBox/VMM/EM.cpp
r19679 r19682 3595 3595 } 3596 3596 3597 /** 3598 * Release the IOM lock if owned by the current VCPU 3599 * 3600 * @param pVM The VM to operate on. 3601 */ 3602 VMMR3DECL(void) EMR3ReleaseOwnedLocks(PVM pVM) 3603 { 3604 if (PDMCritSectIsOwner(&pVM->em.s.CritSectREM)) 3605 PDMCritSectLeave(&pVM->em.s.CritSectREM); 3606 } 3607 3597 3608 3598 3609 /** -
trunk/src/VBox/VMM/IOM.cpp
r19470 r19682 1641 1641 iomR3FlushCache(pVM); 1642 1642 return VINF_SUCCESS; 1643 } 1644 1645 1646 /** 1647 * Release the IOM lock if owned by the current VCPU 1648 * 1649 * @param pVM The VM to operate on. 1650 */ 1651 VMMR3DECL(void) IOMR3ReleaseOwnedLocks(PVM pVM) 1652 { 1653 if (PDMCritSectIsOwner(&pVM->iom.s.EmtLock)) 1654 PDMCritSectLeave(&pVM->iom.s.EmtLock); 1643 1655 } 1644 1656 -
trunk/src/VBox/VMM/MMHyper.cpp
r19666 r19682 1090 1090 } 1091 1091 1092 /** 1093 * Release the MM hypervisor heap lock if owned by the current VCPU 1094 * 1095 * @param pVM The VM to operate on. 1096 */ 1097 VMMR3DECL(void) MMR3ReleaseOwnedLocks(PVM pVM) 1098 { 1099 PMMHYPERHEAP pHeap = pVM->mm.s.CTX_SUFF(pHyperHeap); 1100 1101 if (PDMCritSectIsOwner(&pHeap->Lock)) 1102 PDMCritSectLeave(&pHeap->Lock); 1103 } 1104 1092 1105 1093 1106 /** -
trunk/src/VBox/VMM/PDM.cpp
r19494 r19682 1441 1441 return VINF_SUCCESS; 1442 1442 } 1443 1444 /** 1445 * Release the PDM lock if owned by the current VCPU 1446 * 1447 * @param pVM The VM to operate on. 1448 */ 1449 VMMR3DECL(void) PDMR3ReleaseOwnedLocks(PVM pVM) 1450 { 1451 if (PDMCritSectIsOwner(&pVM->pdm.s.CritSect)) 1452 PDMCritSectLeave(&pVM->pdm.s.CritSect); 1453 } -
trunk/src/VBox/VMM/PGM.cpp
r19666 r19682 4054 4054 } 4055 4055 4056 /** 4057 * Release the pgm lock if owned by the current VCPU 4058 * 4059 * @param pVM The VM to operate on. 4060 */ 4061 VMMR3DECL(void) PGMR3ReleaseOwnedLocks(PVM pVM) 4062 { 4063 if (PDMCritSectIsOwner(&pVM->pgm.s.CritSect)) 4064 PDMCritSectLeave(&pVM->pgm.s.CritSect); 4065 } 4056 4066 4057 4067 /** -
trunk/src/VBox/VMM/VMEmt.cpp
r19660 r19682 34 34 #include <VBox/vm.h> 35 35 #include <VBox/uvm.h> 36 #include <VBox/mm.h> 37 #include <VBox/pgm.h> 38 #include <VBox/iom.h> 39 #include <VBox/pdm.h> 36 40 37 41 #include <VBox/err.h> … … 224 228 if ( EMGetState(pVCpu) == EMSTATE_GURU_MEDITATION 225 229 && pVM->enmVMState == VMSTATE_RUNNING) 230 { 231 /* Release owned locks to make sure other VCPUs can continue in case they were waiting for one. */ 232 MMR3ReleaseOwnedLocks(pVM); 233 PGMR3ReleaseOwnedLocks(pVM); 234 PDMR3ReleaseOwnedLocks(pVM); 235 IOMR3ReleaseOwnedLocks(pVM); 236 EMR3ReleaseOwnedLocks(pVM); 237 226 238 vmR3SetState(pVM, VMSTATE_GURU_MEDITATION); 239 } 227 240 } 228 241 } -
trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp
r19597 r19682 218 218 PVM pVM = pCritSect->s.CTX_SUFF(pVM); 219 219 Assert(pVM); 220 221 #ifdef VBOX_STRICT 220 222 PVMCPU pVCpu = VMMGetCpu(pVM); 221 223 Assert(pVCpu); 222 224 AssertMsg(pCritSect->s.Core.NativeThreadOwner == pVCpu->hNativeThread, ("Owner %RX64 emt=%RX64\n", pCritSect->s.Core.NativeThreadOwner, pVCpu->hNativeThread)); 225 #endif 223 226 224 227 /* … … 232 235 return; 233 236 } 234 237 #ifndef VBOX_STRICT 238 PVMCPU pVCpu = VMMGetCpu(pVM); 239 #endif 235 240 /* 236 241 * Try leave it. -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r19516 r19682 2030 2030 } 2031 2031 2032 2033 2032 /** 2034 2033 * Check if this VCPU currently owns the PGM lock.
Note:
See TracChangeset
for help on using the changeset viewer.