]> git.proxmox.com Git - qemu.git/blobdiff - hw/scsi-bus.c
scsi: parse 16-byte tape CDBs
[qemu.git] / hw / scsi-bus.c
index 5fbf8dbb141abee8a69dc5758ab702df5137da9b..46cd1f9324e84eb13bc5400510afeee550a64b3e 100644 (file)
@@ -891,6 +891,16 @@ static int scsi_req_stream_length(SCSICommand *cmd, SCSIDevice *dev, uint8_t *bu
             cmd->xfer *= dev->blocksize;
         }
         break;
+    case READ_16:
+    case READ_REVERSE_16:
+    case VERIFY_16:
+    case WRITE_16:
+        cmd->len = 16;
+        cmd->xfer = buf[14] | (buf[13] << 8) | (buf[12] << 16);
+        if (buf[1] & 0x01) { /* fixed */
+            cmd->xfer *= dev->blocksize;
+        }
+        break;
     case REWIND:
     case START_STOP:
         cmd->len = 6;