Lines Matching refs:pVScsiReq

50  * @param   pVScsiReq       The SCSi request.
53 static bool vscsiDeviceReqProcess(PVSCSIDEVICEINT pVScsiDevice, PVSCSIREQINT pVScsiReq,
58 switch (pVScsiReq->pbCDB[0])
62 if (!vscsiDeviceLunIsPresent(pVScsiDevice, pVScsiReq->iLun))
71 cbData = RTSgBufCopyFromBuf(&pVScsiReq->SgBuf, (uint8_t *)&ScsiInquiryReply, sizeof(SCSIINQUIRYDATA));
72 *prcReq = vscsiReqSenseOkSet(&pVScsiDevice->VScsiSense, pVScsiReq);
85 if (vscsiBE2HU32(&pVScsiReq->pbCDB[6]) < 16)
86 *prcReq = vscsiReqSenseErrorSet(&pVScsiDevice->VScsiSense, pVScsiReq, SCSI_SENSE_ILLEGAL_REQUEST, SCSI_ASC_INV_FIELD_IN_CMD_PACKET, 0x00);
94 cbData = RTSgBufCopyFromBuf(&pVScsiReq->SgBuf, aReply, sizeof(aReply));
96 *prcReq = vscsiReqSenseErrorSet(&pVScsiDevice->VScsiSense, pVScsiReq, SCSI_SENSE_ILLEGAL_REQUEST, SCSI_ASC_INV_FIELD_IN_CMD_PACKET, 0x00);
98 *prcReq = vscsiReqSenseOkSet(&pVScsiDevice->VScsiSense, pVScsiReq);
104 if ( vscsiDeviceLunIsPresent(pVScsiDevice, pVScsiReq->iLun)
105 && pVScsiDevice->papVScsiLun[pVScsiReq->iLun]->fReady)
106 *prcReq = vscsiReqSenseOkSet(&pVScsiDevice->VScsiSense, pVScsiReq);
114 if ((pVScsiReq->pbCDB[1] & 0x1) != 0)
115 *prcReq = vscsiReqSenseErrorSet(&pVScsiDevice->VScsiSense, pVScsiReq, SCSI_SENSE_ILLEGAL_REQUEST, SCSI_ASC_INV_FIELD_IN_CMD_PACKET, 0x00);
117 *prcReq = vscsiReqSenseCmd(&pVScsiDevice->VScsiSense, pVScsiReq);
128 void vscsiDeviceReqComplete(PVSCSIDEVICEINT pVScsiDevice, PVSCSIREQINT pVScsiReq,
132 pVScsiReq->pvVScsiReqUser, rcScsiCode, fRedoPossible,
135 RTMemCacheFree(pVScsiDevice->hCacheReq, pVScsiReq);
280 PVSCSIREQINT pVScsiReq = (PVSCSIREQINT)hVScsiReq;
285 AssertPtrReturn(pVScsiReq, VERR_INVALID_HANDLE);
289 bool fProcessed = vscsiDeviceReqProcess(pVScsiDevice, pVScsiReq, &rcReq);
293 if (vscsiDeviceLunIsPresent(pVScsiDevice, pVScsiReq->iLun))
295 PVSCSILUNINT pVScsiLun = pVScsiDevice->papVScsiLun[pVScsiReq->iLun];
296 rc = pVScsiLun->pVScsiLunDesc->pfnVScsiLunReqProcess(pVScsiLun, pVScsiReq);
301 vscsiReqSenseErrorSet(&pVScsiDevice->VScsiSense, pVScsiReq,
306 vscsiDeviceReqComplete(pVScsiDevice, pVScsiReq,
311 vscsiDeviceReqComplete(pVScsiDevice, pVScsiReq,
325 PVSCSIREQINT pVScsiReq = NULL;
333 pVScsiReq = (PVSCSIREQINT)RTMemCacheAlloc(pVScsiDevice->hCacheReq);
334 if (!pVScsiReq)
337 pVScsiReq->iLun = iLun;
338 pVScsiReq->pbCDB = pbCDB;
339 pVScsiReq->cbCDB = cbCDB;
340 pVScsiReq->pbSense = pbSense;
341 pVScsiReq->cbSense = cbSense;
342 pVScsiReq->pvVScsiReqUser = pvVScsiReqUser;
345 RTSgBufInit(&pVScsiReq->SgBuf, paSGList, cSGListEntries);
347 *phVScsiReq = pVScsiReq;