Lines Matching refs:srb

330 	struct scsi_cmnd srb;
399 static void isd200_build_sense(struct us_data *us, struct scsi_cmnd *srb)
402 struct sense_data *buf = (struct sense_data *) &srb->sense_buffer[0];
452 struct scsi_cmnd *srb = &info->srb;
457 srb->sc_data_direction = dir;
458 srb->sdb.table.sgl = buff ? &info->sg : NULL;
459 srb->sdb.length = bufflen;
460 srb->sdb.table.nents = buff ? 1 : 0;
463 static void isd200_srb_set_bufflen(struct scsi_cmnd *srb, unsigned bufflen)
465 srb->sdb.length = bufflen;
484 struct scsi_cmnd *srb = &info->srb;
488 srb->cmnd = info->cmnd;
489 srb->device = &srb_dev;
555 memcpy(srb->cmnd, &ata, sizeof(ata.generic));
556 srb->cmd_len = sizeof(ata.generic);
557 status = usb_stor_Bulk_transport(srb, us);
608 struct scsi_cmnd *srb,
616 memcpy(srb->cmnd, ataCdb, sizeof(ataCdb->generic));
617 srb->cmd_len = sizeof(ataCdb->generic);
618 transferStatus = usb_stor_Bulk_transport(srb, us);
633 srb->result = SAM_STAT_GOOD;
638 srb->result = SAM_STAT_CHECK_CONDITION;
648 srb->result = DID_ERROR << 16;
654 srb->result = DID_ERROR << 16;
659 if ((scsi_get_resid(srb) > 0) &&
660 !((srb->cmnd[0] == REQUEST_SENSE) ||
661 (srb->cmnd[0] == INQUIRY) ||
662 (srb->cmnd[0] == MODE_SENSE) ||
663 (srb->cmnd[0] == LOG_SENSE) ||
664 (srb->cmnd[0] == MODE_SENSE_10))) {
676 isd200_build_sense(us, srb);
677 srb->result = SAM_STAT_CHECK_CONDITION;
680 if ((srb->sense_buffer[2] & 0xf) == 0x0)
681 srb->result = SAM_STAT_GOOD;
683 srb->result = DID_ERROR << 16;
693 srb->result = SAM_STAT_CHECK_CONDITION;
701 srb->result = DID_ABORT << 16;
1219 static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
1234 switch (srb->cmnd[0]) {
1240 sizeof(info->InquiryData), srb);
1241 srb->result = SAM_STAT_GOOD;
1249 usb_stor_set_xfer_buf(senseData, sizeof(senseData), srb);
1258 isd200_srb_set_bufflen(srb, 0);
1261 srb->result = SAM_STAT_GOOD;
1276 isd200_srb_set_bufflen(srb, 0);
1279 srb->result = SAM_STAT_GOOD;
1301 sizeof(readCapacityData), srb);
1302 srb->result = SAM_STAT_GOOD;
1310 lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]);
1311 blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8];
1342 lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]);
1343 blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8];
1375 usb_stor_dbg(us, " srb->cmnd[4] = 0x%X\n",
1376 srb->cmnd[4]);
1382 ataCdb->write.CommandByte = (srb->cmnd[4] & 0x1) ?
1384 isd200_srb_set_bufflen(srb, 0);
1387 srb->result = SAM_STAT_GOOD;
1394 usb_stor_dbg(us, " srb->cmnd[4] = 0x%X\n", srb->cmnd[4]);
1396 if ((srb->cmnd[4] & 0x3) == 0x2) {
1403 } else if ((srb->cmnd[4] & 0x3) == 0x1) {
1410 isd200_srb_set_bufflen(srb, 0);
1413 srb->result = SAM_STAT_GOOD;
1420 srb->cmnd[0]);
1421 srb->result = DID_ERROR << 16;
1442 kfree(info->srb.sense_buffer);
1464 info->srb.sense_buffer = kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
1466 if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) {
1513 static void isd200_ata_command(struct scsi_cmnd *srb, struct us_data *us)
1522 srb->result = DID_ERROR << 16;
1526 scsi_set_resid(srb, 0);
1528 orig_bufflen = scsi_bufflen(srb);
1529 sendToTransport = isd200_scsi_to_ata(srb, us, &ataCdb);
1533 isd200_invoke_transport(us, srb, &ataCdb);
1535 isd200_srb_set_bufflen(srb, orig_bufflen);