From: Michael McMaster Date: Mon, 2 Dec 2019 09:25:08 +0000 (+1000) Subject: Add READ DEFECT DATA command emulation X-Git-Tag: v4.8.4~4 X-Git-Url: http://git.codesrc.com/gitweb.cgi?a=commitdiff_plain;h=54ac6377ced0cd37d6feaeb1865829d5aee63c27;p=SCSI2SD.git Add READ DEFECT DATA command emulation --- diff --git a/software/SCSI2SD/src/disk.c b/software/SCSI2SD/src/disk.c index 0afe03f..6122133 100755 --- a/software/SCSI2SD/src/disk.c +++ b/software/SCSI2SD/src/disk.c @@ -522,11 +522,21 @@ int scsiDiskCommand() else if (unlikely(command == 0x37)) { // READ DEFECT DATA - scsiDev.status = CHECK_CONDITION; - scsiDev.target->sense.code = NO_SENSE; - scsiDev.target->sense.asc = DEFECT_LIST_NOT_FOUND; - scsiDev.phase = STATUS; + uint32_t allocLength = (((uint16_t)scsiDev.cdb[7]) << 8) | + scsiDev.cdb[8]; + + scsiDev.data[0] = 0; + scsiDev.data[1] = scsiDev.cdb[1] + scsiDev.data[2] = 0; + scsiDev.data[3] = 0; + scsiDev.dataLen = 4; + if (scsiDev.dataLen > allocLength) + { + scsiDev.dataLen = allocLength; + } + + scsiDev.phase = DATA_IN; } else {