Changeset 25974 in vbox
- Timestamp:
- Jan 22, 2010 2:49:05 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56833
- Location:
- trunk
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/pdmifs.h
r25971 r25974 46 46 * @{ 47 47 */ 48 /** PDMISTREAM - The stream driver interface (Up) No coupling.49 * Used by a char driver to implement PDMINTERFACE_CHAR. */50 #define PDMINTERFACE_STREAM "d1a5bf5e-3d2c-449a-bde9-addd7920b71f"51 /** PDMIBLOCKPORT - The block notify interface (Down) Coupled with PDMINTERFACE_BLOCK. */52 #define PDMINTERFACE_BLOCK_PORT "e87fa1ab-92d5-4100-8712-fe2a0c042faf"53 /** PDMIBLOCK - The block driver interface (Up) Coupled with PDMINTERFACE_BLOCK_PORT. */54 #define PDMINTERFACE_BLOCK "0a5f3156-8b21-4cf5-83fd-e097281d2900"55 /** PDMIBLOCKBIOS - The block bios interface. (External) */56 #define PDMINTERFACE_BLOCK_BIOS "477c3eee-a48d-48a9-82fd-2a54de16b2e9"57 /** PDMIMOUNTNOTIFY - The mountable notification interface. (Down) Coupled with PDMINTERFACE_MOUNT. */58 #define PDMINTERFACE_MOUNT_NOTIFY "fa143ac9-9fc6-498e-997f-945380a558f9"59 /** PDMIMOUNT - The mountable interface. (Up) Coupled with PDMINTERFACE_MOUNT_NOTIFY. */60 #define PDMINTERFACE_MOUNT "8e5a009a-6032-4ca1-9d86-a388d8eaf926"61 /** PDMIMEDIA - The media interface. (Up) No coupling.62 * Used by a block unit driver to implement PDMINTERFACE_BLOCK and PDMINTERFACE_BLOCK_BIOS. */63 #define PDMINTERFACE_MEDIA "f5bb07c9-2843-46f8-a56f-cc090b6e5bac"64 48 /** PDMIISCSITRANSPORT - The iSCSI transport interface (Up) No coupling. 65 49 * used by the iSCSI media driver. */ … … 71 55 * notify port used by the iSCSI media driver. */ 72 56 #define PDMINTERFACE_ISCSITRANSPORTASYNCPORT "6ab0fbf1-aa72-4b27-bc46-f58896ba0392" 73 /** PDMIMEDIAASYNC - Async version of the media interface (Down) Coupled with PDMINTERFACE_MEDIA_ASYNC_PORT. */74 #define PDMINTERFACE_MEDIA_ASYNC "d7bc3c90-e686-4d9c-a7bc-6c6742e452ec"75 /** PDMIMEDIAASYNCPORT - Async version of the media interface (Up) Coupled with PDMINTERFACE_MEDIA_ASYNC. */76 #define PDMINTERFACE_MEDIA_ASYNC_PORT "22d38853-901f-4a71-9670-4d9da6e82317"77 /** PDMIBLOCKASYNC - Async version of the block interface (Down) Coupled with PDMINTERFACE_BLOCK_ASYNC_PORT. */78 #define PDMINTERFACE_BLOCK_ASYNC "142cd775-3be6-4c9f-9e3d-68969c3d4779"79 /** PDMIBLOCKASYNCPORT - Async version of the block interface (Up) Coupled with PDMINTERFACE_BLOCK_ASYNC. */80 #define PDMINTERFACE_BLOCK_ASYNC_PORT "e3bdc0cb-9d99-41dd-8eec-0dc8cf5b2a92"81 82 57 83 58 /** PDMINETWORKPORT - The network port interface. (Down) Coupled with PDMINTERFACE_NETWORK_CONNECTOR. */ … … 164 139 * @returns Correctly typed PDMIBASE::pfnQueryInterface return value. 165 140 * 166 * @param pIBasePointer to the base interface.167 * @param InterfaceTypeThe interface type name. The interface ID is141 * @param pIBase Pointer to the base interface. 142 * @param InterfaceType The interface type name. The interface ID is 168 143 * derived from this by appending _IID. 169 144 */ 170 145 #define PDMIBASE_QUERY_INTERFACE(pIBase, InterfaceType) \ 171 146 ( (InterfaceType *)(pIBase)->pfnQueryInterface(pIBase, InterfaceType##_IID ) ) 147 148 /** 149 * Helper macro for implementing PDMIBASE::pfnQueryInterface. 150 * 151 * Return @a pInterface if @a pszIID matches the @a InterfaceType. This will 152 * perform basic type checking. 153 * 154 * @param pszIID The ID of the interface that is being queried. 155 * @param InterfaceType The interface type name. The interface ID is 156 * derived from this by appending _IID. 157 * @param pInterface The interface address expression. 158 */ 159 #define PDMIBASE_RETURN_INTERFACE(pszIID, InterfaceType, pInterface) \ 160 do { \ 161 if (RTUuidCompare2Strs((pszIID), InterfaceType##_IID) == 0) \ 162 { \ 163 InterfaceType *pReturnInterfaceTypeCheck = (pInterface); \ 164 return pReturnInterfaceTypeCheck; \ 165 } \ 166 } while (0) 172 167 173 168 … … 654 649 /** PDMIDISPLAYCONNECTOR interface ID. */ 655 650 #define PDMIDISPLAYCONNECTOR_IID "c7a1b36d-8dfc-421d-b71f-3a0eeaf733e6" 651 652 653 /** 654 * Block notify interface (down). 655 * Pair with PDMIBLOCK. 656 */ 657 typedef PDMIDUMMY PDMIBLOCKPORT; 658 /** PDMIBLOCKPORT interface ID. */ 659 #define PDMIBLOCKPORT_IID "e87fa1ab-92d5-4100-8712-fe2a0c042faf" 660 /** Pointer to a block notify interface (dummy). */ 661 typedef PDMIBLOCKPORT *PPDMIBLOCKPORT; 656 662 657 663 … … 692 698 } PDMBLOCKTXDIR; 693 699 694 /**695 * Block notify interface.696 * Pair with PDMIBLOCK.697 */698 typedef PDMIDUMMY PDMIBLOCKPORT;699 /** Pointer to a block notify interface (dummy). */700 typedef PDMIBLOCKPORT *PPDMIBLOCKPORT;701 700 702 701 /** Pointer to a block interface. */ 703 702 typedef struct PDMIBLOCK *PPDMIBLOCK; 704 703 /** 705 * Block interface .704 * Block interface (up). 706 705 * Pair with PDMIBLOCKPORT. 707 706 */ … … 796 795 DECLR3CALLBACKMEMBER(int, pfnGetUuid,(PPDMIBLOCK pInterface, PRTUUID pUuid)); 797 796 } PDMIBLOCK; 797 /** PDMIBLOCK interface ID. */ 798 #define PDMIBLOCK_IID "0a5f3156-8b21-4cf5-83fd-e097281d2900" 798 799 799 800 … … 801 802 typedef struct PDMIMOUNTNOTIFY *PPDMIMOUNTNOTIFY; 802 803 /** 803 * Block interface .804 * Block interface (up). 804 805 * Pair with PDMIMOUNT. 805 806 */ … … 821 822 DECLR3CALLBACKMEMBER(void, pfnUnmountNotify,(PPDMIMOUNTNOTIFY pInterface)); 822 823 } PDMIMOUNTNOTIFY; 823 824 825 /* Pointer to mount interface. */ 824 /** PDMIMOUNTNOTIFY interface ID. */ 825 #define PDMIMOUNTNOTIFY_IID "fa143ac9-9fc6-498e-997f-945380a558f9" 826 827 828 /** Pointer to mount interface. */ 826 829 typedef struct PDMIMOUNT *PPDMIMOUNT; 827 830 /** 828 * Mount interface .831 * Mount interface (down). 829 832 * Pair with PDMIMOUNTNOTIFY. 830 833 */ … … 895 898 */ 896 899 DECLR3CALLBACKMEMBER(bool, pfnIsLocked,(PPDMIMOUNT pInterface)); 897 } PDMIBLOCKMOUNT; 900 } PDMIMOUNT; 901 /** PDMIMOUNT interface ID. */ 902 #define PDMIMOUNT_IID "8e5a009a-6032-4ca1-9d86-a388d8eaf926" 903 898 904 899 905 /** … … 918 924 typedef struct PDMIMEDIA *PPDMIMEDIA; 919 925 /** 920 * Media interface .921 * Makes up the foundation for PDMIBLOCK and PDMIBLOCKBIOS. 926 * Media interface (up). 927 * Makes up the foundation for PDMIBLOCK and PDMIBLOCKBIOS. No interface pair. 922 928 */ 923 929 typedef struct PDMIMEDIA … … 1040 1046 1041 1047 } PDMIMEDIA; 1048 /** PDMIMEDIA interface ID. */ 1049 #define PDMIMEDIA_IID "f5bb07c9-2843-46f8-a56f-cc090b6e5bac" 1042 1050 1043 1051 … … 1045 1053 typedef struct PDMIBLOCKBIOS *PPDMIBLOCKBIOS; 1046 1054 /** 1047 * Media BIOS interface .1055 * Media BIOS interface (Up / External). 1048 1056 * The interface the getting and setting properties which the BIOS/CMOS care about. 1049 1057 */ … … 1124 1132 1125 1133 } PDMIBLOCKBIOS; 1134 /** PDMIBLOCKBIOS interface ID. */ 1135 #define PDMIBLOCKBIOS_IID "477c3eee-a48d-48a9-82fd-2a54de16b2e9" 1126 1136 1127 1137 … … 1302 1312 typedef struct PDMIBLOCKASYNCPORT *PPDMIBLOCKASYNCPORT; 1303 1313 /** 1304 * Asynchronous block notify interface .1314 * Asynchronous block notify interface (up). 1305 1315 * Pair with PDMIBLOCKASYNC. 1306 1316 */ … … 1317 1327 DECLR3CALLBACKMEMBER(int, pfnTransferCompleteNotify, (PPDMIBLOCKASYNCPORT pInterface, void *pvUser)); 1318 1328 } PDMIBLOCKASYNCPORT; 1329 /** PDMIBLOCKASYNCPORT interface ID. */ 1330 #define PDMIBLOCKASYNCPORT_IID "e3bdc0cb-9d99-41dd-8eec-0dc8cf5b2a92" 1331 1319 1332 1320 1333 … … 1322 1335 typedef struct PDMIBLOCKASYNC *PPDMIBLOCKASYNC; 1323 1336 /** 1324 * Asynchronous block interface .1337 * Asynchronous block interface (down). 1325 1338 * Pair with PDMIBLOCKASYNCPORT. 1326 1339 */ … … 1356 1369 1357 1370 } PDMIBLOCKASYNC; 1371 /** PDMIBLOCKASYNC interface ID. */ 1372 #define PDMIBLOCKASYNC_IID "142cd775-3be6-4c9f-9e3d-68969c3d4779" 1358 1373 1359 1374 … … 1361 1376 typedef struct PDMIMEDIAASYNCPORT *PPDMIMEDIAASYNCPORT; 1362 1377 /** 1363 * Asynchronous media interface.1364 * Makes up the fundation for PDMIBLOCKASYNC and PDMIBLOCKBIOS.1378 * Asynchronous version of the media interface (up). 1379 * Pair with PDMIMEDIAASYNC. 1365 1380 */ 1366 1381 typedef struct PDMIMEDIAASYNCPORT … … 1376 1391 DECLR3CALLBACKMEMBER(int, pfnTransferCompleteNotify, (PPDMIMEDIAASYNCPORT pInterface, void *pvUser)); 1377 1392 } PDMIMEDIAASYNCPORT; 1393 /** PDMIMEDIAASYNCPORT interface ID. */ 1394 #define PDMIMEDIAASYNCPORT_IID "22d38853-901f-4a71-9670-4d9da6e82317" 1378 1395 1379 1396 … … 1381 1398 typedef struct PDMIMEDIAASYNC *PPDMIMEDIAASYNC; 1382 1399 /** 1383 * Asynchronous media interface.1384 * Makes up the fundation for PDMIBLOCKASYNC and PDMIBLOCKBIOS.1400 * Asynchronous version of PDMIMEDIA (down). 1401 * Pair with PDMIMEDIAASYNCPORT. 1385 1402 */ 1386 1403 typedef struct PDMIMEDIAASYNC … … 1415 1432 1416 1433 } PDMIMEDIAASYNC; 1434 /** PDMIMEDIAASYNC interface ID. */ 1435 #define PDMIMEDIAASYNC_IID "d7bc3c90-e686-4d9c-a7bc-6c6742e452ec" 1417 1436 1418 1437 … … 1527 1546 typedef struct PDMISTREAM *PPDMISTREAM; 1528 1547 /** 1529 * Stream interface .1530 * Makes up the foundation for PDMICHARCONNECTOR. 1548 * Stream interface (up). 1549 * Makes up the foundation for PDMICHARCONNECTOR. No pair interface. 1531 1550 */ 1532 1551 typedef struct PDMISTREAM … … 1554 1573 DECLR3CALLBACKMEMBER(int, pfnWrite,(PPDMISTREAM pInterface, const void *pvBuf, size_t *cbWrite)); 1555 1574 } PDMISTREAM; 1575 /** PDMISTREAM interface ID. */ 1576 #define PDMISTREAM_IID "d1a5bf5e-3d2c-449a-bde9-addd7920b71f" 1556 1577 1557 1578 -
trunk/src/VBox/Devices/PC/DevPcBios.cpp
r25780 r25974 283 283 { 284 284 PPDMIBLOCK pBlock; 285 pBlock = (PPDMIBLOCK)pBase->pfnQueryInterface(pBase, PDMINTERFACE_BLOCK);285 pBlock = PDMIBASE_QUERY_INTERFACE(pBase, PDMIBLOCK); 286 286 /* No LCHS geometry, autodetect and set. */ 287 287 rc = biosGuessDiskLCHS(pBlock, &LCHSGeometry); … … 470 470 int rc = PDMR3QueryLun(pVM, pThis->pszFDDevice, 0, i, &pBase); 471 471 if (RT_SUCCESS(rc)) 472 apFDs[i] = (PPDMIBLOCKBIOS)pBase->pfnQueryInterface(pBase, PDMINTERFACE_BLOCK_BIOS);472 apFDs[i] = PDMIBASE_QUERY_INTERFACE(pBase, PDMIBLOCKBIOS); 473 473 } 474 474 u32 = 0; … … 517 517 int rc = PDMR3QueryLun(pVM, pThis->pszHDDevice, 0, i, &pBase); 518 518 if (RT_SUCCESS(rc)) 519 apHDs[i] = (PPDMIBLOCKBIOS)pBase->pfnQueryInterface(pBase, PDMINTERFACE_BLOCK_BIOS);519 apHDs[i] = PDMIBASE_QUERY_INTERFACE(pBase, PDMIBLOCKBIOS); 520 520 if ( apHDs[i] 521 521 && ( apHDs[i]->pfnGetType(apHDs[i]) != PDMBLOCKTYPE_HARD_DISK … … 578 578 int rc = PDMR3QueryLun(pVM, pThis->pszSataDevice, 0, pThis->iSataHDLUN[i], &pBase); 579 579 if (RT_SUCCESS(rc)) 580 apHDs[i] = (PPDMIBLOCKBIOS)pBase->pfnQueryInterface(pBase, PDMINTERFACE_BLOCK_BIOS);580 apHDs[i] = PDMIBASE_QUERY_INTERFACE(pBase, PDMIBLOCKBIOS); 581 581 if ( apHDs[i] 582 582 && ( apHDs[i]->pfnGetType(apHDs[i]) != PDMBLOCKTYPE_HARD_DISK -
trunk/src/VBox/Devices/Serial/DrvChar.cpp
r25971 r25974 337 337 if (RT_FAILURE(rc)) 338 338 return rc; /* Don't call PDMDrvHlpVMSetError here as we assume that the driver already set an appropriate error */ 339 pThis->pDrvStream = (PPDMISTREAM)pBase->pfnQueryInterface(pBase, PDMINTERFACE_STREAM);339 pThis->pDrvStream = PDMIBASE_QUERY_INTERFACE(pBase, PDMISTREAM); 340 340 if (!pThis->pDrvStream) 341 341 return PDMDrvHlpVMSetError(pDrvIns, VERR_PDM_MISSING_INTERFACE_BELOW, RT_SRC_POS, N_("Char#%d has no stream interface below"), pDrvIns->iInstance); -
trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp
r25966 r25974 289 289 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 290 290 return &pDrvIns->IBase; 291 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_STREAM) == 0) 292 return &pThis->IStream; 291 PDMIBASE_RETURN_INTERFACE(pszIID, PDMISTREAM, &pThis->IStream); 293 292 return NULL; 294 293 } -
trunk/src/VBox/Devices/Serial/DrvRawFile.cpp
r25966 r25974 105 105 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 106 106 return &pDrvIns->IBase; 107 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_STREAM) == 0) 108 return &pThis->IStream; 107 PDMIBASE_RETURN_INTERFACE(pszIID, PDMISTREAM, &pThis->IStream); 109 108 return NULL; 110 109 } -
trunk/src/VBox/Devices/Storage/ATAController.cpp
r25900 r25974 5013 5013 * Query Block, Bios and Mount interfaces. 5014 5014 */ 5015 pIf->pDrvBlock = (PDMIBLOCK *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_BLOCK);5015 pIf->pDrvBlock = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIBLOCK); 5016 5016 if (!pIf->pDrvBlock) 5017 5017 { … … 5021 5021 5022 5022 /** @todo implement the BIOS invisible code path. */ 5023 pIf->pDrvBlockBios = (PDMIBLOCKBIOS *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_BLOCK_BIOS);5023 pIf->pDrvBlockBios = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIBLOCKBIOS); 5024 5024 if (!pIf->pDrvBlockBios) 5025 5025 { … … 5027 5027 return VERR_PDM_MISSING_INTERFACE; 5028 5028 } 5029 pIf->pDrvMount = (PDMIMOUNT *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_MOUNT);5029 pIf->pDrvMount = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIMOUNT); 5030 5030 5031 5031 /* -
trunk/src/VBox/Devices/Storage/DevAHCI.cpp
r25966 r25974 2406 2406 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 2407 2407 return &pAhciPort->IBase; 2408 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_PORT) == 0) 2409 return &pAhciPort->IPort; 2410 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_ASYNC_PORT) == 0) 2411 return &pAhciPort->IPortAsync; 2412 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MOUNT_NOTIFY) == 0) 2413 return &pAhciPort->IMountNotify; 2408 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pAhciPort->IPort); 2409 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKASYNCPORT, &pAhciPort->IPortAsync); 2410 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNTNOTIFY, &pAhciPort->IMountNotify); 2414 2411 return NULL; 2415 2412 } … … 6135 6132 * Query the block and blockbios interfaces. 6136 6133 */ 6137 pAhciPort->pDrvBlock = (PDMIBLOCK *)pAhciPort->pDrvBase->pfnQueryInterface(pAhciPort->pDrvBase, PDMINTERFACE_BLOCK);6134 pAhciPort->pDrvBlock = PDMIBASE_QUERY_INTERFACE(pAhciPort->pDrvBase, PDMIBLOCK); 6138 6135 if (!pAhciPort->pDrvBlock) 6139 6136 { … … 6141 6138 return VERR_PDM_MISSING_INTERFACE; 6142 6139 } 6143 pAhciPort->pDrvBlockBios = (PDMIBLOCKBIOS *)pAhciPort->pDrvBase->pfnQueryInterface(pAhciPort->pDrvBase, PDMINTERFACE_BLOCK_BIOS);6140 pAhciPort->pDrvBlockBios = PDMIBASE_QUERY_INTERFACE(pAhciPort->pDrvBase, PDMIBLOCKBIOS); 6144 6141 if (!pAhciPort->pDrvBlockBios) 6145 6142 { … … 6148 6145 } 6149 6146 6150 pAhciPort->pDrvMount = (PDMIMOUNT *)pAhciPort->pDrvBase->pfnQueryInterface(pAhciPort->pDrvBase, PDMINTERFACE_MOUNT);6147 pAhciPort->pDrvMount = PDMIBASE_QUERY_INTERFACE(pAhciPort->pDrvBase, PDMIMOUNT); 6151 6148 6152 6149 /* Try to get the optional async block interface. */ 6153 pAhciPort->pDrvBlockAsync = (PDMIBLOCKASYNC *)pAhciPort->pDrvBase->pfnQueryInterface(pAhciPort->pDrvBase, PDMINTERFACE_BLOCK_ASYNC);6150 pAhciPort->pDrvBlockAsync = PDMIBASE_QUERY_INTERFACE(pAhciPort->pDrvBase, PDMIBLOCKASYNC); 6154 6151 6155 6152 /* -
trunk/src/VBox/Devices/Storage/DevATA.cpp
r25966 r25974 5281 5281 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 5282 5282 return &pIf->IBase; 5283 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_PORT) == 0) 5284 return &pIf->IPort; 5285 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MOUNT_NOTIFY) == 0) 5286 return &pIf->IMountNotify; 5283 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pIf->IPort); 5284 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNTNOTIFY, &pIf->IMountNotify); 5287 5285 return NULL; 5288 5286 } … … 5696 5694 * Query Block, Bios and Mount interfaces. 5697 5695 */ 5698 pIf->pDrvBlock = (PDMIBLOCK *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_BLOCK);5696 pIf->pDrvBlock = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIBLOCK); 5699 5697 if (!pIf->pDrvBlock) 5700 5698 { … … 5704 5702 5705 5703 /** @todo implement the BIOS invisible code path. */ 5706 pIf->pDrvBlockBios = (PDMIBLOCKBIOS *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_BLOCK_BIOS);5704 pIf->pDrvBlockBios = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIBLOCKBIOS); 5707 5705 if (!pIf->pDrvBlockBios) 5708 5706 { … … 5710 5708 return VERR_PDM_MISSING_INTERFACE; 5711 5709 } 5712 pIf->pDrvMount = (PDMIMOUNT *)pIf->pDrvBase->pfnQueryInterface(pIf->pDrvBase, PDMINTERFACE_MOUNT);5710 pIf->pDrvMount = PDMIBASE_QUERY_INTERFACE(pIf->pDrvBase, PDMIMOUNT); 5713 5711 5714 5712 /* -
trunk/src/VBox/Devices/Storage/DrvBlock.cpp
r25966 r25974 529 529 } 530 530 531 pThis->pDrvMedia = (PPDMIMEDIA)pBase->pfnQueryInterface(pBase, PDMINTERFACE_MEDIA);531 pThis->pDrvMedia = PDMIBASE_QUERY_INTERFACE(pBase, PDMIMEDIA); 532 532 if (pThis->pDrvMedia) 533 533 { … … 660 660 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 661 661 return &pDrvIns->IBase; 662 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK) == 0) 663 return &pThis->IBlock; 664 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_BIOS) == 0) 665 return pThis->fBiosVisible ? &pThis->IBlockBios : NULL; 666 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MOUNT) == 0) 667 return pThis->fMountable ? &pThis->IMount : NULL; 668 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_ASYNC) == 0) 669 return pThis->pDrvMediaAsync ? &pThis->IBlockAsync : NULL; 670 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MEDIA_ASYNC_PORT) == 0) 671 return pThis->pDrvBlockAsyncPort ? &pThis->IMediaAsyncPort : NULL; 662 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCK, &pThis->IBlock); 663 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKBIOS, pThis->fBiosVisible ? &pThis->IBlockBios : NULL); 664 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNT, pThis->fMountable ? &pThis->IMount : NULL); 665 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKASYNC, pThis->pDrvMediaAsync ? &pThis->IBlockAsync : NULL); 666 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIAASYNCPORT, pThis->pDrvBlockAsyncPort ? &pThis->IMediaAsyncPort : NULL); 672 667 return NULL; 673 668 } … … 761 756 * Get the IBlockPort & IMountNotify interfaces of the above driver/device. 762 757 */ 763 pThis->pDrvBlockPort = (PPDMIBLOCKPORT)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_BLOCK_PORT);758 pThis->pDrvBlockPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIBLOCKPORT); 764 759 if (!pThis->pDrvBlockPort) 765 760 return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_MISSING_INTERFACE_ABOVE, … … 767 762 768 763 /* Try to get the optional async block port interface above. */ 769 pThis->pDrvBlockAsyncPort = (PPDMIBLOCKASYNCPORT)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_BLOCK_ASYNC_PORT); 770 771 pThis->pDrvMountNotify = (PPDMIMOUNTNOTIFY)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_MOUNT_NOTIFY); 764 pThis->pDrvBlockAsyncPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIBLOCKASYNCPORT); 765 pThis->pDrvMountNotify = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIMOUNTNOTIFY); 772 766 773 767 /* … … 880 874 N_("Failed to attach driver below us! %Rrf"), rc); 881 875 882 pThis->pDrvMedia = (PPDMIMEDIA)pBase->pfnQueryInterface(pBase, PDMINTERFACE_MEDIA);876 pThis->pDrvMedia = PDMIBASE_QUERY_INTERFACE(pBase, PDMIMEDIA); 883 877 if (!pThis->pDrvMedia) 884 878 return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_MISSING_INTERFACE_BELOW, … … 886 880 887 881 /* Try to get the optional async interface. */ 888 pThis->pDrvMediaAsync = (PPDMIMEDIAASYNC)pBase->pfnQueryInterface(pBase, PDMINTERFACE_MEDIA_ASYNC);882 pThis->pDrvMediaAsync = PDMIBASE_QUERY_INTERFACE(pBase, PDMIMEDIAASYNC); 889 883 890 884 if (RTUuidIsNull(&pThis->Uuid)) -
trunk/src/VBox/Devices/Storage/DrvHostBase.cpp
r25966 r25974 573 573 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 574 574 return &pDrvIns->IBase; 575 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK) == 0) 576 return &pThis->IBlock; 577 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_BIOS) == 0) 578 return pThis->fBiosVisible ? &pThis->IBlockBios : NULL; 579 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MOUNT) == 0) 580 return &pThis->IMount; 575 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCK, &pThis->IBlock); 576 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKBIOS, pThis->fBiosVisible ? &pThis->IBlockBios : NULL); 577 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNT, &pThis->IMount); 581 578 return NULL; 582 579 } … … 1911 1908 * Get the IBlockPort & IMountNotify interfaces of the above driver/device. 1912 1909 */ 1913 pThis->pDrvBlockPort = (PPDMIBLOCKPORT)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_BLOCK_PORT);1910 pThis->pDrvBlockPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIBLOCKPORT); 1914 1911 if (!pThis->pDrvBlockPort) 1915 1912 { … … 1917 1914 return VERR_PDM_MISSING_INTERFACE_ABOVE; 1918 1915 } 1919 pThis->pDrvMountNotify = (PPDMIMOUNTNOTIFY)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_MOUNT_NOTIFY);1916 pThis->pDrvMountNotify = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIMOUNTNOTIFY); 1920 1917 1921 1918 /* -
trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp
r25966 r25974 295 295 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 296 296 return &pDrvIns->IBase; 297 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MEDIA) == 0) 298 return &pThis->IMedia; 297 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia); 299 298 return NULL; 300 299 } -
trunk/src/VBox/Devices/Storage/DrvRawImage.cpp
r25966 r25974 346 346 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 347 347 return &pDrvIns->IBase; 348 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MEDIA) == 0) 349 return &pThis->IMedia; 348 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia); 350 349 return NULL; 351 350 } -
trunk/src/VBox/Devices/Storage/DrvSCSI.cpp
r25966 r25974 809 809 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_SCSI_CONNECTOR) == 0) 810 810 return &pThis->ISCSIConnector; 811 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_PORT) == 0) 812 return &pThis->IPort; 811 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pThis->IPort); 813 812 return NULL; 814 813 } … … 959 958 * Query the block and blockbios interfaces. 960 959 */ 961 pThis->pDrvBlock = (PDMIBLOCK *)pThis->pDrvBase->pfnQueryInterface(pThis->pDrvBase, PDMINTERFACE_BLOCK);960 pThis->pDrvBlock = PDMIBASE_QUERY_INTERFACE(pThis->pDrvBase, PDMIBLOCK); 962 961 if (!pThis->pDrvBlock) 963 962 { … … 965 964 return VERR_PDM_MISSING_INTERFACE; 966 965 } 967 pThis->pDrvBlockBios = (PDMIBLOCKBIOS *)pThis->pDrvBase->pfnQueryInterface(pThis->pDrvBase, PDMINTERFACE_BLOCK_BIOS);966 pThis->pDrvBlockBios = PDMIBASE_QUERY_INTERFACE(pThis->pDrvBase, PDMIBLOCKBIOS); 968 967 if (!pThis->pDrvBlockBios) 969 968 { … … 976 975 AssertMsgReturn(pThis->pDevScsiPort, ("Missing SCSI port interface above\n"), VERR_PDM_MISSING_INTERFACE); 977 976 978 pThis->pDrvMount = (PDMIMOUNT *)pThis->pDrvBase->pfnQueryInterface(pThis->pDrvBase, PDMINTERFACE_MOUNT);977 pThis->pDrvMount = PDMIBASE_QUERY_INTERFACE(pThis->pDrvBase, PDMIMOUNT); 979 978 980 979 /* Query the optional LED interface above. */ … … 991 990 992 991 /* Try to get the optional async block interface. */ 993 pThis->pDrvBlockAsync = (PDMIBLOCKASYNC *)pThis->pDrvBase->pfnQueryInterface(pThis->pDrvBase, PDMINTERFACE_BLOCK_ASYNC);992 pThis->pDrvBlockAsync = PDMIBASE_QUERY_INTERFACE(pThis->pDrvBase, PDMIBLOCKASYNC); 994 993 995 994 PDMBLOCKTYPE enmType = pThis->pDrvBlock->pfnGetType(pThis->pDrvBlock); -
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r25966 r25974 821 821 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 822 822 return &pDrvIns->IBase; 823 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MEDIA) == 0) 824 return &pThis->IMedia; 825 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MEDIA_ASYNC) == 0) 826 return pThis->fAsyncIOSupported ? &pThis->IMediaAsync : NULL; 823 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia); 824 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIAASYNC, pThis->fAsyncIOSupported ? &pThis->IMediaAsync : NULL); 827 825 return NULL; 828 826 } … … 1029 1027 1030 1028 /* Try to attach async media port interface above.*/ 1031 pThis->pDrvMediaAsyncPort = (PPDMIMEDIAASYNCPORT)pDrvIns->pUpBase->pfnQueryInterface(pDrvIns->pUpBase, PDMINTERFACE_MEDIA_ASYNC_PORT);1029 pThis->pDrvMediaAsyncPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIMEDIAASYNCPORT); 1032 1030 1033 1031 /* -
trunk/src/VBox/Devices/Storage/fdc.c
r25966 r25974 2505 2505 if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0) 2506 2506 return &pDrive->IBase; 2507 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_BLOCK_PORT) == 0) 2508 return &pDrive->IPort; 2509 if (RTUuidCompare2Strs(pszIID, PDMINTERFACE_MOUNT_NOTIFY) == 0) 2510 return &pDrive->IMountNotify; 2507 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pDrive->IPort); 2508 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNTNOTIFY, &pDrive->IMountNotify); 2511 2509 return NULL; 2512 2510 } … … 2575 2573 rc = PDMDevHlpDriverAttach (pDevIns, drv->iLUN, &drv->IBase, &drv->pDrvBase, descs[drv->iLUN]); 2576 2574 if (RT_SUCCESS (rc)) { 2577 drv->pDrvBlock = drv->pDrvBase->pfnQueryInterface ( 2578 drv->pDrvBase, 2579 PDMINTERFACE_BLOCK 2580 ); 2575 drv->pDrvBlock = PDMIBASE_QUERY_INTERFACE(drv->pDrvBase, PDMIBLOCK); 2581 2576 if (drv->pDrvBlock) { 2582 drv->pDrvBlockBios = drv->pDrvBase->pfnQueryInterface ( 2583 drv->pDrvBase, 2584 PDMINTERFACE_BLOCK_BIOS 2585 ); 2577 drv->pDrvBlockBios = PDMIBASE_QUERY_INTERFACE(drv->pDrvBase, PDMIBLOCKBIOS); 2586 2578 if (drv->pDrvBlockBios) { 2587 drv->pDrvMount = drv->pDrvBase->pfnQueryInterface ( 2588 drv->pDrvBase, 2589 PDMINTERFACE_MOUNT 2590 ); 2579 drv->pDrvMount = PDMIBASE_QUERY_INTERFACE(drv->pDrvBase, PDMIMOUNT); 2591 2580 if (drv->pDrvMount) { 2592 2581 /* -
trunk/src/VBox/Main/ConsoleImpl.cpp
r25966 r25974 3370 3370 else 3371 3371 { 3372 PPDMIMOUNT pIMount = NULL; 3373 pIMount = (PPDMIMOUNT) pBase->pfnQueryInterface(pBase, PDMINTERFACE_MOUNT); 3372 PPDMIMOUNT pIMount = PDMIBASE_QUERY_INTERFACE(pBase, PDMIMOUNT); 3374 3373 AssertBreakStmt(pIMount, rc = VERR_INVALID_POINTER); 3375 3374 … … 3459 3458 if (!fHostDrive && pszPath && *pszPath) 3460 3459 { 3461 PPDMIMOUNT pIMount = NULL; 3462 pIMount = (PPDMIMOUNT) pBase->pfnQueryInterface(pBase, PDMINTERFACE_MOUNT); 3460 PPDMIMOUNT pIMount = PDMIBASE_QUERY_INTERFACE(pBase, PDMIMOUNT); 3463 3461 if (!pIMount) 3464 3462 {
Note:
See TracChangeset
for help on using the changeset viewer.