diff --git a/ChangeLog b/ChangeLog index c04454b..2c37cf6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-11-01 Natalia Portillo + + * SCSI/MMC/Features.cs: + Added features structures from MMC-3. + 2015-11-01 Natalia Portillo * SCSI/MMC/Features.cs: diff --git a/SCSI/MMC/Features.cs b/SCSI/MMC/Features.cs index a000119..1579f7a 100644 --- a/SCSI/MMC/Features.cs +++ b/SCSI/MMC/Features.cs @@ -589,6 +589,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC public bool Lock; } + /// + /// Write Protect Feature (0004h) + /// + public struct Feature_0004 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Supports PWP status + /// + public bool SPWP; + /// + /// Supports SWPP bit of mode page 1Dh + /// + public bool SSWPP; + } + /// /// Random Readable Feature (0010h) /// @@ -667,7 +694,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC } /// - /// DVD Feature (001Fh) + /// DVD Read Feature (001Fh) /// public struct Feature_001F { @@ -742,6 +769,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public ushort DataTypeSupported; /// + /// Zero loss linking + /// + public bool BUF; + /// /// Logical blocks per link /// public byte[] LinkSizes; @@ -802,6 +833,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Feature is currently in use /// public bool Current; + /// + /// Supports READ DISC STRUCTURE with Format Code 0Ah (Spare Area Information) + /// + public bool SSA; } /// @@ -854,6 +889,110 @@ namespace DiscImageChef.Decoders.SCSI.MMC public bool Current; } + /// + /// CD-RW CAV Write Feature (0027h) + /// + public struct Feature_0027 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + } + + /// + /// MRW Feature (0028h) + /// + public struct Feature_0028 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Can format and write to MRW discs + /// + public bool Write; + } + + /// + /// DVD+RW Feature (002Ah) + /// + public struct Feature_002A + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Can format DVD+RW discs + /// + public bool Write; + /// + /// Drive only supports read compatibility stop + /// + public bool CloseOnly; + } + + /// + /// Rigid Restricted Overwrite Feature (002Ch) + /// + public struct Feature_002C + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Can generate Defect Status Data during formatting + /// + public bool DSDG; + /// + /// Can read Defect Status Data recorded on medium + /// + public bool DSDR; + /// + /// Supports writing on an intermediate state Session and quick formatting + /// + public bool Intermediate; + /// + /// Supports BLANK command types 00h and 01h + /// + public bool Blank; + } + /// /// CD Track at Once Feature (002Dh) /// @@ -872,6 +1011,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Supports zero loss linking + /// + public bool BUF; + /// + /// Supports writing R-W subchannels in raw mode + /// + public bool RWRaw; + /// + /// Supports writing R-W subchannels in packed mode + /// + public bool RWPack; + /// /// Can perform test writes /// public bool TestWrite; @@ -907,6 +1058,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Supports zero loss linking + /// + public bool BUF; + /// /// Can write in Session at Once /// public bool SAO; @@ -937,7 +1092,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC } /// - /// DVD-R Write Feature (002Fh) + /// DVD-R/-RW Write Feature (002Fh) /// public struct Feature_002F { @@ -961,6 +1116,79 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Test write /// public bool TestWrite; + /// + /// Can write and erase DVD-RW + /// + public bool DVDRW; + } + + /// + /// Double Density CD Read Feature (0030h) + /// + public struct Feature_0030 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + } + + /// + /// Double Density CD-R Write Feature (0031h) + /// + public struct Feature_0031 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Test write + /// + public bool TestWrite; + } + + /// + /// Double Density CD-RW Write Feature (0032h) + /// + public struct Feature_0032 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Supports quick formatting + /// + public bool Intermediate; + /// + /// Supports BLANK command + /// + public bool Blank; } /// @@ -982,6 +1210,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC public bool Current; } + /// + /// S.M.A.R.T. Feature (0101h) + /// + public struct Feature_0101 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Mode Page 1Ch is present + /// + public bool PP; + } + /// /// Embedded Changer Feature (0102h) /// @@ -1007,6 +1258,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Supports Disc Present /// public bool SDP; + /// + /// Number of slots - 1 + /// + public byte HighestSlotNumber; } /// @@ -1118,6 +1373,26 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Feature is currently in use /// public bool Current; + /// + /// Supports READ BUFFER CAPACITY with block bit set + /// + public bool RBCB; + /// + /// Supports SET CD SPEED + /// + public bool SCS; + /// + /// Has Mode Page 2Ah with Speed Performance Descriptors + /// + public bool MP2A; + /// + /// Supports type 03h of GET PERFORMANCE + /// + public bool WSPD; + /// + /// Supports stream recording + /// + public bool SW; } /// @@ -1163,6 +1438,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC public uint[] DCBs; } + /// + /// DVD CPRM Feature (010Bh) + /// + public struct Feature_010B + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// CPRM version + /// + public byte CPRMVersion; + } + public static class Features { }