Changeset 13368
- Timestamp:
- 10/17/08 13:35:13 (3 months ago)
- Files:
-
- trunk/include/VBox/iom.h (modified) (2 diffs)
- trunk/include/VBox/pdmdev.h (modified) (3 diffs)
- trunk/src/VBox/VMM/IOM.cpp (modified) (2 diffs)
- trunk/src/VBox/VMM/PDMDevHlp.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/include/VBox/iom.h
r12989 r13368 85 85 ) 86 86 87 /** 88 * MMIO type 89 */ 90 typedef enum IOMMMIOTYPE 91 { 92 /** 'Normal' MMIO. Reads and writes always fault. */ 93 IOMMMIOTYPE_MMIO = 1, 94 /** MMIO region backed by memory; protection can be turned off temporarily. */ 95 IOMMMIOTYPE_MMIO_WITH_RAM_BACKING, 96 /** The usual 32-bit type size hack. */ 97 IOMMMIOTYPE_32BIT_HACK = 0x7fffffff 98 } IOMMMIOTYPE; 87 99 88 100 /** … … 250 262 VMMR3DECL(int) IOMR3IOPortDeregister(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts); 251 263 252 VMMR3DECL(int) IOMR3MMIORegisterR3(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser,264 VMMR3DECL(int) IOMR3MMIORegisterR3(PVM pVM, PPDMDEVINS pDevIns, IOMMMIOTYPE enmMMIOType, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser, 253 265 R3PTRTYPE(PFNIOMMMIOWRITE) pfnWriteCallback, 254 266 R3PTRTYPE(PFNIOMMMIOREAD) pfnReadCallback, trunk/include/VBox/pdmdev.h
r13367 r13368 2776 2776 * @returns VBox status. 2777 2777 * @param pDevIns The device instance to register the MMIO with. 2778 * @param enmMMIOType MMIO Type 2778 2779 * @param GCPhysStart First physical address in the range. 2779 2780 * @param cbRange The size of the range (in bytes). … … 2784 2785 * @param pszDesc Pointer to description string. This must not be freed. 2785 2786 */ 2786 DECLR3CALLBACKMEMBER(int, pfnMMIORegisterEx,(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser,2787 DECLR3CALLBACKMEMBER(int, pfnMMIORegisterEx,(PPDMDEVINS pDevIns, IOMMMIOTYPE enmMMIOType, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser, 2787 2788 PFNIOMMMIOWRITE pfnWrite, PFNIOMMMIOREAD pfnRead, PFNIOMMMIOFILL pfnFill, 2788 2789 const char *pszDesc)); … … 3267 3268 * @copydoc PDMDEVHLPR3::pfnMMIORegisterEx 3268 3269 */ 3269 DECLINLINE(int) PDMDevHlpMMIORegisterEx(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser,3270 DECLINLINE(int) PDMDevHlpMMIORegisterEx(PPDMDEVINS pDevIns, IOMMMIOTYPE enmMMIOType, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser, 3270 3271 PFNIOMMMIOWRITE pfnWrite, PFNIOMMMIOREAD pfnRead, PFNIOMMMIOFILL pfnFill, 3271 3272 const char *pszDesc) 3272 3273 { 3273 return pDevIns->pDevHlpR3->pfnMMIORegisterEx(pDevIns, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc);3274 return pDevIns->pDevHlpR3->pfnMMIORegisterEx(pDevIns, enmMMIOType, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc); 3274 3275 } 3275 3276 trunk/src/VBox/VMM/IOM.cpp
r13005 r13368 1351 1351 * @param pVM VM handle. 1352 1352 * @param pDevIns PDM device instance owning the MMIO range. 1353 * @param enmMMIOType MMIO Type 1353 1354 * @param GCPhysStart First physical address in the range. 1354 1355 * @param cbRange The size of the range (in bytes). … … 1359 1360 * @param pszDesc Pointer to description string. This must not be freed. 1360 1361 */ 1361 VMMR3DECL(int) IOMR3MMIORegisterR3(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser,1362 VMMR3DECL(int) IOMR3MMIORegisterR3(PVM pVM, PPDMDEVINS pDevIns, IOMMMIOTYPE enmMMIOType, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser, 1362 1363 R3PTRTYPE(PFNIOMMMIOWRITE) pfnWriteCallback, R3PTRTYPE(PFNIOMMMIOREAD) pfnReadCallback, 1363 1364 R3PTRTYPE(PFNIOMMMIOFILL) pfnFillCallback, const char *pszDesc) trunk/src/VBox/VMM/PDMDevHlp.cpp
r13367 r13368 211 211 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc, pszDesc)); 212 212 213 int rc = IOMR3MMIORegisterR3(pDevIns->Internal.s.pVMR3, pDevIns, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc); 213 int rc = IOMR3MMIORegisterR3(pDevIns->Internal.s.pVMR3, pDevIns, IOMMMIOTYPE_MMIO, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc); 214 215 LogFlow(("pdmR3DevHlp_MMIORegister: caller='%s'/%d: returns %Vrc\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, rc)); 216 return rc; 217 } 218 219 /** 220 * @copydoc PDMDEVHLPR3::pfnMMIORegisterEx 221 */ 222 static DECLCALLBACK(int) pdmR3DevHlp_MMIORegisterEx(PPDMDEVINS pDevIns, IOMMMIOTYPE enmMMIOType, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser, 223 PFNIOMMMIOWRITE pfnWrite, PFNIOMMMIOREAD pfnRead, PFNIOMMMIOFILL pfnFill, 224 const char *pszDesc) 225 { 226 PDMDEV_ASSERT_DEVINS(pDevIns); 227 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 228 LogFlow(("pdmR3DevHlp_MMIORegister: caller='%s'/%d: GCPhysStart=%VGp cbRange=%#x pvUser=%p pfnWrite=%p pfnRead=%p pfnFill=%p pszDesc=%p:{%s}\n", 229 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc, pszDesc)); 230 231 int rc = IOMR3MMIORegisterR3(pDevIns->Internal.s.pVMR3, pDevIns, enmMMIOType, GCPhysStart, cbRange, pvUser, pfnWrite, pfnRead, pfnFill, pszDesc); 214 232 215 233 LogFlow(("pdmR3DevHlp_MMIORegister: caller='%s'/%d: returns %Vrc\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, rc)); … … 2602 2620 int rc = PDMR3UnregisterVMMDevHeap(pDevIns->Internal.s.pVMR3, GCPhys); 2603 2621 return rc; 2604 }2605 2606 /**2607 * @copydoc PDMDEVHLPR3::pfnMMIORegisterEx2608 */2609 static DECLCALLBACK(int) pdmR3DevHlp_MMIORegisterEx(PPDMDEVINS pDevIns, RTGCPHYS GCPhysStart, RTUINT cbRange, RTHCPTR pvUser,2610 PFNIOMMMIOWRITE pfnWrite, PFNIOMMMIOREAD pfnRead, PFNIOMMMIOFILL pfnFill,2611 const char *pszDesc)2612 {2613 PDMDEV_ASSERT_DEVINS(pDevIns);2614 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3);2615 2616 /** @todo */2617 return VERR_NOT_SUPPORTED;2618 2622 } 2619 2623

