scsi direct:

* Fixup inquiry size check - we only use 36 bytes
* Support Test Unit Ready (needed for HDToolbox in 3.2)
This commit is contained in:
Matt Harlum 2025-07-17 05:13:30 +00:00
parent 89b1b2bfdd
commit e57a7f8de8
5 changed files with 6 additions and 1 deletions

Binary file not shown.

View File

@ -68,7 +68,7 @@ static uint8_t handle_inquiry(struct SCSICmd *cmd, struct IOStdReq *ior)
return TDERR_DiskChanged;
}
if (cmd->scsi_Length < sizeof(struct SCSI_Inquiry)) {
if (cmd->scsi_Length < 36) {
return IOERR_BADLENGTH;
}
@ -180,6 +180,10 @@ void process_scsi_direct(struct IOStdReq *ior)
cmd->scsi_Status = 0;
switch (cdb[0]) {
case SCSI_CMD_TEST_UNIT_READY:
cmd->scsi_Actual = 0;
ior->io_Error = 0;
break;
case SCSI_CMD_READ_6:
{
struct SCSI_CDB_6 *cdb6 = (struct SCSI_CDB_6 *)cdb;

View File

@ -1,6 +1,7 @@
#ifndef SCSIDIRECT_H_
#define SCSIDIRECT_H_
#define SCSI_CMD_TEST_UNIT_READY 0x00
#define SCSI_CMD_READ_6 0x08
#define SCSI_CMD_WRITE_6 0x0A
#define SCSI_CMD_READ_10 0x28

Binary file not shown.

Binary file not shown.