Revision ebef0bbb

b/hw/scsi-disk.c
892 892
        break;
893 893
    case VERIFY:
894 894
        break;
895
    case REZERO_UNIT:
896
        DPRINTF("Rezero Unit\n");
897
        if (!bdrv_is_inserted(s->bs)) {
898
            goto not_ready;
899
        }
900
        break;
895 901
    default:
896 902
        goto illegal_request;
897 903
    }
......
1011 1017
    case SERVICE_ACTION_IN:
1012 1018
    case REPORT_LUNS:
1013 1019
    case VERIFY:
1020
    case REZERO_UNIT:
1014 1021
        rc = scsi_disk_emulate_command(&r->req, outbuf);
1015 1022
        if (rc > 0) {
1016 1023
            r->iov.iov_len = rc;
......
1034 1041
    case WRITE_10:
1035 1042
    case WRITE_12:
1036 1043
    case WRITE_16:
1037
        DPRINTF("Write (sector %" PRId64 ", count %d)\n", lba, len);
1044
    case WRITE_VERIFY:
1045
    case WRITE_VERIFY_12:
1046
    case WRITE_VERIFY_16:
1047
        DPRINTF("Write %s(sector %" PRId64 ", count %d)\n",
1048
                (command & 0xe) == 0xe ? "And Verify " : "", lba, len);
1038 1049
        if (lba > s->max_lba)
1039 1050
            goto illegal_lba;
1040 1051
        r->sector = lba * s->cluster_size;
1041 1052
        r->sector_count = len * s->cluster_size;
1042 1053
        is_write = 1;
1043 1054
        break;
1055
    case MODE_SELECT:
1056
        DPRINTF("Mode Select(6) (len %d)\n", len);
1057
        /* We don't support mode parameter changes.
1058
           Allow the mode parameter header + block descriptors only. */
1059
        if (len > 12) {
1060
            goto fail;
1061
        }
1062
        break;
1063
    case MODE_SELECT_10:
1064
        DPRINTF("Mode Select(10) (len %d)\n", len);
1065
        /* We don't support mode parameter changes.
1066
           Allow the mode parameter header + block descriptors only. */
1067
        if (len > 16) {
1068
            goto fail;
1069
        }
1070
        break;
1071
    case SEEK_6:
1072
    case SEEK_10:
1073
        DPRINTF("Seek(%d) (sector %" PRId64 ")\n", command == SEEK_6 ? 6 : 10, lba);
1074
        if (lba > s->max_lba) {
1075
            goto illegal_lba;
1076
        }
1077
        break;
1044 1078
    default:
1045 1079
	DPRINTF("Unknown SCSI command (%2.2x)\n", buf[0]);
1046 1080
    fail:

Also available in: Unified diff