Lines Matching refs:cmd

57         VirtIOSCSICmdResp     cmd;  member
63 VirtIOSCSICmdReq cmd; member
286 if (req->sreq->cmd.mode != SCSI_XFER_NONE) { in virtio_scsi_load_request()
287 assert(req->sreq->cmd.mode == req->mode); in virtio_scsi_load_request()
464 if (cmd_req && cmd_req->req.cmd.tag == req->req.tmf.tag) { in virtio_scsi_do_tmf()
650 trace_virtio_scsi_cmd_resp(virtio_scsi_get_lun(req->req.cmd.lun), in virtio_scsi_complete_cmd_req()
651 req->req.cmd.tag, in virtio_scsi_complete_cmd_req()
652 req->resp.cmd.response, in virtio_scsi_complete_cmd_req()
653 req->resp.cmd.status); in virtio_scsi_complete_cmd_req()
669 req->resp.cmd.status = GOOD; in virtio_scsi_command_failed()
672 req->resp.cmd.response = VIRTIO_SCSI_S_INCORRECT_LUN; in virtio_scsi_command_failed()
675 req->resp.cmd.response = VIRTIO_SCSI_S_BUSY; in virtio_scsi_command_failed()
679 req->resp.cmd.response = VIRTIO_SCSI_S_ABORTED; in virtio_scsi_command_failed()
682 req->resp.cmd.response = VIRTIO_SCSI_S_BAD_TARGET; in virtio_scsi_command_failed()
685 req->resp.cmd.response = VIRTIO_SCSI_S_RESET; in virtio_scsi_command_failed()
688 req->resp.cmd.response = VIRTIO_SCSI_S_TRANSPORT_FAILURE; in virtio_scsi_command_failed()
691 req->resp.cmd.response = VIRTIO_SCSI_S_TARGET_FAILURE; in virtio_scsi_command_failed()
694 req->resp.cmd.response = VIRTIO_SCSI_S_NEXUS_FAILURE; in virtio_scsi_command_failed()
700 req->resp.cmd.response = VIRTIO_SCSI_S_FAILURE; in virtio_scsi_command_failed()
717 req->resp.cmd.response = VIRTIO_SCSI_S_OK; in virtio_scsi_command_complete()
718 req->resp.cmd.status = r->status; in virtio_scsi_command_complete()
719 if (req->resp.cmd.status == GOOD) { in virtio_scsi_command_complete()
720 req->resp.cmd.resid = virtio_tswap32(vdev, resid); in virtio_scsi_command_complete()
722 req->resp.cmd.resid = 0; in virtio_scsi_command_complete()
724 sense_len = MIN(sense_len, req->resp_iov.size - sizeof(req->resp.cmd)); in virtio_scsi_command_complete()
725 qemu_iovec_from_buf(&req->resp_iov, sizeof(req->resp.cmd), in virtio_scsi_command_complete()
727 req->resp.cmd.sense_len = virtio_tswap32(vdev, sense_len); in virtio_scsi_command_complete()
732 static int virtio_scsi_parse_cdb(SCSIDevice *dev, SCSICommand *cmd, in virtio_scsi_parse_cdb() argument
738 if (cmd->len == 0) { in virtio_scsi_parse_cdb()
739 cmd->len = MIN(VIRTIO_SCSI_CDB_DEFAULT_SIZE, SCSI_CMD_BUF_SIZE); in virtio_scsi_parse_cdb()
740 memcpy(cmd->buf, buf, cmd->len); in virtio_scsi_parse_cdb()
746 cmd->xfer = req->qsgl.size; in virtio_scsi_parse_cdb()
747 cmd->mode = req->mode; in virtio_scsi_parse_cdb()
766 req->resp.cmd.response = VIRTIO_SCSI_S_RESET; in virtio_scsi_request_cancelled()
768 req->resp.cmd.response = VIRTIO_SCSI_S_ABORTED; in virtio_scsi_request_cancelled()
775 req->resp.cmd.response = VIRTIO_SCSI_S_FAILURE; in virtio_scsi_fail_cmd_req()
796 trace_virtio_scsi_cmd_req(virtio_scsi_get_lun(req->req.cmd.lun), in virtio_scsi_handle_cmd_req_prepare()
797 req->req.cmd.tag, req->req.cmd.cdb[0]); in virtio_scsi_handle_cmd_req_prepare()
799 d = virtio_scsi_device_get(s, req->req.cmd.lun); in virtio_scsi_handle_cmd_req_prepare()
801 req->resp.cmd.response = VIRTIO_SCSI_S_BAD_TARGET; in virtio_scsi_handle_cmd_req_prepare()
806 req->sreq = scsi_req_new(d, req->req.cmd.tag, in virtio_scsi_handle_cmd_req_prepare()
807 virtio_scsi_get_lun(req->req.cmd.lun), in virtio_scsi_handle_cmd_req_prepare()
808 req->req.cmd.cdb, vs->cdb_size, req); in virtio_scsi_handle_cmd_req_prepare()
810 if (req->sreq->cmd.mode != SCSI_XFER_NONE in virtio_scsi_handle_cmd_req_prepare()
811 && (req->sreq->cmd.mode != req->mode || in virtio_scsi_handle_cmd_req_prepare()
812 req->sreq->cmd.xfer > req->qsgl.size)) { in virtio_scsi_handle_cmd_req_prepare()
813 req->resp.cmd.response = VIRTIO_SCSI_S_OVERRUN; in virtio_scsi_handle_cmd_req_prepare()
1199 VirtIOHandleOutput cmd, in virtio_scsi_common_realize() argument
1232 s->cmd_vqs[i] = virtio_add_queue(vdev, s->conf.virtqueue_size, cmd); in virtio_scsi_common_realize()