diff options
author | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2020-03-11 16:34:33 +0000 |
---|---|---|
committer | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2020-03-11 16:34:33 +0000 |
commit | 0e7b89287a15791cb9950f5348a700cd6c5b73fc (patch) | |
tree | bc2e84449f4401c634ec0b0ef32bf631b002d9f0 /src/VBox/Devices/testcase | |
parent | ee5b46276b602adc1b572c9ff89ef045ff24e622 (diff) | |
download | VirtualBox-svn-0e7b89287a15791cb9950f5348a700cd6c5b73fc.tar.gz |
AMD IOMMU: bugref:9654 Skeletal bits.
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@83263 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/Devices/testcase')
-rw-r--r-- | src/VBox/Devices/testcase/tstDevicePdmDevHlp.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/VBox/Devices/testcase/tstDevicePdmDevHlp.cpp b/src/VBox/Devices/testcase/tstDevicePdmDevHlp.cpp index a4bd5fbd32e..b51ce06b0e6 100644 --- a/src/VBox/Devices/testcase/tstDevicePdmDevHlp.cpp +++ b/src/VBox/Devices/testcase/tstDevicePdmDevHlp.cpp @@ -4625,6 +4625,36 @@ static DECLCALLBACK(int) pdmR3DevHlp_PCIBusRegister(PPDMDEVINS pDevIns, PPDMPCIB } +/** @interface_method_impl{PDMDEVHLPR3,pfnIommuRegister} */ +static DECLCALLBACK(int) pdmR3DevHlp_IommuRegister(PPDMDEVINS pDevIns, PPDMIOMMUREG pIommuReg, PCPDMIOMMUHLP *ppIommuHlp) +{ + PDMDEV_ASSERT_DEVINS(pDevIns); + LogFlow(("pdmR3DevHlp_IommuRegister: caller='%s'/%d: pIommuReg=%p:{.u32Version=%#x, .u32TheEnd=%#x } ppIommuHlp=%p\n", + pDevIns->pReg->szName, pDevIns->iInstance, pIommuReg, pIommuReg->u32Version, pIommuReg->u32TheEnd, ppIommuHlp)); + + /* + * Validate input. + */ + AssertMsgReturn(pIommuReg->u32Version == PDM_IOMMUREG_VERSION, + ("%s/%d: u32Version=%#x expected %#x\n", pDevIns->pReg->szName, pDevIns->iInstance, pIommuReg->u32Version, PDM_IOMMUREG_VERSION), + VERR_INVALID_PARAMETER); + + /** @todo IOMMU: Validate other parameters */ + + AssertMsgReturn(pIommuReg->u32TheEnd == PDM_IOMMUREG_VERSION, + ("%s/%d: u32TheEnd=%#x expected %#x\n", pDevIns->pReg->szName, pDevIns->iInstance, pIommuReg->u32TheEnd, PDM_IOMMUREG_VERSION), + VERR_INVALID_PARAMETER); + AssertPtrReturn(ppIommuHlp, VERR_INVALID_POINTER); + + int rc = VERR_NOT_IMPLEMENTED; + AssertFailed(); + Log(("PDM: Registered IOMMU device '%s'/%d pDevIns=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, pDevIns)); + + LogFlow(("pdmR3DevHlp_IommuRegister: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc)); + return rc; +} + + /** @interface_method_impl{PDMDEVHLPR3,pfnPICRegister} */ static DECLCALLBACK(int) pdmR3DevHlp_PICRegister(PPDMDEVINS pDevIns, PPDMPICREG pPicReg, PCPDMPICHLP *ppPicHlp) { |