mirror of
https://github.com/akuker/RASCSI.git
synced 2025-01-12 01:29:58 +00:00
Split scsi_command enums into separate enums for SASI and for SCSI
This commit is contained in:
parent
7e94aeea63
commit
ea49c35c1a
@ -391,7 +391,7 @@ void SASIDEV::Execute()
|
|||||||
|
|
||||||
// Process by command
|
// Process by command
|
||||||
// TODO This code does not belong here. Each device type needs such a dispatcher, which the controller has to call.
|
// TODO This code does not belong here. Each device type needs such a dispatcher, which the controller has to call.
|
||||||
switch ((SASIDEV::scsi_command)ctrl.cmd[0]) {
|
switch ((SASIDEV::sasi_command)ctrl.cmd[0]) {
|
||||||
// TEST UNIT READY
|
// TEST UNIT READY
|
||||||
case SASIDEV::eCmdTestUnitReady:
|
case SASIDEV::eCmdTestUnitReady:
|
||||||
CmdTestUnitReady();
|
CmdTestUnitReady();
|
||||||
@ -449,9 +449,7 @@ void SASIDEV::Execute()
|
|||||||
CmdReleaseUnit();
|
CmdReleaseUnit();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// SPECIFY (SASI only)
|
// SPECIFY
|
||||||
// This doesn't exist in the SCSI Spec, but was in the original RaSCSI code.
|
|
||||||
// leaving it here for now....
|
|
||||||
case SASIDEV::eCmdInvalid:
|
case SASIDEV::eCmdInvalid:
|
||||||
CmdSpecify();
|
CmdSpecify();
|
||||||
return;
|
return;
|
||||||
@ -1281,7 +1279,7 @@ BOOL SASIDEV::XferOut(BOOL cont)
|
|||||||
}
|
}
|
||||||
Disk *device = ctrl.unit[lun];
|
Disk *device = ctrl.unit[lun];
|
||||||
|
|
||||||
switch ((SASIDEV::scsi_command) ctrl.cmd[0]) {
|
switch ((SASIDEV::sasi_command) ctrl.cmd[0]) {
|
||||||
case SASIDEV::eCmdModeSelect:
|
case SASIDEV::eCmdModeSelect:
|
||||||
case SASIDEV::eCmdModeSelect10:
|
case SASIDEV::eCmdModeSelect10:
|
||||||
if (!device->ModeSelect(
|
if (!device->ModeSelect(
|
||||||
@ -1383,7 +1381,7 @@ void SASIDEV::FlushUnit()
|
|||||||
Disk *device = ctrl.unit[lun];
|
Disk *device = ctrl.unit[lun];
|
||||||
|
|
||||||
// WRITE system only
|
// WRITE system only
|
||||||
switch ((SASIDEV::scsi_command)ctrl.cmd[0]) {
|
switch ((SASIDEV::sasi_command)ctrl.cmd[0]) {
|
||||||
case SASIDEV::eCmdWrite6:
|
case SASIDEV::eCmdWrite6:
|
||||||
case SASIDEV::eCmdWrite10:
|
case SASIDEV::eCmdWrite10:
|
||||||
case SASIDEV::eCmdWrite16:
|
case SASIDEV::eCmdWrite16:
|
||||||
|
@ -55,52 +55,31 @@ protected:
|
|||||||
eMsgCodeTerminateIOProcess = 0x11,
|
eMsgCodeTerminateIOProcess = 0x11,
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
private:
|
||||||
enum scsi_command : int {
|
enum sasi_command : int {
|
||||||
eCmdTestUnitReady = 0x00,
|
eCmdTestUnitReady = 0x00,
|
||||||
eCmdRezero = 0x01,
|
eCmdRezero = 0x01,
|
||||||
eCmdRequestSense = 0x03,
|
eCmdRequestSense = 0x03,
|
||||||
eCmdFormat = 0x04,
|
eCmdFormat = 0x04,
|
||||||
eCmdReassign = 0x07,
|
eCmdReassign = 0x07,
|
||||||
eCmdRead6 = 0x08,
|
eCmdRead6 = 0x08,
|
||||||
eCmdRetrieveStats = 0x09, // DaynaPort specific command
|
|
||||||
eCmdWrite6 = 0x0A,
|
eCmdWrite6 = 0x0A,
|
||||||
eCmdSeek6 = 0x0B,
|
eCmdSeek6 = 0x0B,
|
||||||
eCmdSetIfaceMode = 0x0C, // DaynaPort specific command
|
eCmdSetIfaceMode = 0x0C, // DaynaPort specific command
|
||||||
eCmdSetMcastAddr = 0x0D, // DaynaPort specific command
|
eCmdSetMcastAddr = 0x0D, // DaynaPort specific command
|
||||||
eCmdEnableInterface = 0x0E, // DaynaPort specific command
|
|
||||||
eCmdInquiry = 0x12,
|
|
||||||
eCmdModeSelect = 0x15,
|
eCmdModeSelect = 0x15,
|
||||||
eCmdReserve6 = 0x16,
|
eCmdReserve6 = 0x16,
|
||||||
eCmdRelease6 = 0x17,
|
eCmdRelease6 = 0x17,
|
||||||
eCmdModeSense = 0x1A,
|
|
||||||
eCmdStartStop = 0x1B,
|
|
||||||
eCmdSendDiag = 0x1D,
|
|
||||||
eCmdRemoval = 0x1E,
|
|
||||||
eCmdReadCapacity10 = 0x25,
|
|
||||||
eCmdRead10 = 0x28,
|
eCmdRead10 = 0x28,
|
||||||
eCmdWrite10 = 0x2A,
|
eCmdWrite10 = 0x2A,
|
||||||
eCmdSeek10 = 0x2B,
|
|
||||||
eCmdVerify10 = 0x2E,
|
eCmdVerify10 = 0x2E,
|
||||||
eCmdVerify = 0x2F,
|
eCmdVerify = 0x2F,
|
||||||
eCmdSynchronizeCache = 0x35,
|
|
||||||
eCmdReadDefectData10 = 0x37,
|
|
||||||
eCmdReadToc = 0x43,
|
|
||||||
eCmdPlayAudio10 = 0x45,
|
|
||||||
eCmdPlayAudioMSF = 0x47,
|
|
||||||
eCmdPlayAudioTrack = 0x48,
|
|
||||||
eCmdGetEventStatusNotification = 0x4a,
|
|
||||||
eCmdModeSelect10 = 0x55,
|
eCmdModeSelect10 = 0x55,
|
||||||
eCmdReserve10 = 0x56,
|
|
||||||
eCmdRelease10 = 0x57,
|
|
||||||
eCmdModeSense10 = 0x5A,
|
|
||||||
eCmdRead16 = 0x88,
|
eCmdRead16 = 0x88,
|
||||||
eCmdWrite16 = 0x8A,
|
eCmdWrite16 = 0x8A,
|
||||||
eCmdVerify16 = 0x8F,
|
eCmdVerify16 = 0x8F,
|
||||||
eCmdReadCapacity16 = 0x9E,
|
eCmdInvalid = 0xC2,
|
||||||
eCmdReportLuns = 0xA0,
|
eCmdSasiCmdAssign = 0x0E
|
||||||
eCmdInvalid = 0xC2, // (SASI only/Suppress warning when using SxSI)
|
|
||||||
eCmdSasiCmdAssign = 0x0E, // This isn't used by SCSI, and can probably be removed.
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -24,6 +24,53 @@
|
|||||||
//===========================================================================
|
//===========================================================================
|
||||||
class SCSIDEV : public SASIDEV
|
class SCSIDEV : public SASIDEV
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private:
|
||||||
|
enum scsi_command : int {
|
||||||
|
eCmdTestUnitReady = 0x00,
|
||||||
|
eCmdRezero = 0x01,
|
||||||
|
eCmdRequestSense = 0x03,
|
||||||
|
eCmdFormat = 0x04,
|
||||||
|
eCmdReassign = 0x07,
|
||||||
|
eCmdRead6 = 0x08,
|
||||||
|
eCmdRetrieveStats = 0x09, // DaynaPort specific command
|
||||||
|
eCmdWrite6 = 0x0A,
|
||||||
|
eCmdSeek6 = 0x0B,
|
||||||
|
eCmdSetIfaceMode = 0x0C, // DaynaPort specific command
|
||||||
|
eCmdSetMcastAddr = 0x0D, // DaynaPort specific command
|
||||||
|
eCmdEnableInterface = 0x0E, // DaynaPort specific command
|
||||||
|
eCmdInquiry = 0x12,
|
||||||
|
eCmdModeSelect = 0x15,
|
||||||
|
eCmdReserve6 = 0x16,
|
||||||
|
eCmdRelease6 = 0x17,
|
||||||
|
eCmdModeSense = 0x1A,
|
||||||
|
eCmdStartStop = 0x1B,
|
||||||
|
eCmdSendDiag = 0x1D,
|
||||||
|
eCmdRemoval = 0x1E,
|
||||||
|
eCmdReadCapacity10 = 0x25,
|
||||||
|
eCmdRead10 = 0x28,
|
||||||
|
eCmdWrite10 = 0x2A,
|
||||||
|
eCmdSeek10 = 0x2B,
|
||||||
|
eCmdVerify10 = 0x2E,
|
||||||
|
eCmdVerify = 0x2F,
|
||||||
|
eCmdSynchronizeCache = 0x35,
|
||||||
|
eCmdReadDefectData10 = 0x37,
|
||||||
|
eCmdReadToc = 0x43,
|
||||||
|
eCmdPlayAudio10 = 0x45,
|
||||||
|
eCmdPlayAudioMSF = 0x47,
|
||||||
|
eCmdPlayAudioTrack = 0x48,
|
||||||
|
eCmdGetEventStatusNotification = 0x4a,
|
||||||
|
eCmdModeSelect10 = 0x55,
|
||||||
|
eCmdReserve10 = 0x56,
|
||||||
|
eCmdRelease10 = 0x57,
|
||||||
|
eCmdModeSense10 = 0x5A,
|
||||||
|
eCmdRead16 = 0x88,
|
||||||
|
eCmdWrite16 = 0x8A,
|
||||||
|
eCmdVerify16 = 0x8F,
|
||||||
|
eCmdReadCapacity16 = 0x9E,
|
||||||
|
eCmdReportLuns = 0xA0
|
||||||
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Internal data definition
|
// Internal data definition
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user