Added information from SBC-2.

This commit is contained in:
2015-10-31 01:31:51 +00:00
parent 9e6c316246
commit 3391a49adc
2 changed files with 16 additions and 4 deletions

View File

@@ -1,3 +1,8 @@
2015-10-31 Natalia Portillo <claunia@claunia.com>
* SCSI/Modes.cs:
Added information from SBC-2.
2015-10-31 Natalia Portillo <claunia@claunia.com> 2015-10-31 Natalia Portillo <claunia@claunia.com>
* SCSI/Modes.cs: * SCSI/Modes.cs:

View File

@@ -1632,7 +1632,7 @@ namespace DiscImageChef.Decoders.SCSI
/// Disconnect-reconnect page /// Disconnect-reconnect page
/// Page code 0x08 /// Page code 0x08
/// 12 bytes in SCSI-2 /// 12 bytes in SCSI-2
/// 20 bytes in SBC-1 /// 20 bytes in SBC-1, SBC-2
/// </summary> /// </summary>
public struct ModePage_08 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 /// How many bytes should be used as a buffer when all other cached data cannot be evicted
/// </summary> /// </summary>
public uint NonCacheSegmentSize; public uint NonCacheSegmentSize;
public bool NV_DIS;
} }
public static ModePage_08? DecodeModePage_08(byte[] pageResponse) 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.CacheSegmentSize = (ushort)((pageResponse[14] << 8) + pageResponse[15]);
decoded.NonCacheSegmentSize = (uint)((pageResponse[17] << 16) + (pageResponse[18] << 8) + pageResponse[19]); decoded.NonCacheSegmentSize = (uint)((pageResponse[17] << 16) + (pageResponse[18] << 8) + pageResponse[19]);
decoded.NV_DIS |= (pageResponse[12] & 0x01) == 0x01;
return decoded; return decoded;
} }
@@ -1881,6 +1885,9 @@ namespace DiscImageChef.Decoders.SCSI
if (page.NonCacheSegmentSize > 0) if (page.NonCacheSegmentSize > 0)
sb.AppendFormat("\tDrive shall allocate {0} bytes to buffer even when all cached data cannot be evicted", page.NonCacheSegmentSize).AppendLine(); 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(); return sb.ToString();
} }
#endregion Mode Page 0x08: Caching page #endregion Mode Page 0x08: Caching page
@@ -2441,7 +2448,7 @@ namespace DiscImageChef.Decoders.SCSI
/// <summary> /// <summary>
/// Disconnect-reconnect page /// Disconnect-reconnect page
/// Page code 0x01 /// Page code 0x01
/// 12 bytes in SCSI-2, SBC-1 /// 12 bytes in SCSI-2, SBC-1, SBC-2
/// </summary> /// </summary>
public struct ModePage_01 public struct ModePage_01
{ {
@@ -2734,7 +2741,7 @@ namespace DiscImageChef.Decoders.SCSI
/// <summary> /// <summary>
/// Disconnect-reconnect page /// Disconnect-reconnect page
/// Page code 0x07 /// Page code 0x07
/// 12 bytes in SCSI-2, SBC-1 /// 12 bytes in SCSI-2, SBC-1, SBC-2
/// </summary> /// </summary>
public struct ModePage_07 public struct ModePage_07
{ {
@@ -4698,7 +4705,7 @@ namespace DiscImageChef.Decoders.SCSI
/// <summary> /// <summary>
/// XOR control mode page /// XOR control mode page
/// Page code 0x10 /// Page code 0x10
/// 24 bytes in SBC-1 /// 24 bytes in SBC-1, SBC-2
/// </summary> /// </summary>
public struct ModePage_10 public struct ModePage_10
{ {