SCSICmds_INQUIRY_Definitions.h [plain text]
#ifndef _IOKIT_SCSI_CMDS_INQUIRY_H_
#define _IOKIT_SCSI_CMDS_INQUIRY_H_
enum
{
kINQUIRY_VENDOR_IDENTIFICATION_Length = 8,
kINQUIRY_PRODUCT_IDENTIFICATION_Length = 16,
kINQUIRY_PRODUCT_REVISION_LEVEL_Length = 4
};
struct SCSICmd_INQUIRY_StandardData
{
UInt8 PERIPHERAL_DEVICE_TYPE; UInt8 RMB; UInt8 VERSION; UInt8 RESPONSE_DATA_FORMAT; UInt8 ADDITIONAL_LENGTH; UInt8 SCCSReserved; UInt8 flags1; UInt8 flags2; char VENDOR_IDENTIFICATION[kINQUIRY_VENDOR_IDENTIFICATION_Length];
char PRODUCT_INDENTIFICATION[kINQUIRY_PRODUCT_IDENTIFICATION_Length];
char PRODUCT_REVISION_LEVEL[kINQUIRY_PRODUCT_REVISION_LEVEL_Length];
};
typedef struct SCSICmd_INQUIRY_StandardData SCSICmd_INQUIRY_StandardData;
typedef SCSICmd_INQUIRY_StandardData* SCSICmd_INQUIRY_StandardDataPtr;
enum
{
kINQUIRY_PERIPHERAL_QUALIFIER_Connected = 0x00,
kINQUIRY_PERIPHERAL_QUALIFIER_SupportedButNotConnected = 0x20,
kINQUIRY_PERIPHERAL_QUALIFIER_NotSupported = 0x60,
kINQUIRY_PERIPHERAL_QUALIFIER_Mask = 0xE0
};
enum
{
kINQUIRY_PERIPHERAL_TYPE_DirectAccessSBCDevice = 0x00,
kINQUIRY_PERIPHERAL_TYPE_SequentialAccessSSCDevice = 0x01,
kINQUIRY_PERIPHERAL_TYPE_PrinterSSCDevice = 0x02,
kINQUIRY_PERIPHERAL_TYPE_ProcessorSPCDevice = 0x03,
kINQUIRY_PERIPHERAL_TYPE_WriteOnceSBCDevice = 0x04,
kINQUIRY_PERIPHERAL_TYPE_CDROM_MMCDevice = 0x05,
kINQUIRY_PERIPHERAL_TYPE_ScannerSCSI2Device = 0x06,
kINQUIRY_PERIPHERAL_TYPE_OpticalMemorySBCDevice = 0x07,
kINQUIRY_PERIPHERAL_TYPE_MediumChangerSMCDevice = 0x08,
kINQUIRY_PERIPHERAL_TYPE_CommunicationsSSCDevice = 0x09,
kINQUIRY_PERIPHERAL_TYPE_StorageArrayControllerSCC2Device = 0x0C,
kINQUIRY_PERIPHERAL_TYPE_EnclosureServicesSESDevice = 0x0D,
kINQUIRY_PERIPHERAL_TYPE_SimplifiedDirectAccessRBCDevice = 0x0E,
kINQUIRY_PERIPHERAL_TYPE_OpticalCardReaderOCRWDevice = 0x0F,
kINQUIRY_PERIPHERAL_TYPE_UnknownOrNoDeviceType = 0x1F,
kINQUIRY_PERIPHERAL_TYPE_Mask = 0x1F
};
enum
{
kINQUIRY_PERIPHERAL_RMB_MediumFixed = 0x00,
kINQUIRY_PERIPHERAL_RMB_MediumRemovable = 0x80,
kINQUIRY_PERIPHERAL_RMB_BitMask = 0x80
};
enum
{
kINQUIRY_ISO_IEC_VERSION_Mask = 0xC0
};
enum
{
kINQUIRY_ECMA_VERSION_Mask = 0x38
};
enum
{
kINQUIRY_ANSI_VERSION_NoClaimedConformance = 0x00,
kINQUIRY_ANSI_VERSION_SCSI_1_Compliant = 0x01,
kINQUIRY_ANSI_VERSION_SCSI_2_Compliant = 0x02,
kINQUIRY_ANSI_VERSION_SCSI_SPC_Compliant = 0x03,
kINQUIRY_ANSI_VERSION_SCSI_SPC_2_Compliant = 0x04,
kINQUIRY_ANSI_VERSION_Mask = 0x07
};
enum
{
kINQUIRY_Byte7_Offset = 7,
kINQUIRY_Byte7_VS_Bit = 0,
kINQUIRY_Byte7_CMDQUE_Bit = 1,
kINQUIRY_Byte7_TRANDIS_Bit = 2, kINQUIRY_Byte7_LINKED_Bit = 3,
kINQUIRY_Byte7_SYNC_Bit = 4, kINQUIRY_Byte7_WBUS16_Bit = 5, kINQUIRY_Byte7_RELADR_Bit = 7,
kINQUIRY_Byte7_VS_Mask = (1 << kINQUIRY_Byte7_VS_Bit),
kINQUIRY_Byte7_CMDQUE_Mask = (1 << kINQUIRY_Byte7_CMDQUE_Bit),
kINQUIRY_Byte7_TRANDIS_Mask = (1 << kINQUIRY_Byte7_TRANDIS_Bit), kINQUIRY_Byte7_LINKED_Mask = (1 << kINQUIRY_Byte7_LINKED_Bit),
kINQUIRY_Byte7_SYNC_Mask = (1 << kINQUIRY_Byte7_SYNC_Bit), kINQUIRY_Byte7_WBUS16_Mask = (1 << kINQUIRY_Byte7_WBUS16_Bit), kINQUIRY_Byte7_RELADR_Mask = (1 << kINQUIRY_Byte7_RELADR_Bit)
};
enum
{
kINQUIRY_Byte56_Offset = 56,
kINQUIRY_Byte56_IUS_Bit = 0,
kINQUIRY_Byte56_QAS_Bit = 1,
kINQUIRY_Byte56_IUS_Mask = (1 << kINQUIRY_Byte56_IUS_Bit),
kINQUIRY_Byte56_QAS_Mask = (1 << kINQUIRY_Byte56_QAS_Bit),
kINQUIRY_Byte56_CLOCKING_Mask = 0x0C,
kINQUIRY_Byte56_CLOCKING_ONLY_ST = 0x00,
kINQUIRY_Byte56_CLOCKING_ONLY_DT = 0x01,
kINQUIRY_Byte56_CLOCKING_ST_AND_DT = 0x11
};
#define kIOPropertySCSIPeripheralDeviceType "Peripheral Device Type"
#define kIOPropertySCSIVendorIdentification "Vendor Identification"
#define kIOPropertySCSIProductIdentification "Product Identification"
#define kIOPropertySCSIProductRevisionLevel "Product Revision Level"
#endif