scsi: use command defines in scsi-disk.c

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2009-11-26 15:33:56 +01:00 committed by Anthony Liguori
parent 2ec749cb82
commit ebf4602312
1 changed files with 20 additions and 20 deletions

View File

@ -379,16 +379,16 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
if (lun || buf[1] >> 5) { if (lun || buf[1] >> 5) {
/* Only LUN 0 supported. */ /* Only LUN 0 supported. */
DPRINTF("Unimplemented LUN %d\n", lun ? lun : buf[1] >> 5); DPRINTF("Unimplemented LUN %d\n", lun ? lun : buf[1] >> 5);
if (command != 0x03 && command != 0x12) /* REQUEST SENSE and INQUIRY */ if (command != REQUEST_SENSE && command != INQUIRY)
goto fail; goto fail;
} }
switch (command) { switch (command) {
case 0x0: case TEST_UNIT_READY:
DPRINTF("Test Unit Ready\n"); DPRINTF("Test Unit Ready\n");
if (!bdrv_is_inserted(s->dinfo->bdrv)) if (!bdrv_is_inserted(s->dinfo->bdrv))
goto notready; goto notready;
break; break;
case 0x03: case REQUEST_SENSE:
DPRINTF("Request Sense (len %d)\n", len); DPRINTF("Request Sense (len %d)\n", len);
if (len < 4) if (len < 4)
goto fail; goto fail;
@ -406,7 +406,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
outbuf[1] = 0; outbuf[1] = 0;
outbuf[2] = s->sense; outbuf[2] = s->sense;
break; break;
case 0x12: case INQUIRY:
DPRINTF("Inquiry (len %d)\n", len); DPRINTF("Inquiry (len %d)\n", len);
if (buf[1] & 0x2) { if (buf[1] & 0x2) {
/* Command support data - optional, not implemented */ /* Command support data - optional, not implemented */
@ -562,18 +562,18 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
outbuf[7] = 0x10 | (r->req.bus->tcq ? 0x02 : 0); outbuf[7] = 0x10 | (r->req.bus->tcq ? 0x02 : 0);
r->iov.iov_len = len; r->iov.iov_len = len;
break; break;
case 0x16: case RESERVE:
DPRINTF("Reserve(6)\n"); DPRINTF("Reserve(6)\n");
if (buf[1] & 1) if (buf[1] & 1)
goto fail; goto fail;
break; break;
case 0x17: case RELEASE:
DPRINTF("Release(6)\n"); DPRINTF("Release(6)\n");
if (buf[1] & 1) if (buf[1] & 1)
goto fail; goto fail;
break; break;
case 0x1a: case MODE_SENSE:
case 0x5a: case MODE_SENSE_10:
{ {
uint8_t *p; uint8_t *p;
int page; int page;
@ -724,18 +724,18 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
r->iov.iov_len = len; r->iov.iov_len = len;
} }
break; break;
case 0x1b: case START_STOP:
DPRINTF("Start Stop Unit\n"); DPRINTF("Start Stop Unit\n");
if (bdrv_get_type_hint(s->dinfo->bdrv) == BDRV_TYPE_CDROM && if (bdrv_get_type_hint(s->dinfo->bdrv) == BDRV_TYPE_CDROM &&
(buf[4] & 2)) (buf[4] & 2))
/* load/eject medium */ /* load/eject medium */
bdrv_eject(s->dinfo->bdrv, !(buf[4] & 1)); bdrv_eject(s->dinfo->bdrv, !(buf[4] & 1));
break; break;
case 0x1e: case ALLOW_MEDIUM_REMOVAL:
DPRINTF("Prevent Allow Medium Removal (prevent = %d)\n", buf[4] & 3); DPRINTF("Prevent Allow Medium Removal (prevent = %d)\n", buf[4] & 3);
bdrv_set_locked(s->dinfo->bdrv, buf[4] & 1); bdrv_set_locked(s->dinfo->bdrv, buf[4] & 1);
break; break;
case 0x25: case READ_CAPACITY:
DPRINTF("Read Capacity\n"); DPRINTF("Read Capacity\n");
/* The normal LEN field for this command is zero. */ /* The normal LEN field for this command is zero. */
memset(outbuf, 0, 8); memset(outbuf, 0, 8);
@ -764,8 +764,8 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
return 0; return 0;
} }
break; break;
case 0x08: case READ_6:
case 0x28: case READ_10:
case 0x88: case 0x88:
DPRINTF("Read (sector %" PRId64 ", count %d)\n", lba, len); DPRINTF("Read (sector %" PRId64 ", count %d)\n", lba, len);
if (lba > s->max_lba) if (lba > s->max_lba)
@ -773,8 +773,8 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
r->sector = lba * s->cluster_size; r->sector = lba * s->cluster_size;
r->sector_count = len * s->cluster_size; r->sector_count = len * s->cluster_size;
break; break;
case 0x0a: case WRITE_6:
case 0x2a: case WRITE_10:
case 0x8a: case 0x8a:
DPRINTF("Write (sector %" PRId64 ", count %d)\n", lba, len); DPRINTF("Write (sector %" PRId64 ", count %d)\n", lba, len);
if (lba > s->max_lba) if (lba > s->max_lba)
@ -783,11 +783,11 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
r->sector_count = len * s->cluster_size; r->sector_count = len * s->cluster_size;
is_write = 1; is_write = 1;
break; break;
case 0x35: case SYNCHRONIZE_CACHE:
DPRINTF("Synchronise cache (sector %" PRId64 ", count %d)\n", lba, len); DPRINTF("Synchronise cache (sector %" PRId64 ", count %d)\n", lba, len);
bdrv_flush(s->dinfo->bdrv); bdrv_flush(s->dinfo->bdrv);
break; break;
case 0x43: case READ_TOC:
{ {
int start_track, format, msf, toclen; int start_track, format, msf, toclen;
@ -833,12 +833,12 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
outbuf[7] = 8; // CD-ROM outbuf[7] = 8; // CD-ROM
r->iov.iov_len = 8; r->iov.iov_len = 8;
break; break;
case 0x56: case RESERVE_10:
DPRINTF("Reserve(10)\n"); DPRINTF("Reserve(10)\n");
if (buf[1] & 3) if (buf[1] & 3)
goto fail; goto fail;
break; break;
case 0x57: case RELEASE_10:
DPRINTF("Release(10)\n"); DPRINTF("Release(10)\n");
if (buf[1] & 3) if (buf[1] & 3)
goto fail; goto fail;
@ -885,7 +885,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t tag,
outbuf[3] = 8; outbuf[3] = 8;
r->iov.iov_len = 16; r->iov.iov_len = 16;
break; break;
case 0x2f: case VERIFY:
DPRINTF("Verify (sector %" PRId64 ", count %d)\n", lba, len); DPRINTF("Verify (sector %" PRId64 ", count %d)\n", lba, len);
break; break;
default: default: