From b3361d55541c5efea87531e3073ba0759061550b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 1 Nov 2015 00:32:16 +0000 Subject: [PATCH] Added MMC features and profiles enumerations. --- DiscImageChef.Devices/ChangeLog | 5 + DiscImageChef.Devices/Enums.cs | 394 ++++++++++++++++++++++++++++++++ 2 files changed, 399 insertions(+) diff --git a/DiscImageChef.Devices/ChangeLog b/DiscImageChef.Devices/ChangeLog index e7db36f9..1616d0a5 100644 --- a/DiscImageChef.Devices/ChangeLog +++ b/DiscImageChef.Devices/ChangeLog @@ -1,3 +1,8 @@ +2015-11-01 Natalia Portillo + + * Enums.cs: + Added MMC features and profiles enumerations. + 2015-10-31 Natalia Portillo * Device/ScsiCommands.cs: diff --git a/DiscImageChef.Devices/Enums.cs b/DiscImageChef.Devices/Enums.cs index 12f1594a..5b0daed0 100644 --- a/DiscImageChef.Devices/Enums.cs +++ b/DiscImageChef.Devices/Enums.cs @@ -2743,5 +2743,399 @@ namespace DiscImageChef.Devices [Obsolete] PreventAll = 0x03 } + + /// + /// MMC Feature enumeration + /// + public enum ScsiMmcFeatureNumber : ushort + { + /// + /// Lists all profiles + /// + ProfileList = 0x0000, + /// + /// Mandatory behaviour + /// + Core = 0x0001, + /// + /// Operational changes + /// + Morphing = 0x0002, + /// + /// Removable medium + /// + Removable = 0x0003, + /// + /// Ability to control write protection status + /// + WriteProtect = 0x0004, + /// + /// Ability to read sectors with random addressing + /// + RandomRead = 0x0010, + /// + /// Reads on OSTA Multi-Read + /// + MultiRead = 0x001D, + /// + /// Able to read CD structures + /// + CDRead = 0x001E, + /// + /// Able to read DVD structures + /// + DVDRead = 0x001F, + /// + /// Ability to write sectors with random addressing + /// + RandomWrite = 0x0020, + /// + /// Ability to sequentially write + /// + IncrementalWrite = 0x0021, + /// + /// Support for media that requires erase before write + /// + SectorErasable = 0x0022, + /// + /// Supports formatting media + /// + Formattable = 0x0023, + /// + /// Ability to provide defect-free space + /// + HardwareDefectMgmt = 0x0024, + /// + /// Supports for write-once media in random order + /// + WriteOnce = 0x0025, + /// + /// Supports for media that shall be written from blocking boundaries + /// + RestrictedOverwrite = 0x0026, + /// + /// Supports high speed CD-RW + /// + CDRWCAV = 0x0027, + /// + /// Read and optionally write MRW + /// + MRW = 0x0028, + /// + /// Ability to control RECOVERED ERROR reporting + /// + EnDefectReport = 0x0029, + /// + /// Ability to recognize, read and optionally write DVD+RW + /// + DVDRWPlus = 0x002A, + /// + /// Ability to read DVD+R + /// + DVDRPlus = 0x002B, + /// + /// Ability to write CD in Track-at-Once + /// + CDTAO = 0x002D, + /// + /// Ability to write CD in Session-at-Once or RAW + /// + CDMastering = 0x002E, + /// + /// Ability to write DVD structures + /// + DVDRWrite = 0x002F, + /// + /// Ability to read DDCD + /// + DDCD = 0x0030, + /// + /// Ability to write DDCD-R + /// + DDCDR = 0x0031, + /// + /// Ability to write DDCD-RW + /// + DDCDRW = 0x0032, + /// + /// Ability to record in layer jump mode + /// + LayerJump = 0x0033, + /// + /// Ability to perform Layer Jump recording on Rigid Restricted Overwrite + /// + LJRigid = 0x0034, + /// + /// Ability to stop the long immediate operation + /// + StopLong = 0x0035, + /// + /// Ability to report CD-RW media sub-types supported for write + /// + CDRWMediaWrite = 0x0037, + /// + /// Logical block overwrite service on BD-R formatted as SRM+POW + /// + BDRPOW = 0x0038, + /// + /// Ability to read DVD+RW DL + /// + DVDRWDLPlus = 0x003A, + /// + /// Ability to read DVD+R DL + /// + DVDRDLPlus = 0x003B, + /// + /// Ability to read BD discs + /// + BDRead = 0x0040, + /// + /// Ability to write BD discs + /// + BDWrite = 0x0041, + /// + /// Timely, Safe Recording + /// + TSR = 0x0042, + /// + /// Ability to read HD DVD + /// + HDDVDRead = 0x0050, + /// + /// Ability to write HD DVD + /// + HDDVDWrite = 0x0051, + /// + /// Ability to write HD DVD-RW fragmented + /// + HDDVDRWFragment = 0x0052, + /// + /// Supports some Hybrid Discs + /// + Hybrid = 0x0080, + /// + /// Host and device directed power management + /// + PowerMgmt = 0x0100, + /// + /// Supports S.M.A.R.T. + /// + SMART = 0x0101, + /// + /// Single machanism multiple disc changer + /// + Changer = 0x0102, + /// + /// Ability to play CD audio to an analogue output + /// + CDAudioExt = 0x0103, + /// + /// Ability to accept new microcode + /// + MicrocodeUpgrade = 0x0104, + /// + /// Ability to respond to all commands within a specific time + /// + Timeout = 0x0105, + /// + /// Supports DVD CSS/CPPM + /// + CSS = 0x0106, + /// + /// Ability to read and write using host requested performance parameters + /// + RTS = 0x0107, + /// + /// Drive has a unique identifier + /// + DriveSerial = 0x0108, + /// + /// Ability to return unique Media Serial Number + /// + MediaSerial = 0x0109, + /// + /// Ability to read and/or write DCBs + /// + DCBs = 0x010A, + /// + /// Supports DVD CPRM + /// + CPRM = 0x010B, + /// + /// Firmware creation date report + /// + FirmwareInfo = 0x010C, + /// + /// Ability to decode and optionally encode AACS + /// + AACS = 0x010D, + /// + /// Ability to perform DVD CSS managed recording + /// + CSSManagedRec = 0x010E, + /// + /// Ability to decode and optionally encode VCPS + /// + VCPS = 0x0110, + /// + /// Supports SecurDisc + /// + SecurDisc = 0x0113, + /// + /// TCG Optical Security Subsystem Class + /// + OSSC = 0x0142 + } + + /// + /// MMC Profile enumeration + /// + public enum ScsiMmcProfileNumber : ushort + { + /// + /// Not to use + /// + Reserved = 0x0000, + /// + /// Non-removable disk profile + /// + NonRemovable = 0x0001, + /// + /// Rewritable with removable media + /// + Removable = 0x0002, + /// + /// Magneto-Optical with sector erase + /// + MOErasable = 0x0003, + /// + /// Optical write once + /// + OpticalWORM = 0x0004, + /// + /// Advance Storage - Magneto-Optical + /// + ASMO = 0x0005, + /// + /// Read-only Compact Disc + /// + CDROM = 0x0008, + /// + /// Write-once Compact Disc + /// + CDR = 0x0009, + /// + /// Re-writable Compact Disc + /// + CDRW = 0x000A, + /// + /// Read-only DVD + /// + DVDROM = 0x0010, + /// + /// Write-once sequentially recorded DVD-R + /// + DVDRSeq = 0x0011, + /// + /// DVD-RAM + /// + DVDRAM = 0x0012, + /// + /// Restricted overwrite DVD-RW + /// + DVDRWRes = 0x0013, + /// + /// Sequential recording DVD-RW + /// + DVDRWSeq = 0x0014, + /// + /// Sequential recording DVD-R DL + /// + DVDRDLSeq = 0x0015, + /// + /// Layer jump recording DVD-R DL + /// + DVDRDLJump = 0x0016, + /// + /// DVD+RW DL + /// + DVDRWDL = 0x0017, + /// + /// DVD-Download + /// + DVDDownload = 0x0018, + /// + /// DVD+RW + /// + DVDRWPlus = 0x001A, + /// + /// DVD+R + /// + DVDRPlus = 0x001B, + /// + /// DDCD-ROM + /// + DDCDROM = 0x0020, + /// + /// DDCD-R + /// + DDCDR = 0x0021, + /// + /// DDCD-RW + /// + DDCDRW = 0x0022, + /// + /// DVD+RW DL + /// + DVDRWDLPlus = 0x002A, + /// + /// DVD+R DL + /// + DVDRDLPlus = 0x002B, + /// + /// BD-ROM + /// + BDROM = 0x0040, + /// + /// BD-R SRM + /// + BDRSeq = 0x0041, + /// + /// BD-R RRM + /// + BDRRdm = 0x0042, + /// + /// BD-RE + /// + BDRE = 0x0043, + /// + /// HD DVD-ROM + /// + HDDVDROM = 0x0050, + /// + /// HD DVD-R + /// + HDDVDR = 0x0051, + /// + /// HD DVD-RAM + /// + HDDVDRAM = 0x0052, + /// + /// HD DVD-RW + /// + HDDVDRW = 0x0053, + /// + /// HD DVD-R DL + /// + HDDVDRDL = 0x0058, + /// + /// HD DVD-RW DL + /// + HDDVDRWDL = 0x005A, + /// + /// Drive does not conform to any profiles + /// + Unconforming = 0xFFFF + } }