diff options
author | 2020-04-27 23:30:24 -0400 | |
---|---|---|
committer | 2020-04-27 23:30:24 -0400 | |
commit | b25fdfbe46e406837183cbf22e65404e8b162bc8 (patch) | |
tree | a3e8234886b5b86f504dbf6d1fe09e745894f268 /src | |
parent | 2540207d0cffdfa35faf2abb10e96332635bd8af (diff) | |
parent | ab6628290316b86f0c30bf0b321cd78a815672bc (diff) |
Merge pull request #6604 from davide125/eject
nscsi/cd: handle eject command for SGI drives
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/bus/nscsi/cd.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/devices/bus/nscsi/cd.cpp b/src/devices/bus/nscsi/cd.cpp index 93424f493fa..4d81d3dc9a2 100644 --- a/src/devices/bus/nscsi/cd.cpp +++ b/src/devices/bus/nscsi/cd.cpp @@ -604,13 +604,23 @@ enum sgi_scsi_command_e : uint8_t { * in the kernel runs, if there are SCSI problems. */ SGI_HD2CDROM = 0xc9, + /* + * IRIX 5.3 sends this command when it wants to eject the drive + */ + SGI_EJECT = 0xc4, }; void nscsi_cdrom_sgi_device::scsi_command() { switch (scsi_cmdbuf[0]) { case SGI_HD2CDROM: - LOG("command SGI_HD2CDROM"); + LOG("command SGI_HD2CDROM\n"); + // No need to do anything (yet). Just acknowledge the command. + scsi_status_complete(SS_GOOD); + break; + + case SGI_EJECT: + LOG("command SGI_EJECT\n"); // No need to do anything (yet). Just acknowledge the command. scsi_status_complete(SS_GOOD); break; @@ -627,6 +637,9 @@ bool nscsi_cdrom_sgi_device::scsi_command_done(uint8_t command, uint8_t length) case SGI_HD2CDROM: return length == 10; + case SGI_EJECT: + return length == 10; + default: return nscsi_full_device::scsi_command_done(command, length); } |