Changeset 84431 in vbox for trunk/src/VBox/VMM
- Timestamp:
- May 21, 2020 8:42:19 AM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 138135
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r84332 r84431 3348 3348 ("%s/%d: u32Version=%#x expected %#x\n", pDevIns->pReg->szName, pDevIns->iInstance, pIommuReg->u32Version, PDM_IOMMUREGR3_VERSION), 3349 3349 VERR_INVALID_PARAMETER); 3350 /** @todo IOMMU: Validate other parameters, see also tstDevicePdmDevHlp.cpp. */ 3350 AssertPtrReturn(pIommuReg->pfnMemRead, VERR_INVALID_POINTER); 3351 AssertPtrReturn(pIommuReg->pfnMemWrite, VERR_INVALID_POINTER); 3352 AssertPtrReturn(pIommuReg->pfnMsiRemap, VERR_INVALID_POINTER); 3351 3353 AssertMsgReturn(pIommuReg->u32TheEnd == PDM_IOMMUREGR3_VERSION, 3352 3354 ("%s/%d: u32TheEnd=%#x expected %#x\n", pDevIns->pReg->szName, pDevIns->iInstance, pIommuReg->u32TheEnd, PDM_IOMMUREGR3_VERSION), … … 3362 3364 */ 3363 3365 unsigned idxIommu = 0; 3366 #if 0 3364 3367 for (idxIommu = 0; idxIommu < RT_ELEMENTS(pVM->pdm.s.aIommus); idxIommu++) 3365 3368 if (!pVM->pdm.s.aIommus[idxIommu].pDevInsR3) … … 3368 3371 ("Too many IOMMUs. Max=%u\n", RT_ELEMENTS(pVM->pdm.s.aIommus)), 3369 3372 VERR_OUT_OF_RESOURCES); 3373 #else 3374 /* Currently we support only a single IOMMU. */ 3375 AssertMsgReturn(!pVM->pdm.s.aIommus[0].pDevInsR3, 3376 ("%s/%u: Only one IOMMU device is supported!\n", pDevIns->pReg->szName, pDevIns->iInstance), 3377 VERR_ALREADY_EXISTS); 3378 #endif 3370 3379 PPDMIOMMU pIommu = &pVM->pdm.s.aIommus[idxIommu]; 3371 3380 … … 3377 3386 pIommu->pfnMemRead = pIommuReg->pfnMemRead; 3378 3387 pIommu->pfnMemWrite = pIommuReg->pfnMemWrite; 3388 pIommu->pfnMsiRemap = pIommuReg->pfnMsiRemap; 3379 3389 Log(("PDM: Registered IOMMU device '%s'/%d pDevIns=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, pDevIns)); 3380 3390 -
trunk/src/VBox/VMM/include/PDMInternal.h
r84170 r84431 635 635 DECLR3CALLBACKMEMBER(int, pfnMemWrite,(PPDMDEVINS pDevIns, uint16_t uDevId, uint64_t uDva, size_t cbWrite, 636 636 PRTGCPHYS pGCPhysSpa)); 637 /** @copydoc PDMIOMMUREGR3::pfnMsiRemap */ 638 DECLR3CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, RTGCPHYS GCPhysIn, uint32_t uDataIn, 639 PRTGCPHYS pGCPhysOut, uint32_t *puDataOut)); 637 640 } PDMIOMMU; 638 641 … … 655 658 DECLR0CALLBACKMEMBER(int, pfnMemWrite,(PPDMDEVINS pDevIns, uint16_t uDevId, uint64_t uDva, size_t cbWrite, 656 659 PRTGCPHYS pGCPhysSpa)); 660 /** @copydoc PDMIOMMUREGR3::pfnMsiRemap */ 661 DECLR0CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, RTGCPHYS GCPhysIn, uint32_t uDataIn, 662 PRTGCPHYS pGCPhysOut, uint32_t *puDataOut)); 657 663 } PDMIOMMUR0; 658 664 /** Pointer to a ring-0 IOMMU data. */
Note:
See TracChangeset
for help on using the changeset viewer.