// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : Enums.cs // Author(s) : Natalia Portillo // // Component : Common structures for SCSI devices. // // --[ Description ] ---------------------------------------------------------- // // Contains various SCSI enumerations. // // --[ License ] -------------------------------------------------------------- // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, see . // // ---------------------------------------------------------------------------- // Copyright © 2011-2023 Natalia Portillo // ****************************************************************************/ using System.Diagnostics.CodeAnalysis; namespace Aaru.CommonTypes.Structs.Devices.SCSI; /// List of known SCSI peripheral qualifiers public enum PeripheralQualifiers : byte { /// Peripheral qualifier: Device is connected and supported Supported = 0x00, /// Peripheral qualifier: Device is supported but not connected Unconnected = 0x01, /// Peripheral qualifier: Reserved value Reserved = 0x02, /// Peripheral qualifier: Device is connected but unsupported Unsupported = 0x03, /// Peripheral qualifier: Vendor values: 0x04, 0x05, 0x06 and 0x07 VendorMask = 0x04 } /// List of known peripheral device types [SuppressMessage("ReSharper", "InconsistentNaming")] public enum PeripheralDeviceTypes : byte { /// Direct-access device DirectAccess = 0x00, /// Sequential-access device SequentialAccess = 0x01, /// Printer device PrinterDevice = 0x02, /// Processor device ProcessorDevice = 0x03, /// Write-once device WriteOnceDevice = 0x04, /// CD-ROM/DVD/etc device MultiMediaDevice = 0x05, /// Scanner device ScannerDevice = 0x06, /// Optical memory device OpticalDevice = 0x07, /// Medium change device MediumChangerDevice = 0x08, /// Communications device CommsDevice = 0x09, /// Graphics arts pre-press device (defined in ASC IT8) PrePressDevice1 = 0x0A, /// Graphics arts pre-press device (defined in ASC IT8) PrePressDevice2 = 0x0B, /// Array controller device ArrayControllerDevice = 0x0C, /// Enclosure services device EnclosureServiceDevice = 0x0D, /// Simplified direct-access device SimplifiedDevice = 0x0E, /// Optical card reader/writer device OCRWDevice = 0x0F, /// Bridging Expanders BridgingExpander = 0x10, /// Object-based Storage Device ObjectDevice = 0x11, /// Automation/Drive Interface ADCDevice = 0x12, /// Security Manager Device SCSISecurityManagerDevice = 0x13, /// Host managed zoned block device SCSIZonedBlockDevice = 0x14, /// Well known logical unit WellKnownDevice = 0x1E, /// Unknown or no device type UnknownDevice = 0x1F } /// List of known ANSI SCSI standards [SuppressMessage("ReSharper", "InconsistentNaming")] public enum ANSIVersions : byte { /// Device does not claim conformance to any ANSI version ANSINoVersion = 0x00, /// Device complies with ANSI X3.131:1986 ANSI1986Version = 0x01, /// Device complies with ANSI X3.131:1994 ANSI1994Version = 0x02, /// Device complies with ANSI X3.301:1997 ANSI1997Version = 0x03, /// Device complies with ANSI X3.351:2001 ANSI2001Version = 0x04, /// Device complies with ANSI X3.408:2005. ANSI2005Version = 0x05, /// Device complies with SPC-4 ANSI2008Version = 0x06 } /// List of known ECMA SCSI standards [SuppressMessage("ReSharper", "InconsistentNaming")] public enum ECMAVersions : byte { /// Device does not claim conformance to any ECMA version ECMANoVersion = 0x00, /// Device complies with a ECMA-111 standard ECMA111 = 0x01 } /// List of known ISO SCSI standards [SuppressMessage("ReSharper", "InconsistentNaming")] public enum ISOVersions : byte { /// Device does not claim conformance to any ISO/IEC version ISONoVersion = 0x00, /// Device complies with ISO/IEC 9316:1995 ISO1995Version = 0x02 } /// List of known SCSI Parallel Interface clocking types [SuppressMessage("ReSharper", "InconsistentNaming")] public enum SPIClocking : byte { /// Supports only ST ST = 0x00, /// Supports only DT DT = 0x01, /// Reserved value Reserved = 0x02, /// Supports ST and DT STandDT = 0x03 } /// List of known TGPS values [SuppressMessage("ReSharper", "InconsistentNaming")] public enum TGPSValues : byte { /// Asymmetrical access not supported NotSupported = 0x00, /// Only implicit asymmetrical access is supported OnlyImplicit = 0x01, /// Only explicit asymmetrical access is supported OnlyExplicit = 0x02, /// Both implicit and explicit asymmetrical access are supported Both = 0x03 } /// List of known SCSI protocols [SuppressMessage("ReSharper", "InconsistentNaming")] public enum ProtocolIdentifiers : byte { /// Fibre Channel FibreChannel = 0, /// Parallel SCSI SCSI = 1, /// SSA SSA = 2, /// IEEE-1394 Firewire = 3, /// SCSI Remote Direct Memory Access Protocol RDMAP = 4, /// Internet SCSI iSCSI = 5, /// Serial SCSI SAS = 6, /// Automation/Drive Interface Transport Protocol ADT = 7, /// AT Attachment Interface (ATA/ATAPI) ATA = 8, /// USB Attached SCSI UAS = 9, /// SCSI over PCI Express SCSIe = 10, /// PCI Express PCIe = 11, /// No specific protocol NoProtocol = 15 } /// List of known SCSI definitions [SuppressMessage("ReSharper", "InconsistentNaming")] public enum ScsiDefinitions : byte { /// Unknown Current = 0, /// SCSI-1 SCSI1 = 1, /// Unknown CCS = 2, /// SCSI-2 SCSI2 = 3, /// SCSI-3 SCSI3 = 4 } /// List of known SCSI physical interfaces [SuppressMessage("ReSharper", "InconsistentNaming")] public enum PhysicalInterfaces : uint { /// Unspecified physical interface Unspecified = 0, /// SCSI SCSI = 1, /// ATAPI ATAPI = 2, /// IEEE-1394/1995 IEEE1394 = 3, /// IEEE-1394A IEEE1394A = 4, /// Fibre Channel FC = 5, /// IEEE-1394B IEEE1394B = 6, /// Serial ATAPI SerialATAPI = 7, /// USB USB = 8, /// Vendor unique Vendor = 0xFFFF }