Changeset 28784 in vbox for trunk/src/VBox
- Timestamp:
- Apr 26, 2010 11:59:42 PM (15 years ago)
- Location:
- trunk/src/VBox/Devices/Storage
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevAHCI.cpp
r28705 r28784 4920 4920 * @param pInterface Pointer to the interface. 4921 4921 * @param pvUser User data. 4922 */ 4923 static DECLCALLBACK(int) ahciTransferCompleteNotify(PPDMIBLOCKASYNCPORT pInterface, void *pvUser) 4922 * @param rcReq IPRT Status code of the completed request. 4923 */ 4924 static DECLCALLBACK(int) ahciTransferCompleteNotify(PPDMIBLOCKASYNCPORT pInterface, void *pvUser, int rcReq) 4924 4925 { 4925 4926 PAHCIPort pAhciPort = PDMIBLOCKASYNCPORT_2_PAHCIPORT(pInterface); -
trunk/src/VBox/Devices/Storage/DrvBlock.cpp
r28387 r28784 356 356 #define PDMIMEDIAASYNCPORT_2_DRVBLOCK(pInterface) ( (PDRVBLOCK((uintptr_t)pInterface - RT_OFFSETOF(DRVBLOCK, IMediaAsyncPort))) ) 357 357 358 static DECLCALLBACK(int) drvblockAsyncTransferCompleteNotify(PPDMIMEDIAASYNCPORT pInterface, void *pvUser )358 static DECLCALLBACK(int) drvblockAsyncTransferCompleteNotify(PPDMIMEDIAASYNCPORT pInterface, void *pvUser, int rcReq) 359 359 { 360 360 PDRVBLOCK pThis = PDMIMEDIAASYNCPORT_2_DRVBLOCK(pInterface); 361 361 362 return pThis->pDrvBlockAsyncPort->pfnTransferCompleteNotify(pThis->pDrvBlockAsyncPort, pvUser );362 return pThis->pDrvBlockAsyncPort->pfnTransferCompleteNotify(pThis->pDrvBlockAsyncPort, pvUser, rcReq); 363 363 } 364 364 -
trunk/src/VBox/Devices/Storage/DrvDiskIntegrity.cpp
r28144 r28784 519 519 #define PDMIMEDIAASYNCPORT_2_DRVDISKINTEGRITY(pInterface) ( (PDRVDISKINTEGRITY((uintptr_t)pInterface - RT_OFFSETOF(DRVDISKINTEGRITY, IMediaAsyncPort))) ) 520 520 521 static DECLCALLBACK(int) drvdiskintAsyncTransferCompleteNotify(PPDMIMEDIAASYNCPORT pInterface, void *pvUser )521 static DECLCALLBACK(int) drvdiskintAsyncTransferCompleteNotify(PPDMIMEDIAASYNCPORT pInterface, void *pvUser, int rcReq) 522 522 { 523 523 PDRVDISKINTEGRITY pThis = PDMIMEDIAASYNCPORT_2_DRVDISKINTEGRITY(pInterface); … … 527 527 LogFlowFunc(("pIoReq=%#p\n", pIoReq)); 528 528 529 if (pIoReq->fRead) 530 rc = drvdiskintReadVerify(pThis, pIoReq->paSeg, pIoReq->cSeg, pIoReq->off, pIoReq->cbTransfer); 531 else 532 rc = drvdiskintWriteRecord(pThis, pIoReq->paSeg, pIoReq->cSeg, pIoReq->off, pIoReq->cbTransfer); 533 534 AssertRC(rc); 535 536 rc = pThis->pDrvMediaAsyncPort->pfnTransferCompleteNotify(pThis->pDrvMediaAsyncPort, pIoReq->pvUser); 529 if (RT_SUCCESS(rcReq)) 530 { 531 if (pIoReq->fRead) 532 rc = drvdiskintReadVerify(pThis, pIoReq->paSeg, pIoReq->cSeg, pIoReq->off, pIoReq->cbTransfer); 533 else 534 rc = drvdiskintWriteRecord(pThis, pIoReq->paSeg, pIoReq->cSeg, pIoReq->off, pIoReq->cbTransfer); 535 536 AssertRC(rc); 537 } 538 539 rc = pThis->pDrvMediaAsyncPort->pfnTransferCompleteNotify(pThis->pDrvMediaAsyncPort, pIoReq->pvUser, rcReq); 537 540 RTMemFree(pIoReq); 538 541 -
trunk/src/VBox/Devices/Storage/DrvSCSI.cpp
r28383 r28784 191 191 } 192 192 193 static int drvscsiTransferCompleteNotify(PPDMIBLOCKASYNCPORT pInterface, void *pvUser )193 static int drvscsiTransferCompleteNotify(PPDMIBLOCKASYNCPORT pInterface, void *pvUser, int rc) 194 194 { 195 195 PDRVSCSI pThis = PDMIBLOCKASYNCPORT_2_DRVSCSI(pInterface); … … 207 207 208 208 ASMAtomicDecU32(&pThis->StatIoDepth); 209 VSCSIIoReqCompleted(hVScsiIoReq, VINF_SUCCESS);209 VSCSIIoReqCompleted(hVScsiIoReq, rc); 210 210 211 211 return VINF_SUCCESS; -
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r28622 r28784 304 304 305 305 AssertPtr(pStorageBackend->pfnCompleted); 306 rc = pStorageBackend->pfnCompleted(pvUser );306 rc = pStorageBackend->pfnCompleted(pvUser, rcReq); 307 307 AssertRC(rc); 308 308 … … 991 991 *******************************************************************************/ 992 992 993 static void drvvdAsyncReqComplete(void *pvUser1, void *pvUser2 )993 static void drvvdAsyncReqComplete(void *pvUser1, void *pvUser2, int rcReq) 994 994 { 995 995 PVBOXDISK pThis = (PVBOXDISK)pvUser1; 996 996 997 997 int rc = pThis->pDrvMediaAsyncPort->pfnTransferCompleteNotify(pThis->pDrvMediaAsyncPort, 998 pvUser2 );998 pvUser2, rcReq); 999 999 AssertRC(rc); 1000 1000 } -
trunk/src/VBox/Devices/Storage/VBoxHDD.cpp
r28704 r28784 1759 1759 } 1760 1760 1761 static int vdIOReqCompleted(void *pvUser )1761 static int vdIOReqCompleted(void *pvUser, int rcReq) 1762 1762 { 1763 1763 int rc = VINF_SUCCESS; … … 1816 1816 { 1817 1817 LogFlowFunc(("Parent I/O context completed pIoCtxParent=%#p\n", pIoCtx)); 1818 pIoCtxParent->Type.Root.pfnComplete(pIoCtxParent->Type.Root.pvUser1, pIoCtxParent->Type.Root.pvUser2); 1818 pIoCtxParent->Type.Root.pfnComplete(pIoCtxParent->Type.Root.pvUser1, 1819 pIoCtxParent->Type.Root.pvUser2, 1820 pIoCtxParent->rcReq); 1819 1821 vdIoCtxFree(pDisk, pIoCtxParent); 1820 1822 } … … 1857 1859 LogFlowFunc(("Waiting I/O context completed pIoCtxWait=%#p\n", pIoCtxWait)); 1858 1860 pIoCtxWait->Type.Root.pfnComplete(pIoCtxWait->Type.Root.pvUser1, 1859 pIoCtxWait->Type.Root.pvUser2); 1861 pIoCtxWait->Type.Root.pvUser2, 1862 pIoCtxWait->rcReq); 1860 1863 vdIoCtxFree(pDisk, pIoCtxWait); 1861 1864 } … … 1866 1869 } 1867 1870 else 1868 pIoCtx->Type.Root.pfnComplete(pIoCtx->Type.Root.pvUser1, pIoCtx->Type.Root.pvUser2); 1871 pIoCtx->Type.Root.pfnComplete(pIoCtx->Type.Root.pvUser1, 1872 pIoCtx->Type.Root.pvUser2, 1873 pIoCtx->rcReq); 1869 1874 1870 1875 vdIoCtxFree(pDisk, pIoCtx);
Note:
See TracChangeset
for help on using the changeset viewer.