Lines Matching defs:pIScsiCmd

467     PISCSICMD   pIScsiCmd;
668 static int iscsiPDUTxPrepare(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd);
670 static void iscsiCmdComplete(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd, int rcCmd);
719 PISCSICMD pIScsiCmd = NULL;
721 pIScsiCmd = pImage->aCmdsWaiting[iscsiIttHash(Itt)];
723 while ( pIScsiCmd
724 && pIScsiCmd->Itt != Itt)
725 pIScsiCmd = pIScsiCmd->pNext;
727 return pIScsiCmd;
730 static void iscsiCmdInsert(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd)
733 uint32_t idx = iscsiIttHash(pIScsiCmd->Itt);
735 Assert(!pIScsiCmd->pNext);
738 pIScsiCmd->pNext = pIScsiCmdOld;
739 pImage->aCmdsWaiting[idx] = pIScsiCmd;
745 PISCSICMD pIScsiCmd = NULL;
749 pIScsiCmd = pImage->aCmdsWaiting[idx];
751 while ( pIScsiCmd
752 && pIScsiCmd->Itt != Itt)
754 pIScsiCmdPrev = pIScsiCmd;
755 pIScsiCmd = pIScsiCmd->pNext;
758 if (pIScsiCmd)
762 Assert(!pIScsiCmd->pNext || VALID_PTR(pIScsiCmd->pNext));
763 pIScsiCmdPrev->pNext = pIScsiCmd->pNext;
767 pImage->aCmdsWaiting[idx] = pIScsiCmd->pNext;
773 return pIScsiCmd;
2427 if (pImage->pIScsiPDUTxCur->pIScsiCmd)
2430 iscsiCmdInsert(pImage, pImage->pIScsiPDUTxCur->pIScsiCmd);
2695 static int iscsiPDUTxPrepare(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd)
2704 LogFlowFunc(("pImage=%#p pIScsiCmd=%#p\n", pImage, pIScsiCmd));
2706 Assert(pIScsiCmd->enmCmdType == ISCSICMDTYPE_REQ);
2708 pIScsiCmd->Itt = iscsiNewITT(pImage);
2709 pScsiReq = pIScsiCmd->CmdType.ScsiReq.pScsiReq;
2723 pIScsiPDU->pIScsiCmd = pIScsiCmd;
2738 paReqBHS[4] = pIScsiCmd->Itt;
2803 PISCSICMD pIScsiCmd;
2813 pIScsiCmd = iscsiCmdGetFromItt(pImage, paResBHS[4]);
2815 if (pIScsiCmd)
2820 LogFlow(("Found SCSI command %#p for Itt=%#u\n", pIScsiCmd, paResBHS[4]));
2822 Assert(pIScsiCmd->enmCmdType == ISCSICMDTYPE_REQ);
2823 pScsiReq = pIScsiCmd->CmdType.ScsiReq.pScsiReq;
2864 iscsiCmdComplete(pImage, pIScsiCmd, rc);
2891 iscsiCmdComplete(pImage, pIScsiCmd, VINF_SUCCESS);
3218 PISCSICMD pIScsiCmd = NULL;
3223 pIScsiCmd = pImage->pScsiReqQueue;
3224 if (pIScsiCmd)
3226 pImage->pScsiReqQueue = pIScsiCmd->pNext;
3227 pIScsiCmd->pNext = NULL;
3233 return pIScsiCmd;
3240 DECLINLINE(int) iscsiCmdPut(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd)
3245 pIScsiCmd->pNext = pImage->pScsiReqQueue;
3246 pImage->pScsiReqQueue = pIScsiCmd;
3261 static void iscsiCmdComplete(PISCSIIMAGE pImage, PISCSICMD pIScsiCmd, int rcCmd)
3263 LogFlowFunc(("pImage=%#p pIScsiCmd=%#p rcCmd=%Rrc\n", pImage, pIScsiCmd, rcCmd));
3266 iscsiCmdRemove(pImage, pIScsiCmd->Itt);
3269 pIScsiCmd->pfnComplete(pImage, rcCmd, pIScsiCmd->pvUser);
3273 memset(pIScsiCmd, 0xff, sizeof(ISCSICMD));
3275 RTMemFree(pIScsiCmd);
3288 PISCSICMD pIScsiCmd = NULL;
3308 pIScsiCmd = pIScsiPDUTx->pIScsiCmd;
3310 if (pIScsiCmd)
3313 pIScsiCmd->pNext = pIScsiCmdHead;
3314 pIScsiCmdHead = pIScsiCmd;
3328 pIScsiCmd = pIScsiPDUTx->pIScsiCmd;
3330 if (pIScsiCmd)
3332 pIScsiCmd->pNext = pIScsiCmdHead;
3333 pIScsiCmdHead = pIScsiCmd;
3342 pIScsiCmd = iscsiCmdRemoveAll(pImage);
3344 if (pIScsiCmd)
3346 pIScsiCmdCur = pIScsiCmd;
3355 pIScsiCmdHead = pIScsiCmd;
3367 pIScsiCmd = pIScsiCmdHead;
3370 pIScsiCmd->pNext = NULL;
3372 rc = iscsiPDUTxPrepare(pImage, pIScsiCmd);
3384 pIScsiCmd = pIScsiCmdHead;
3387 iscsiCmdComplete(pImage, pIScsiCmd, VERR_BROKEN_PIPE);
3428 PISCSICMD pIScsiCmd = iscsiCmdGet(pImage);
3430 while (pIScsiCmd)
3432 switch (pIScsiCmd->enmCmdType)
3439 rc = iscsiPDUTxPrepare(pImage, pIScsiCmd);
3443 iscsiCmdComplete(pImage, pIScsiCmd, VERR_NET_CONNECTION_REFUSED);
3448 rc = pIScsiCmd->CmdType.Exec.pfnExec(pIScsiCmd->CmdType.Exec.pvUser);
3449 iscsiCmdComplete(pImage, pIScsiCmd, rc);
3453 AssertMsgFailed(("Invalid command type %d\n", pIScsiCmd->enmCmdType));
3456 pIScsiCmd = iscsiCmdGet(pImage);
3523 PISCSICMD pIScsiCmd = (PISCSICMD)RTMemAllocZ(sizeof(ISCSICMD));
3524 if (!pIScsiCmd)
3528 pIScsiCmd->pNext = NULL;
3529 pIScsiCmd->enmCmdType = ISCSICMDTYPE_REQ;
3530 pIScsiCmd->pfnComplete = pfnComplete;
3531 pIScsiCmd->pvUser = pvUser;
3532 pIScsiCmd->CmdType.ScsiReq.pScsiReq = pScsiReq;
3534 rc = iscsiCmdPut(pImage, pIScsiCmd);
3536 RTMemFree(pIScsiCmd);
3640 PISCSICMD pIScsiCmd = (PISCSICMD)RTMemAllocZ(sizeof(ISCSICMD));
3641 if (!pIScsiCmd)
3648 RTMemFree(pIScsiCmd);
3653 pIScsiCmd->pNext = NULL;
3654 pIScsiCmd->enmCmdType = ISCSICMDTYPE_EXEC;
3655 pIScsiCmd->pfnComplete = iscsiCommandCompleteSync;
3656 pIScsiCmd->pvUser = &IScsiCmdSync;
3657 pIScsiCmd->CmdType.Exec.pfnExec = pfnExec;
3658 pIScsiCmd->CmdType.Exec.pvUser = pvUser;
3660 rc = iscsiCmdPut(pImage, pIScsiCmd);
3662 RTMemFree(pIScsiCmd);