From 75dc0f5e4c7226b5e7b878b753d99be1fcad5f37 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 31 Oct 2015 01:31:51 +0000 Subject: [PATCH] Added information from SBC-2. --- ChangeLog | 5 +++++ SCSI/Modes.cs | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index eaa7ac4ef..28372806f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-10-31 Natalia Portillo + + * SCSI/Modes.cs: + Added information from SBC-2. + 2015-10-31 Natalia Portillo * SCSI/Modes.cs: diff --git a/SCSI/Modes.cs b/SCSI/Modes.cs index 859c148d9..e5eb4abda 100644 --- a/SCSI/Modes.cs +++ b/SCSI/Modes.cs @@ -1632,7 +1632,7 @@ namespace DiscImageChef.Decoders.SCSI /// Disconnect-reconnect page /// Page code 0x08 /// 12 bytes in SCSI-2 - /// 20 bytes in SBC-1 + /// 20 bytes in SBC-1, SBC-2 /// public struct ModePage_08 { @@ -1721,6 +1721,8 @@ namespace DiscImageChef.Decoders.SCSI /// How many bytes should be used as a buffer when all other cached data cannot be evicted /// public uint NonCacheSegmentSize; + + public bool NV_DIS; } public static ModePage_08? DecodeModePage_08(byte[] pageResponse) @@ -1771,6 +1773,8 @@ namespace DiscImageChef.Decoders.SCSI decoded.CacheSegmentSize = (ushort)((pageResponse[14] << 8) + pageResponse[15]); decoded.NonCacheSegmentSize = (uint)((pageResponse[17] << 16) + (pageResponse[18] << 8) + pageResponse[19]); + decoded.NV_DIS |= (pageResponse[12] & 0x01) == 0x01; + return decoded; } @@ -1881,6 +1885,9 @@ namespace DiscImageChef.Decoders.SCSI if (page.NonCacheSegmentSize > 0) sb.AppendFormat("\tDrive shall allocate {0} bytes to buffer even when all cached data cannot be evicted", page.NonCacheSegmentSize).AppendLine(); + if (page.NV_DIS) + sb.AppendLine("\tNon-Volatile cache is disabled"); + return sb.ToString(); } #endregion Mode Page 0x08: Caching page @@ -2441,7 +2448,7 @@ namespace DiscImageChef.Decoders.SCSI /// /// Disconnect-reconnect page /// Page code 0x01 - /// 12 bytes in SCSI-2, SBC-1 + /// 12 bytes in SCSI-2, SBC-1, SBC-2 /// public struct ModePage_01 { @@ -2734,7 +2741,7 @@ namespace DiscImageChef.Decoders.SCSI /// /// Disconnect-reconnect page /// Page code 0x07 - /// 12 bytes in SCSI-2, SBC-1 + /// 12 bytes in SCSI-2, SBC-1, SBC-2 /// public struct ModePage_07 { @@ -4698,7 +4705,7 @@ namespace DiscImageChef.Decoders.SCSI /// /// XOR control mode page /// Page code 0x10 - /// 24 bytes in SBC-1 + /// 24 bytes in SBC-1, SBC-2 /// public struct ModePage_10 {