Added feature structures from MMC-1.

This commit is contained in:
2015-11-01 02:16:29 +00:00
parent b3361d5554
commit dac9e415d4
5 changed files with 1182 additions and 394 deletions

View File

@@ -1,3 +1,9 @@
2015-11-01 Natalia Portillo <claunia@claunia.com>
* SCSI/MMC/Features.cs:
* DiscImageChef.Decoders.csproj:
Added feature structures from MMC-1.
2015-10-31 Natalia Portillo <claunia@claunia.com>
* SCSI/Modes.cs:

View File

@@ -80,6 +80,7 @@
<Compile Include="ATA\Identify.cs" />
<Compile Include="SCSI\EVPD.cs" />
<Compile Include="SCSI\Modes.cs" />
<Compile Include="SCSI\MMC\Features.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,8 @@
2015-11-01 Natalia Portillo <claunia@claunia.com>
* Enums.cs:
Added feature structures from MMC-1.
2015-11-01 Natalia Portillo <claunia@claunia.com>
* Enums.cs:

View File

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