Changeset 81433 in vbox for trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
- Timestamp:
- Oct 21, 2019 8:21:43 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r81383 r81433 698 698 699 699 /** 700 * Physical access handler for MMIO ranges.701 *702 * @returns VBox status code (appropriate for GC return).703 * @param pVM The cross context VM structure.704 * @param pVCpu The cross context virtual CPU structure of the calling EMT.705 * @param uErrorCode CPU Error code.706 * @param pCtxCore Trap register frame.707 * @param GCPhysFault The GC physical address.708 */709 VMMDECL(VBOXSTRICTRC) IOMMMIOPhysHandler(PVMCC pVM, PVMCPUCC pVCpu, RTGCUINT uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPHYS GCPhysFault)710 {711 /*712 * We don't have a range here, so look it up before calling the common function.713 */714 int rc2 = IOM_LOCK_SHARED(pVM); NOREF(rc2);715 #ifndef IN_RING3716 if (rc2 == VERR_SEM_BUSY)717 return VINF_IOM_R3_MMIO_READ_WRITE;718 #endif719 PIOMMMIORANGE pRange = iomMmioGetRange(pVM, pVCpu, GCPhysFault);720 if (RT_UNLIKELY(!pRange))721 {722 IOM_UNLOCK_SHARED(pVM);723 return VERR_IOM_MMIO_RANGE_NOT_FOUND;724 }725 iomMmioRetainRange(pRange);726 IOM_UNLOCK_SHARED(pVM);727 728 VBOXSTRICTRC rcStrict = iomMmioCommonPfHandlerOld(pVM, pVCpu, (uint32_t)uErrorCode, pCtxCore, GCPhysFault, pRange);729 730 iomMmioReleaseRange(pVM, pRange);731 return VBOXSTRICTRC_VAL(rcStrict);732 }733 734 735 /**736 700 * @callback_method_impl{FNPGMPHYSHANDLER, MMIO page accesses} 737 701 *
Note:
See TracChangeset
for help on using the changeset viewer.