From fc835c8bc3a303ac89e3579121bdcf2baa0e90cd Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 1 Nov 2015 04:20:45 +0000 Subject: [PATCH] Added structures from MMC-6. --- DiscImageChef.Decoders/ChangeLog | 5 + DiscImageChef.Decoders/SCSI/MMC/Features.cs | 217 ++++++++++++++++---- 2 files changed, 182 insertions(+), 40 deletions(-) diff --git a/DiscImageChef.Decoders/ChangeLog b/DiscImageChef.Decoders/ChangeLog index 8254e5e19..e004d5fe7 100644 --- a/DiscImageChef.Decoders/ChangeLog +++ b/DiscImageChef.Decoders/ChangeLog @@ -1,3 +1,8 @@ +2015-11-01 Natalia Portillo + + * SCSI/MMC/Features.cs: + Added structures from MMC-6. + 2015-11-01 Natalia Portillo * SCSI/MMC/Features.cs: diff --git a/DiscImageChef.Decoders/SCSI/MMC/Features.cs b/DiscImageChef.Decoders/SCSI/MMC/Features.cs index 5bec37d81..fa6f40738 100644 --- a/DiscImageChef.Decoders/SCSI/MMC/Features.cs +++ b/DiscImageChef.Decoders/SCSI/MMC/Features.cs @@ -597,6 +597,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool PreventJumper; /// + /// Reports Device Busy Class events during medium loading/unloading + /// + public bool DBML; + /// /// Medium is currently locked /// public bool Lock; @@ -620,6 +624,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Drive can read/write Disc Write Protect PAC on BD-R/-RE media + /// + public bool DWP; + /// /// Supports reading/writing Write Inhibit DCB on DVD+RW media. /// public bool WDCB; @@ -736,6 +744,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool MULTI110; /// + /// Supports reading all DVD-RW DL + /// + public bool DualRW; + /// /// Supports reading all DVD-R DL including remapping /// public bool DualR; @@ -868,6 +880,10 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Cert; /// + /// Supports FORMAT type 18h + /// + public bool FRF; + /// /// Supports FORMAT type 00h/32h sub-type 10b on BD-R /// public bool RRM; @@ -1338,6 +1354,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC public byte[] LinkSizes; } + /// + /// Stop Long Operation Feature (0035h) + /// + public struct Feature_0035 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + } + /// /// CD-RW Media Write Support Feature (0037h) /// @@ -1459,30 +1494,38 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Feature is currently in use /// public bool Current; - public byte Class0BDREMSB; - public byte Class0BDRELSB; - public byte Class1BDREMSB; - public byte Class1BDRELSB; - public byte Class2BDREMSB; - public byte Class2BDRELSB; - public byte Class3BDREMSB; - public byte Class3BDRELSB; - public byte Class0BDRMSB; - public byte Class0BDRLSB; - public byte Class1BDRMSB; - public byte Class1BDRLSB; - public byte Class2BDRMSB; - public byte Class2BDRLSB; - public byte Class3BDRMSB; - public byte Class3BDRLSB; - public byte Class0BDROMMSB; - public byte Class0BDROMLSB; - public byte Class1BDROMMSB; - public byte Class1BDROMLSB; - public byte Class2BDROMMSB; - public byte Class2BDROMLSB; - public byte Class3BDROMMSB; - public byte Class3BDROMLSB; + /// + /// Can read BCA + /// + public bool BCA; + /// + /// Supports reading BD-RE Ver.2 + /// + public bool RE2; + /// + /// Supports reading BD-RE Ver.1 + /// + public bool RE1; + /// + /// Obsolete + /// + public bool OldRE; + /// + /// Supports reading BD-R Ver.1 + /// + public bool R; + /// + /// Obsolete + /// + public bool OldR; + /// + /// Supports reading BD-ROM Ver.1 + /// + public bool ROM; + /// + /// Obsolete + /// + public bool OldROM; } /// @@ -1506,22 +1549,26 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// Supports verify not required /// public bool SVNR; - public byte Class0BDREMSB; - public byte Class0BDRELSB; - public byte Class1BDREMSB; - public byte Class1BDRELSB; - public byte Class2BDREMSB; - public byte Class2BDRELSB; - public byte Class3BDREMSB; - public byte Class3BDRELSB; - public byte Class0BDRMSB; - public byte Class0BDRLSB; - public byte Class1BDRMSB; - public byte Class1BDRLSB; - public byte Class2BDRMSB; - public byte Class2BDRLSB; - public byte Class3BDRMSB; - public byte Class3BDRLSB; + /// + /// Supports writing BD-RE Ver.2 + /// + public bool RE2; + /// + /// Supports writing BD-RE Ver.1 + /// + public bool RE1; + /// + /// Obsolete + /// + public bool OldRE; + /// + /// Supports writing BD-R Ver.1 + /// + public bool R; + /// + /// Obsolete + /// + public bool OldR; } /// @@ -1970,6 +2017,22 @@ namespace DiscImageChef.Decoders.SCSI.MMC /// public bool Current; /// + /// Drive supports reading drive certificate + /// + public bool RDC; + /// + /// Drive can read media key block of CPRM + /// + public bool RMC; + /// + /// Drive can write bus encrypted blocks + /// + public bool WBE; + /// + /// Drive supports bus encryption + /// + public bool BCE; + /// /// Drive supports generating the binding nonce /// public bool BNG; @@ -1987,6 +2050,80 @@ namespace DiscImageChef.Decoders.SCSI.MMC public byte AACSVersion; } + /// + /// DVD CSS Managed Recording Feature (010Eh) + /// + public struct Feature_010E + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Maximum number of Scramble Extent information entries in a single SEND DISC STRUCTURE + /// + public byte MaxScrambleExtent; + } + + /// + /// SecurDisc Feature (0113h) + /// + public struct Feature_0113 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + } + + /// + /// OSSC Feature (0142h) + /// + public struct Feature_0142 + { + /// + /// Feature version + /// + public byte Version; + /// + /// Feature is persistent + /// + public bool Persistent; + /// + /// Feature is currently in use + /// + public bool Current; + /// + /// Supports PSA updates on write-once media + /// + public bool PSAU; + /// + /// Supports linked OSPBs + /// + public bool LOSPB; + /// + /// Restricted to recording only OSSC disc format + /// + public bool ME; + public ushort[] Profiles; + } + /// /// VCPS Feature (0110h) ///