From 2a9688a99ffc3c49a5882979ed92fd8949e53a96 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 1 Nov 2015 03:30:53 +0000 Subject: [PATCH] Added feature structures from MMC-4. --- ChangeLog | 5 ++ SCSI/MMC/Features.cs | 157 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 161 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2c37cf61b..425abc72b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-11-01 Natalia Portillo + + * SCSI/MMC/Features.cs: + Added feature structures from MMC-4. + 2015-11-01 Natalia Portillo * SCSI/MMC/Features.cs: diff --git a/SCSI/MMC/Features.cs b/SCSI/MMC/Features.cs index 1579f7a2b..f3fdd12e5 100644 --- a/SCSI/MMC/Features.cs +++ b/SCSI/MMC/Features.cs @@ -529,6 +529,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Currently in-use physical interface standard /// public PhysicalInterfaces PhysicalInterfaceStandard; + /// + /// Supports Device Busy Event + /// + public bool DBE; } /// @@ -549,6 +553,11 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Supports Operational Change Request/Nofitication Class Events + /// of GET EVENT/STATUS NOTIFICATION + /// + public bool OCEvent; + /// /// Supports asynchronous GET EVENT/STATUS NOTIFICATION /// public bool Async; @@ -607,6 +616,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Supports reading/writing Write Inhibit DCB on DVD+RW media. + /// + public bool WDCB; + /// /// Supports PWP status /// public bool SPWP; @@ -684,6 +697,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Supports DAP bit in READ CD and READ CD MSF + /// + public bool DAP; + /// /// Supports C2 Error Pointers /// public bool C2; @@ -817,7 +834,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC } /// - /// Defect Management Feature (0024h) + /// Hardware Defect Management Feature (0024h) /// public struct Feature_0024 { @@ -931,6 +948,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC public bool Write; } + /// + /// Enhanced Defect Reporting Feature (0029h) + /// + public struct Feature_0029 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Supports DRT-DM + /// + public bool DRTDM; + /// + /// Maximum number of DBI cache zones device can handle separately + /// + public byte DBICacheZones; + /// + /// Number of entries in worst case to case DBI overflow + /// + public ushort Entries; + } + /// /// DVD+RW Feature (002Ah) /// @@ -953,11 +1001,38 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Write; /// + /// FORMAT UNIT supports quick start formatting + /// + public bool QuickStart; + /// /// Drive only supports read compatibility stop /// public bool CloseOnly; } + /// + /// DVD+R Feature (002Bh) + /// + public struct Feature_002B + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Can write DVD+R + /// + public bool Write; + } + /// /// Rigid Restricted Overwrite Feature (002Ch) /// @@ -1191,6 +1266,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC public bool Blank; } + /// + /// CD-RW Media Write Support Feature (0037h) + /// + public struct Feature_0037 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Bitmask of supported CD-RW media sub-types + /// + public byte SubtypeSupport; + } + /// /// Power Management Feature (0100h) /// @@ -1293,6 +1391,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Separate Volume /// public bool SV; + /// + /// Number of volume levels + /// + public ushort VolumeLevels; } /// @@ -1331,6 +1433,14 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Feature is currently in use /// public bool Current; + /// + /// Supports G3Enable bit and Group3 Timeout field in Mode Page 1Dh + /// + public bool Group3; + /// + /// Indicates a unit of block length, in sectors, corresponding to increase a unit of Group 3 time unit + /// + public ushort UnitLength; } /// @@ -1418,6 +1528,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC public string Serial; } + /// + /// Media Serial Number Feature (0109h) + /// + public struct Feature_0109 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + } + /// /// Disc Control Blocks Feature (010Ah) /// @@ -1461,6 +1590,32 @@ namespace DiscImageChef.Decoders.SCSI.MMC public byte CPRMVersion; } + /// + /// Firmware Information Feature (010Ch) + /// + public struct Feature_010C + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + public ushort Century; + public ushort Year; + public ushort Month; + public ushort Day; + public ushort Hour; + public ushort Minute; + public ushort Second; + } + public static class Features { }