Added information from ECMA-111.

This commit is contained in:
2015-10-23 20:58:13 +01:00
parent 8a4c93c7f4
commit 0d146b7f42
5 changed files with 72 additions and 50 deletions

View File

@@ -1,3 +1,9 @@
2015-10-23 Natalia Portillo <claunia@claunia.com>
* SCSI/Enums.cs:
* SCSI/Inquiry.cs:
Added information from ECMA-111.
2015-10-19 Natalia Portillo <claunia@claunia.com> 2015-10-19 Natalia Portillo <claunia@claunia.com>
* SCSI/EVPD.cs: * SCSI/EVPD.cs:

View File

@@ -198,9 +198,9 @@ namespace DiscImageChef.Decoders.SCSI
/// </summary> /// </summary>
ECMANoVersion = 0x00, ECMANoVersion = 0x00,
/// <summary> /// <summary>
/// Device complies with an obsolete ECMA standard /// Device complies with a ECMA-111 standard
/// </summary> /// </summary>
ECMAObsolete = 0x01 ECMA111 = 0x01
} }
enum ISOVersions : byte enum ISOVersions : byte

View File

@@ -50,6 +50,7 @@ namespace DiscImageChef.Decoders.SCSI
/// T10/1731-D revision 16 /// T10/1731-D revision 16
/// T10/502 revision 05 /// T10/502 revision 05
/// RFC 7144 /// RFC 7144
/// ECMA-111
/// </summary> /// </summary>
public static class Inquiry public static class Inquiry
{ {
@@ -334,8 +335,8 @@ namespace DiscImageChef.Decoders.SCSI
case ECMAVersions.ECMANoVersion: case ECMAVersions.ECMANoVersion:
sb.AppendLine("Device does not claim to comply with any SCSI ECMA standard"); sb.AppendLine("Device does not claim to comply with any SCSI ECMA standard");
break; break;
case ECMAVersions.ECMAObsolete: case ECMAVersions.ECMA111:
sb.AppendLine("Device claims to comply with an obsolete SCSI ECMA standard"); sb.AppendLine("Device claims to comply ECMA-111: Small Computer System Interface SCSI");
break; break;
default: default:
sb.AppendFormat("Device claims to comply with unknown SCSI ECMA standard value 0x{0:X2})", response.ECMAVersion).AppendLine(); sb.AppendFormat("Device claims to comply with unknown SCSI ECMA standard value 0x{0:X2})", response.ECMAVersion).AppendLine();

View File

@@ -1,3 +1,8 @@
2015-10-23 Natalia Portillo <claunia@claunia.com>
* Enums.cs:
Added information from ECMA-111.
2015-10-19 Natalia Portillo <claunia@claunia.com> 2015-10-19 Natalia Portillo <claunia@claunia.com>
* Device/Variables.cs: * Device/Variables.cs:

View File

@@ -1285,17 +1285,17 @@ namespace DiscImageChef.Devices
ChangeDefinition = 0x40, ChangeDefinition = 0x40,
/// <summary> /// <summary>
/// Compares data between two devices /// Compares data between two devices
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Compare = 0x39, Compare = 0x39,
/// <summary> /// <summary>
/// Copies data between two devices /// Copies data between two devices
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Copy = 0x18, Copy = 0x18,
/// <summary> /// <summary>
/// Copies data between two devices and verifies the copy is correct. /// Copies data between two devices and verifies the copy is correct.
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
CopyAndVerify = 0x3A, CopyAndVerify = 0x3A,
/// <summary> /// <summary>
@@ -1305,7 +1305,7 @@ namespace DiscImageChef.Devices
ExtendedCopy = 0x83, ExtendedCopy = 0x83,
/// <summary> /// <summary>
/// Requests information about the device /// Requests information about the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Inquiry = 0x12, Inquiry = 0x12,
/// <summary> /// <summary>
@@ -1330,7 +1330,7 @@ namespace DiscImageChef.Devices
ManagementProtocolOut = 0xA4, ManagementProtocolOut = 0xA4,
/// <summary> /// <summary>
/// Sets device parameters /// Sets device parameters
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ModeSelect = 0x15, ModeSelect = 0x15,
/// <summary> /// <summary>
@@ -1340,7 +1340,7 @@ namespace DiscImageChef.Devices
ModeSelect10 = 0x55, ModeSelect10 = 0x55,
/// <summary> /// <summary>
/// Gets device parameters /// Gets device parameters
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ModeSense = 0x1A, ModeSense = 0x1A,
/// <summary> /// <summary>
@@ -1360,7 +1360,7 @@ namespace DiscImageChef.Devices
PersistentReserveOut = 0x5F, PersistentReserveOut = 0x5F,
/// <summary> /// <summary>
/// Requests the device to disable or enable the removal of the medium inside it /// Requests the device to disable or enable the removal of the medium inside it
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
PreventAllowMediumRemoval = 0x1E, PreventAllowMediumRemoval = 0x1E,
/// <summary> /// <summary>
@@ -1385,12 +1385,12 @@ namespace DiscImageChef.Devices
ReceiveCopyResults = 0x84, ReceiveCopyResults = 0x84,
/// <summary> /// <summary>
/// Requests the data after completion of a <see cref="SendDiagnostic"/> /// Requests the data after completion of a <see cref="SendDiagnostic"/>
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ReceiveDiagnostic = 0x1C, ReceiveDiagnostic = 0x1C,
/// <summary> /// <summary>
/// Releases a previously reserved LUN or extents /// Releases a previously reserved LUN or extents
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Release = 0x17, Release = 0x17,
/// <summary> /// <summary>
@@ -1405,12 +1405,12 @@ namespace DiscImageChef.Devices
ReportLuns = 0xA0, ReportLuns = 0xA0,
/// <summary> /// <summary>
/// Requests the device's sense /// Requests the device's sense
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
RequestSense = 0x03, RequestSense = 0x03,
/// <summary> /// <summary>
/// Reserves a LUN or extent /// Reserves a LUN or extent
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Reserve = 0x16, Reserve = 0x16,
/// <summary> /// <summary>
@@ -1430,7 +1430,7 @@ namespace DiscImageChef.Devices
SecurityProtocolOut = 0xB5, SecurityProtocolOut = 0xB5,
/// <summary> /// <summary>
/// Requests the device to perform diagnostics /// Requests the device to perform diagnostics
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SendDiagnostic = 0x1D, SendDiagnostic = 0x1D,
/// <summary> /// <summary>
@@ -1445,7 +1445,7 @@ namespace DiscImageChef.Devices
ServiceActionOut = 0x9F, ServiceActionOut = 0x9F,
/// <summary> /// <summary>
/// Checks if a LUN is ready to access its medium /// Checks if a LUN is ready to access its medium
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
TestUnitReady = 0x00, TestUnitReady = 0x00,
/// <summary> /// <summary>
@@ -1469,7 +1469,7 @@ namespace DiscImageChef.Devices
CompareAndWrite = 0x89, CompareAndWrite = 0x89,
/// <summary> /// <summary>
/// Formats the medium into addressable logical blocks /// Formats the medium into addressable logical blocks
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
FormatUnit = 0x04, FormatUnit = 0x04,
/// <summary> /// <summary>
@@ -1503,12 +1503,12 @@ namespace DiscImageChef.Devices
PreFetch16 = 0x90, PreFetch16 = 0x90,
/// <summary> /// <summary>
/// Reads blocks from device /// Reads blocks from device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Read = 0x08, Read = 0x08,
/// <summary> /// <summary>
/// Reads blocks from device /// Reads blocks from device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Read10 = 0x28, Read10 = 0x28,
/// <summary> /// <summary>
@@ -1518,7 +1518,7 @@ namespace DiscImageChef.Devices
Read16 = 0x88, Read16 = 0x88,
/// <summary> /// <summary>
/// Gets device capacity /// Gets device capacity
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ReadCapacity = 0x25, ReadCapacity = 0x25,
/// <summary> /// <summary>
@@ -1533,7 +1533,7 @@ namespace DiscImageChef.Devices
ReadLong = 0x3E, ReadLong = 0x3E,
/// <summary> /// <summary>
/// Requests the device to reassign the defective blocks to another area of the medium /// Requests the device to reassign the defective blocks to another area of the medium
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ReassignBlocks = 0x07, ReassignBlocks = 0x07,
/// <summary> /// <summary>
@@ -1548,42 +1548,42 @@ namespace DiscImageChef.Devices
Regenerate = 0x82, Regenerate = 0x82,
/// <summary> /// <summary>
/// Requests the device to set the LUN in a vendor specific state /// Requests the device to set the LUN in a vendor specific state
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
RezeroUnit = 0x01, RezeroUnit = 0x01,
/// <summary> /// <summary>
/// Searches data on blocks /// Searches data on blocks
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SearchDataEqual = 0x31, SearchDataEqual = 0x31,
/// <summary> /// <summary>
/// Searches data on blocks using major than or equal comparison /// Searches data on blocks using major than or equal comparison
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SearchDataHigh = 0x30, SearchDataHigh = 0x30,
/// <summary> /// <summary>
/// Searches data on blocks using minor than or equal comparison /// Searches data on blocks using minor than or equal comparison
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SearchDataLow = 0x32, SearchDataLow = 0x32,
/// <summary> /// <summary>
/// Requests the device to seek to a specified blocks /// Requests the device to seek to a specified blocks
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Seek = 0x0B, Seek = 0x0B,
/// <summary> /// <summary>
/// Requests the device to seek to a specified blocks /// Requests the device to seek to a specified blocks
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Seek10 = 0x2B, Seek10 = 0x2B,
/// <summary> /// <summary>
/// Defines the range within which subsequent linked commands may operate /// Defines the range within which subsequent linked commands may operate
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SetLimits = 0x33, SetLimits = 0x33,
/// <summary> /// <summary>
/// Requests the device to enable or disable the LUN for media access operations /// Requests the device to enable or disable the LUN for media access operations
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
StartStopUnit = 0x1B, StartStopUnit = 0x1B,
/// <summary> /// <summary>
@@ -1604,7 +1604,7 @@ namespace DiscImageChef.Devices
Unmap = 0x42, Unmap = 0x42,
/// <summary> /// <summary>
/// Verifies blocks on the device /// Verifies blocks on the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Verify10 = 0x2F, Verify10 = 0x2F,
/// <summary> /// <summary>
@@ -1614,12 +1614,12 @@ namespace DiscImageChef.Devices
Verify16 = 0x8F, Verify16 = 0x8F,
/// <summary> /// <summary>
/// Writes blocks to the device /// Writes blocks to the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Write = 0x0A, Write = 0x0A,
/// <summary> /// <summary>
/// Writes blocks to the device /// Writes blocks to the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Write10 = 0x2A, Write10 = 0x2A,
/// <summary> /// <summary>
@@ -1629,7 +1629,7 @@ namespace DiscImageChef.Devices
Write16 = 0x8A, Write16 = 0x8A,
/// <summary> /// <summary>
/// Writes blocks to the device and then verifies them /// Writes blocks to the device and then verifies them
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
WriteAndVerify = 0x2E, WriteAndVerify = 0x2E,
/// <summary> /// <summary>
@@ -1687,12 +1687,12 @@ namespace DiscImageChef.Devices
FormatMedium = 0x04, FormatMedium = 0x04,
/// <summary> /// <summary>
/// Erases part of all of the medium from the current position /// Erases part of all of the medium from the current position
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Erase = 0x19, Erase = 0x19,
/// <summary> /// <summary>
/// Enables or disables the LUN for further operations /// Enables or disables the LUN for further operations
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
LoadUnload = 0x1B, LoadUnload = 0x1B,
/// <summary> /// <summary>
@@ -1707,7 +1707,7 @@ namespace DiscImageChef.Devices
Locate16 = 0x92, Locate16 = 0x92,
/// <summary> /// <summary>
/// Requests the block length limits capability /// Requests the block length limits capability
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ReadBlockLimits = 0x05, ReadBlockLimits = 0x05,
/// <summary> /// <summary>
@@ -1717,12 +1717,12 @@ namespace DiscImageChef.Devices
ReadPosition = 0x34, ReadPosition = 0x34,
/// <summary> /// <summary>
/// Reads blocks from the device, in reverse order /// Reads blocks from the device, in reverse order
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
ReadReverse = 0x0F, ReadReverse = 0x0F,
/// <summary> /// <summary>
/// Retrieves data from the device buffer that has not been successfully written to the medium (or printed) /// Retrieves data from the device buffer that has not been successfully written to the medium (or printed)
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
RecoverBufferedData = 0x14, RecoverBufferedData = 0x14,
/// <summary> /// <summary>
@@ -1732,12 +1732,12 @@ namespace DiscImageChef.Devices
ReportDensitySupport = 0x44, ReportDensitySupport = 0x44,
/// <summary> /// <summary>
/// Seeks the medium to the beginning of partition in current partition /// Seeks the medium to the beginning of partition in current partition
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Rewind = 0x01, Rewind = 0x01,
/// <summary> /// <summary>
/// A variety of positioning functions /// A variety of positioning functions
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Space = 0x11, Space = 0x11,
/// <summary> /// <summary>
@@ -1746,56 +1746,66 @@ namespace DiscImageChef.Devices
/// </summary> /// </summary>
Space16 = 0x91, Space16 = 0x91,
/// <summary> /// <summary>
/// Selects the specified track
/// ECMA-111 (SCSI-1)
/// </summary>
TrackSelect = 0x0B,
/// <summary>
/// Verifies one or more blocks from the next one /// Verifies one or more blocks from the next one
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Verify = 0x13, Verify = 0x13,
/// <summary> /// <summary>
/// Writes the specified number of filemarks or setmarks in the current position /// Writes the specified number of filemarks or setmarks in the current position
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
WriteFileMarks = 0x10, WriteFileMarks = 0x10,
#endregion SCSI Streaming Commands (SSC) #endregion SCSI Streaming Commands (SSC)
#region SCSI Streaming Commands for Printers (SSC) #region SCSI Streaming Commands for Printers (SSC)
/// <summary>
/// Assures that the data in the buffer has been printed, or, for other devices, written to media
/// ECMA-111 (SCSI-1)
/// </summary>
FlushBuffer = 0x10,
/// <summary> /// <summary>
/// Specifies forms or fronts /// Specifies forms or fronts
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Format = 0x04, Format = 0x04,
/// <summary> /// <summary>
/// Transfers data to be printed /// Transfers data to be printed
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Print = 0x0A, Print = 0x0A,
/// <summary> /// <summary>
/// Transfers data to be printed with a slew value /// Transfers data to be printed with a slew value
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
SlewAndPrint = 0x0B, SlewAndPrint = 0x0B,
/// <summary> /// <summary>
/// Halts printing /// Halts printing
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
StopPrint = 0x1B, StopPrint = 0x1B,
/// <summary> /// <summary>
/// Assures that the data in the buffer has been printed, or, for other devices, written to media /// Assures that the data in the buffer has been printed, or, for other devices, written to media
/// SCSI-2 X3T9.2/375R rev. 10l /// SCSI-2 X3T9.2/375R rev. 10l
/// </summary> /// </summary>
SynchronizeBuffer = 0x10, SynchronizeBuffer = FlushBuffer,
#endregion SCSI Streaming Commands for Printers (SSC) #endregion SCSI Streaming Commands for Printers (SSC)
#region SCSI Processor Commands #region SCSI Processor Commands
/// <summary> /// <summary>
/// Transfers data from the device /// Transfers data from the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Receive = 0x08, Receive = 0x08,
/// <summary> /// <summary>
/// Sends data to the device /// Sends data to the device
/// SCSI-2 X3T9.2/375R rev. 10l /// ECMA-111 (SCSI-1)
/// </summary> /// </summary>
Send = 0x0A, Send = 0x0A,
#endregion SCSI Processor Commands #endregion SCSI Processor Commands