#include <IOKit/scsi/SCSICmds_INQUIRY_Definitions.h>

IOKit/scsi/SCSICmds_INQUIRY_Definitions.h Kernel.framework

-----------------------------------------------------------------------------
includes: TargetConditionals.h, Kernel/stdint.h, IOKit/IOTypes.h
21 enums · 21 typedefs · 20 structs · 20 macros

enum(anonymous)

@enum Payload sizes @discussion Definitions for sizes related to the INQUIRY data. @constant kINQUIRY_StandardDataHeaderSize INQUIRY data header size. @constant kINQUIRY_MaximumDataSize Maximum size for INQUIRY data.
underlying type unsigned int
kINQUIRY_StandardDataHeaderSize5
kINQUIRY_MaximumDataSize255

enum(anonymous)

@enum INQUIRY field sizes @discussion Sizes for some of the inquiry data fields. @constant kINQUIRY_VENDOR_IDENTIFICATION_Length Size of VENDOR_IDENTIFICATION field. @constant kINQUIRY_PRODUCT_IDENTIFICATION_Length Size of PRODUCT_IDENTIFICATION field. @constant kINQUIRY_PRODUCT_REVISION_LEVEL_Length Size of PRODUCT_REVISION_LEVEL field.
underlying type unsigned int
kINQUIRY_VENDOR_IDENTIFICATION_Length8
kINQUIRY_PRODUCT_IDENTIFICATION_Length16
kINQUIRY_PRODUCT_REVISION_LEVEL_Length4

structSCSICmd_INQUIRY_StandardData

@struct SCSICmd_INQUIRY_StandardData @discussion This structure defines the format of the required standard data that is returned for the INQUIRY command. This is the data that is required to be returned from all devices.
size 36, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8RMB7 = removable
UInt8VERSION7/6 = ISO/IEC, 5-3 = ECMA, 2-0 = ANSI.
UInt8RESPONSE_DATA_FORMAT7 = AERC, 6 = Obsolete, 5 = NormACA, 4 = HiSup 3-0 = Response data format. (SPC-3 obsoletes AERC)
UInt8ADDITIONAL_LENGTHIf ANSI Version = 0, this is ATAPI and bits 7-4 = ATAPI version. Number of additional bytes available in inquiry data
UInt8SCCSReservedSCC-2 device flag and reserved fields (SPC-3 adds PROTECT 3PC TPGS, and ACC)
UInt8flags1First byte of support flags (See SPC-3 section 6.4.2)
UInt8flags2Second byte of support flags (Byte 7) (See SPC-3 section 6.4.2)
char[8]VENDOR_IDENTIFICATION
char[16]PRODUCT_IDENTIFICATION
char[4]PRODUCT_REVISION_LEVEL

typedefSCSICmd_INQUIRY_StandardData

typedef struct SCSICmd_INQUIRY_StandardData SCSICmd_INQUIRY_StandardData;

typedefSCSICmd_INQUIRY_StandardDataPtr

typedef SCSICmd_INQUIRY_StandardData * SCSICmd_INQUIRY_StandardDataPtr

structSCSICmd_INQUIRY_StandardDataAll

@struct SCSICmd_INQUIRY_StandardDataAll @discussion This structure defines the all of the fields that can be returned in repsonse to the INQUIRy request for the standard data. There is no requirement as to how much of the additional data must be returned by a device.
size 256, align 2
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8RMB7 = removable
UInt8VERSION7/6 = ISO/IEC, 5-3 = ECMA, 2-0 = ANSI.
UInt8RESPONSE_DATA_FORMAT7 = AERC, 6 = Obsolete, 5 = NormACA, 4 = HiSup 3-0 = Response data format.
UInt8ADDITIONAL_LENGTHIf ANSI Version = 0, this is ATAPI and bits 7-4 = ATAPI version. Number of additional bytes available in inquiry data
UInt8SCCSReservedSCC-2 device flag and reserved fields
UInt8flags1First byte of support flags (Byte 6)
UInt8flags2Second byte of support flags (Byte 7)
char[8]VENDOR_IDENTIFICATION
char[16]PRODUCT_IDENTIFICATION
char[4]PRODUCT_REVISION_LEVEL
UInt8[20]VendorSpecific1Following is the optional data that may be returned by a device.
UInt8flags3Third byte of support flags, mainly SPI-3 (Byte 56)
UInt8Reserved1
UInt16[8]VERSION_DESCRIPTOR
UInt8[22]Reserved2
UInt8[160]VendorSpecific2

typedefSCSICmd_INQUIRY_StandardDataAll

typedef struct SCSICmd_INQUIRY_StandardDataAll SCSICmd_INQUIRY_StandardDataAll;

enum(anonymous)

@enum Peripheral Qualifier @discussion Inquiry Peripheral Qualifier definitions @constant kINQUIRY_PERIPHERAL_QUALIFIER_Connected Peripheral Device is connected. @constant kINQUIRY_PERIPHERAL_QUALIFIER_SupportedButNotConnected Peripheral Device is supported, but not connected. @constant kINQUIRY_PERIPHERAL_QUALIFIER_NotSupported Peripheral Device is not supported. @constant kINQUIRY_PERIPHERAL_QUALIFIER_Mask Mask to use for PERIPHERAL_DEVICE_TYPE field.
underlying type unsigned int
kINQUIRY_PERIPHERAL_QUALIFIER_Connected0
kINQUIRY_PERIPHERAL_QUALIFIER_SupportedButNotConnected32
kINQUIRY_PERIPHERAL_QUALIFIER_NotSupported96
kINQUIRY_PERIPHERAL_QUALIFIER_Mask224

enum(anonymous)

@enum Peripheral Device types @discussion Inquiry Peripheral Device type definitions @constant kINQUIRY_PERIPHERAL_TYPE_DirectAccessSBCDevice SBC Device. @constant kINQUIRY_PERIPHERAL_TYPE_SequentialAccessSSCDevice Sequential Access (Tape) SSC Device. @constant kINQUIRY_PERIPHERAL_TYPE_PrinterSSCDevice SSC Device. @constant kINQUIRY_PERIPHERAL_TYPE_ProcessorSPCDevice SPC Device. @constant kINQUIRY_PERIPHERAL_TYPE_WriteOnceSBCDevice SBC Device. @constant kINQUIRY_PERIPHERAL_TYPE_CDROM_MMCDevice MMC Device. @constant kINQUIRY_PERIPHERAL_TYPE_ScannerSCSI2Device SCSI2 Device. @constant kINQUIRY_PERIPHERAL_TYPE_OpticalMemorySBCDevice SBC Device. @constant kINQUIRY_PERIPHERAL_TYPE_MediumChangerSMCDevice SMC Device. @constant kINQUIRY_PERIPHERAL_TYPE_CommunicationsSSCDevice Comms SSC Device. @constant kINQUIRY_PERIPHERAL_TYPE_StorageArrayControllerSCC2Device SCC2 Device. @constant kINQUIRY_PERIPHERAL_TYPE_EnclosureServicesSESDevice SES Device. @constant kINQUIRY_PERIPHERAL_TYPE_SimplifiedDirectAccessRBCDevice RBC Device. @constant kINQUIRY_PERIPHERAL_TYPE_OpticalCardReaderOCRWDevice OCRW Device. @constant kINQUIRY_PERIPHERAL_TYPE_ObjectBasedStorageDevice OSD device. @constant kINQUIRY_PERIPHERAL_TYPE_AutomationDriveInterface Automation Drive Interface device. @constant kINQUIRY_PERIPHERAL_TYPE_WellKnownLogicalUnit Well known logical unit. @constant kINQUIRY_PERIPHERAL_TYPE_UnknownOrNoDeviceType Unknown or no device. @constant kINQUIRY_PERIPHERAL_TYPE_Mask Mask to use for PERIPHERAL_DEVICE_TYPE field.
underlying type unsigned int
kINQUIRY_PERIPHERAL_TYPE_DirectAccessSBCDevice0
kINQUIRY_PERIPHERAL_TYPE_SequentialAccessSSCDevice1
kINQUIRY_PERIPHERAL_TYPE_PrinterSSCDevice2
kINQUIRY_PERIPHERAL_TYPE_ProcessorSPCDevice3
kINQUIRY_PERIPHERAL_TYPE_WriteOnceSBCDevice4
kINQUIRY_PERIPHERAL_TYPE_CDROM_MMCDevice5
kINQUIRY_PERIPHERAL_TYPE_ScannerSCSI2Device6
kINQUIRY_PERIPHERAL_TYPE_OpticalMemorySBCDevice7
kINQUIRY_PERIPHERAL_TYPE_MediumChangerSMCDevice8
kINQUIRY_PERIPHERAL_TYPE_CommunicationsSSCDevice9
kINQUIRY_PERIPHERAL_TYPE_StorageArrayControllerSCC2Device120x0A - 0x0B ASC IT8 Graphic Arts Prepress Devices
kINQUIRY_PERIPHERAL_TYPE_EnclosureServicesSESDevice13
kINQUIRY_PERIPHERAL_TYPE_SimplifiedDirectAccessRBCDevice14
kINQUIRY_PERIPHERAL_TYPE_OpticalCardReaderOCRWDevice15
kINQUIRY_PERIPHERAL_TYPE_ObjectBasedStorageDevice170x10 - 0x1E Reserved Device Types
kINQUIRY_PERIPHERAL_TYPE_AutomationDriveInterface18
kINQUIRY_PERIPHERAL_TYPE_WellKnownLogicalUnit30
kINQUIRY_PERIPHERAL_TYPE_UnknownOrNoDeviceType31
kINQUIRY_PERIPHERAL_TYPE_Mask31

enum(anonymous)

@enum Removable Bit field definitions @discussion Inquiry Removable Bit field definitions @constant kINQUIRY_PERIPHERAL_RMB_MediumFixed Medium type is fixed disk. @constant kINQUIRY_PERIPHERAL_RMB_MediumRemovable Medium type is removable disk. @constant kINQUIRY_PERIPHERAL_RMB_BitMask Mask to use for RMB field.
underlying type unsigned int
kINQUIRY_PERIPHERAL_RMB_MediumFixed0
kINQUIRY_PERIPHERAL_RMB_MediumRemovable128
kINQUIRY_PERIPHERAL_RMB_BitMask128

enum(anonymous)

@enum Version field definitions @discussion Definitions for bits/masks in the INQUIRY Version field. @constant kINQUIRY_ISO_IEC_VERSION_Mask Mask for valid bits for ISO/IEC Version. @constant kINQUIRY_ECMA_VERSION_Mask Mask for valid bits for ECMA Version. @constant kINQUIRY_ANSI_VERSION_NoClaimedConformance No ANSI conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_SCSI_1_Compliant SCSI-1 conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_SCSI_2_Compliant SCSI-2 conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_SCSI_SPC_Compliant SPC conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_SCSI_SPC_2_Compliant SPC-2 conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_SCSI_SPC_3_Compliant SPC-3 conformance claimed by the device server. @constant kINQUIRY_ANSI_VERSION_Mask Mask for valid bits for ANSI Version.
underlying type unsigned int
kINQUIRY_ISO_IEC_VERSION_Mask192
kINQUIRY_ECMA_VERSION_Mask56
kINQUIRY_ANSI_VERSION_NoClaimedConformance0
kINQUIRY_ANSI_VERSION_SCSI_1_Compliant1
kINQUIRY_ANSI_VERSION_SCSI_2_Compliant2
kINQUIRY_ANSI_VERSION_SCSI_SPC_Compliant3
kINQUIRY_ANSI_VERSION_SCSI_SPC_2_Compliant4
kINQUIRY_ANSI_VERSION_SCSI_SPC_3_Compliant5
kINQUIRY_ANSI_VERSION_Mask7

enum(anonymous)

@enum Response Data Format field definitions @discussion Definitions for bits/masks in the INQUIRY RESPONSE_DATA_FORMAT field. @constant kINQUIRY_Byte3_HISUP_Bit HISUP bit definition. @constant kINQUIRY_Byte3_NORMACA_Bit NORMACA bit definition. @constant kINQUIRY_Byte3_AERC_Bit AERC bit definition. @constant kINQUIRY_RESPONSE_DATA_FORMAT_Mask Mask for valid bits for RESPONSE_DATA_FORMAT. @constant kINQUIRY_Byte3_HISUP_Mask Mask to use to test the HISUP bit. @constant kINQUIRY_Byte3_NORMACA_Mask Mask to use to test the NORMACA bit. @constant kINQUIRY_Byte3_AERC_Mask Mask to use to test the AERC bit.
underlying type unsigned int
kINQUIRY_Byte3_HISUP_Bit4Bit definitions Bits 0-3: RESPONSE DATA FORMAT
kINQUIRY_Byte3_NORMACA_Bit5
kINQUIRY_Byte3_AERC_Bit7Bit 6 is Obsolete
kINQUIRY_RESPONSE_DATA_FORMAT_Mask15Masks Bits 0-3
kINQUIRY_Byte3_HISUP_Mask16
kINQUIRY_Byte3_NORMACA_Mask32
kINQUIRY_Byte3_AERC_Mask128Bit 6 is Obsolete

enum(anonymous)

@enum SCCS field definitions @discussion Definitions for bits/masks in the INQUIRY SCCSReserved field. @constant kINQUIRY_Byte5_SCCS_Bit SCCS bit definition. @constant kINQUIRY_Byte5_ACC_Bit ACC bit definition. @constant kINQUIRY_Byte5_ExplicitTPGS_Bit Explicit TPGS bit definition. @constant kINQUIRY_Byte5_ImplicitTPGS_Bit Implicit TPGS bit definition. @constant kINQUIRY_Byte5_3PC_Bit 3PC bit definition. @constant kINQUIRY_Byte5_PROTECT_Bit PROTECT bit definition. @constant kINQUIRY_Byte5_SCCS_Mask Mask to use to test the SCCS bit. @constant kINQUIRY_Byte5_ACC_Mask Mask to use to test the ACC bit. @constant kINQUIRY_Byte5_ExplicitTPGS_Mask Mask to use for the Explicit TPGS bits. @constant kINQUIRY_Byte5_ImplicitTPGS_Mask Mask to use for the Implicit TPGS bits. @constant kINQUIRY_Byte5_3PC_Mask Mask to use to test the 3PC bit. @constant kINQUIRY_Byte5_PROTECT_Mask Mask to use to test the PROTECT bit.
underlying type unsigned int
kINQUIRY_Byte5_SCCS_Bit7Bit definitions
kINQUIRY_Byte5_ACC_Bit6
kINQUIRY_Byte5_ExplicitTPGS_Bit5
kINQUIRY_Byte5_ImplicitTPGS_Bit4
kINQUIRY_Byte5_3PC_Bit3
kINQUIRY_Byte5_PROTECT_Bit0Bits 1-2: Reserved
kINQUIRY_Byte5_SCCS_Mask128Masks
kINQUIRY_Byte5_ACC_Mask64
kINQUIRY_Byte5_ExplicitTPGS_Mask32
kINQUIRY_Byte5_ImplicitTPGS_Mask16
kINQUIRY_Byte5_3PC_Mask8
kINQUIRY_Byte5_PROTECT_Mask1Bits 1-2: Reserved

enum(anonymous)

@enum flags1 field definitions @discussion Definitions for bits/masks in the INQUIRY flags1 field. @constant kINQUIRY_Byte6_ADDR16_Bit ADDR16 bit definition. @constant kINQUIRY_Byte6_MCHNGR_Bit MCHNGR bit definition. @constant kINQUIRY_Byte6_MULTIP_Bit MULTIP bit definition. @constant kINQUIRY_Byte6_VS_Bit VS bit definition. @constant kINQUIRY_Byte6_ENCSERV_Bit ENCSERV bit definition. @constant kINQUIRY_Byte6_BQUE_Bit BQUE bit definition. @constant kINQUIRY_Byte6_ADDR16_Mask Mask to use to test the ADDR16 bit. @constant kINQUIRY_Byte6_MCHNGR_Mask Mask to use to test the MCHNGR bit. @constant kINQUIRY_Byte6_MULTIP_Mask Mask to use to test the MULTIP bit. @constant kINQUIRY_Byte6_VS_Mask Mask to use to test the VS bit. @constant kINQUIRY_Byte6_ENCSERV_Mask Mask to use to test the ENCSERV bit. @constant kINQUIRY_Byte6_BQUE_Mask Mask to use to test the BQUE bit.
underlying type unsigned int
kINQUIRY_Byte6_Offset6Byte offset
kINQUIRY_Byte6_ADDR16_Bit0Bit definitions SPI Specific
kINQUIRY_Byte6_MCHNGR_Bit3Bit 1 is Obsolete Bit 2 is Obsolete
kINQUIRY_Byte6_MULTIP_Bit4
kINQUIRY_Byte6_VS_Bit5
kINQUIRY_Byte6_ENCSERV_Bit6
kINQUIRY_Byte6_BQUE_Bit7
kINQUIRY_Byte6_ADDR16_Mask1Masks SPI Specific
kINQUIRY_Byte6_MCHNGR_Mask8Bit 1 is Obsolete Bit 2 is Obsolete
kINQUIRY_Byte6_MULTIP_Mask16
kINQUIRY_Byte6_VS_Mask32
kINQUIRY_Byte6_ENCSERV_Mask64
kINQUIRY_Byte6_BQUE_Mask128

enum(anonymous)

@enum flags2 field definitions @discussion Definitions for bits/masks in the INQUIRY flags2 field. @constant kINQUIRY_Byte7_VS_Bit VS bit definition. @constant kINQUIRY_Byte7_CMDQUE_Bit CMDQUE bit definition. @constant kINQUIRY_Byte7_TRANDIS_Bit TRANDIS bit definition. @constant kINQUIRY_Byte7_LINKED_Bit LINKED bit definition. @constant kINQUIRY_Byte7_SYNC_Bit SYNC bit definition. @constant kINQUIRY_Byte7_WBUS16_Bit WBUS16 bit definition. @constant kINQUIRY_Byte7_RELADR_Bit RELADR bit definition. @constant kINQUIRY_Byte7_VS_Mask Mask to use to test the VS bit. @constant kINQUIRY_Byte7_CMDQUE_Mask Mask to use to test the CMDQUE bit. @constant kINQUIRY_Byte7_TRANDIS_Mask Mask to use to test the TRANDIS bit. @constant kINQUIRY_Byte7_LINKED_Mask Mask to use to test the LINKED bit. @constant kINQUIRY_Byte7_SYNC_Mask Mask to use to test the SYNC bit. @constant kINQUIRY_Byte7_WBUS16_Mask Mask to use to test the WBUS16 bit. @constant kINQUIRY_Byte7_RELADR_Mask Mask to use to test the RELADR bit.
underlying type unsigned int
kINQUIRY_Byte7_Offset7Byte offset
kINQUIRY_Byte7_VS_Bit0Bit definitions
kINQUIRY_Byte7_CMDQUE_Bit1
kINQUIRY_Byte7_TRANDIS_Bit2SPI Specific
kINQUIRY_Byte7_LINKED_Bit3
kINQUIRY_Byte7_SYNC_Bit4SPI Specific
kINQUIRY_Byte7_WBUS16_Bit5SPI Specific
kINQUIRY_Byte7_RELADR_Bit7Bit 6 is Obsolete
kINQUIRY_Byte7_VS_Mask1Masks
kINQUIRY_Byte7_CMDQUE_Mask2
kINQUIRY_Byte7_TRANDIS_Mask4SPI Specific
kINQUIRY_Byte7_LINKED_Mask8
kINQUIRY_Byte7_SYNC_Mask16SPI Specific
kINQUIRY_Byte7_WBUS16_Mask32SPI Specific
kINQUIRY_Byte7_RELADR_Mask128Bit 6 is Obsolete

enum(anonymous)

@enum Byte 56 features field definitions @discussion Definitions for bits/masks in the INQUIRY Byte 56 field. Inquiry Byte 56 features (for devices that report an ANSI VERSION of kINQUIRY_ANSI_VERSION_SCSI_SPC_Compliant or later). These are SPI-3 Specific. @constant kINQUIRY_Byte56_IUS_Bit IUS bit definition. @constant kINQUIRY_Byte56_QAS_Bit QAS bit definition. @constant kINQUIRY_Byte56_IUS_Mask Mask to use to test the IUS bit. @constant kINQUIRY_Byte56_QAS_Mask Mask to use to test the QAS bit. @constant kINQUIRY_Byte56_CLOCKING_Mask Mask to use to test CLOCKING bits. @constant kINQUIRY_Byte56_CLOCKING_ONLY_ST Single-transition clocking only. @constant kINQUIRY_Byte56_CLOCKING_ONLY_DT Double-transition clocking only. @constant kINQUIRY_Byte56_CLOCKING_ST_AND_DT Single-transition and double-transition clocking.
underlying type unsigned int
kINQUIRY_Byte56_Offset56Byte offset
kINQUIRY_Byte56_IUS_Bit0Bit definitions
kINQUIRY_Byte56_QAS_Bit1
kINQUIRY_Byte56_IUS_Mask1
kINQUIRY_Byte56_QAS_Mask2
kINQUIRY_Byte56_CLOCKING_Mask12
kINQUIRY_Byte56_CLOCKING_ONLY_ST0Definitions for the CLOCKING bits
kINQUIRY_Byte56_CLOCKING_ONLY_DT4
kINQUIRY_Byte56_CLOCKING_ST_AND_DT12kINQUIRY_Byte56_CLOCKING_RESERVED = 0x08,

macrokINQUIRY_VERSION_DESCRIPTOR_MaxCount

@define kINQUIRY_VERSION_DESCRIPTOR_MaxCount Maximum number of INQUIRY version descriptors supported.
#define kINQUIRY_VERSION_DESCRIPTOR_MaxCount 8

enum(anonymous)

@enum kINQUIRY_VERSION_DESCRIPTOR_SAT SAT specification version descriptor.
underlying type unsigned int
kINQUIRY_VERSION_DESCRIPTOR_SAT7840

enum(anonymous)

@enum kINQUIRY_VERSION_DESCRIPTOR_NVME NVMe specification version descriptor.
underlying type unsigned int
kINQUIRY_VERSION_DESCRIPTOR_NVME32896

macrokIOPropertySCSIPeripheralDeviceType

@define kIOPropertySCSIPeripheralDeviceType SCSI Peripheral Device Type as reported in the INQUIRY data.
#define kIOPropertySCSIPeripheralDeviceType "Peripheral Device Type"

macrokIOPropertySCSIPeripheralDeviceTypeSize

@define kIOPropertySCSIPeripheralDeviceTypeSize Size of the kIOPropertySCSIPeripheralDeviceType key.
#define kIOPropertySCSIPeripheralDeviceTypeSize 8

macrokIOPropertyTPGSInfo

@define kIOPropertyTPGSInfo TPGS Info as reported in the INQUIRY data.
#define kIOPropertyTPGSInfo "TPGS Information"

macrokIOPropertyHiSup

@define kIOPropertyHiSup Hierarchical LUN Support as reported in the INQUIRY data.
#define kIOPropertyHiSup "Hierarchical LUN Support"

macrokIOPropertyTPGSInfoSize

@define kIOPropertyTPGSInfoSize Size of the kIOPropertyTPGSInfo key.
#define kIOPropertyTPGSInfoSize 8

macrokIOPropertySCSIVendorIdentification

@define kIOPropertySCSIVendorIdentification Vendor ID as reported in the INQUIRY data. Additional space characters (0x20) are truncated.
#define kIOPropertySCSIVendorIdentification "Vendor Identification"

macrokIOPropertySCSIProductIdentification

@define kIOPropertySCSIProductIdentification Product ID as reported in the INQUIRY data. Additional space characters (0x20) are truncated.
#define kIOPropertySCSIProductIdentification "Product Identification"

macrokIOPropertySCSIProductRevisionLevel

@define kIOPropertySCSIProductRevisionLevel Product Revision Level as reported in the INQUIRY data.
#define kIOPropertySCSIProductRevisionLevel "Product Revision Level"

enum(anonymous)

@enum INQUIRY Page Codes @discussion INQUIRY Page Codes to be used when EVPD is set in the INQUIRY command. @constant kINQUIRY_Page00_PageCode Page Code 00h. @constant kINQUIRY_Page80_PageCode Page Code 80h. @constant kINQUIRY_Page83_PageCode Page Code 83h. @constant kINQUIRY_Page89_PageCode Page Code 89h. @constant kINQUIRY_PageB0_PageCode Page Code B0h. @constant kINQUIRY_PageB1_PageCode Page Code B1h. @constant kINQUIRY_PageB2_PageCode Page Code B2h. @constant kINQUIRY_PageC0_PageCode Page Code C0h. @constant kINQUIRY_PageC1_PageCode Page Code C1h.
underlying type unsigned int
kINQUIRY_Page00_PageCode0
kINQUIRY_Page80_PageCode128
kINQUIRY_Page83_PageCode131
kINQUIRY_Page89_PageCode137
kINQUIRY_PageB0_PageCode176
kINQUIRY_PageB1_PageCode177
kINQUIRY_PageB2_PageCode178
kINQUIRY_PageC0_PageCode192
kINQUIRY_PageC1_PageCode193

structSCSICmd_INQUIRY_Page00_Header

@struct SCSICmd_INQUIRY_Page00_Header @discussion INQUIRY Page 00h Header.
size 4, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 00h
UInt8RESERVEDreserved field
UInt8PAGE_LENGTHn-3 bytes

typedefSCSICmd_INQUIRY_Page00_Header

typedef struct SCSICmd_INQUIRY_Page00_Header SCSICmd_INQUIRY_Page00_Header;

structSCSICmd_INQUIRY_Page00_Header_SPC_16

@struct SCSICmd_INQUIRY_Page00_Header_SPC_16 @discussion INQUIRY Page 00h Header.
size 4, align 2
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 00h
UInt16PAGE_LENGTHn-3 bytes

typedefSCSICmd_INQUIRY_Page00_Header_SPC_16

typedef struct SCSICmd_INQUIRY_Page00_Header_SPC_16 SCSICmd_INQUIRY_Page00_Header_SPC_16;

structSCSICmd_INQUIRY_Page80_Header

@struct SCSICmd_INQUIRY_Page80_Header @discussion INQUIRY Page 80h Header.
size 5, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 80h
UInt8RESERVEDreserved field
UInt8PAGE_LENGTHn-3 bytes
UInt8PRODUCT_SERIAL_NUMBER4-n

typedefSCSICmd_INQUIRY_Page80_Header

typedef struct SCSICmd_INQUIRY_Page80_Header SCSICmd_INQUIRY_Page80_Header;

structSCSICmd_INQUIRY_Page80_Header_SPC_16

@struct SCSICmd_INQUIRY_Page80_Header_SPC_16 @discussion INQUIRY Page 80h Header with 16 bytes INQUIRY Command.
size 6, align 2
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 80h
UInt16PAGE_LENGTHn-3 bytes
UInt8PRODUCT_SERIAL_NUMBER4-n

typedefSCSICmd_INQUIRY_Page80_Header_SPC_16

typedef struct SCSICmd_INQUIRY_Page80_Header_SPC_16 SCSICmd_INQUIRY_Page80_Header_SPC_16;

macrokIOPropertySCSIINQUIRYUnitSerialNumber

@define kIOPropertySCSIINQUIRYUnitSerialNumber Key that describes the INQUIRY Unit Serial Number in the IORegistry.
#define kIOPropertySCSIINQUIRYUnitSerialNumber "INQUIRY Unit Serial Number"

structSCSICmd_INQUIRY_Page83_Header

@struct SCSICmd_INQUIRY_Page83_Header @discussion INQUIRY Page 83h Header.
size 4, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 83h
UInt8RESERVEDreserved field
UInt8PAGE_LENGTHn-3 bytes

typedefSCSICmd_INQUIRY_Page83_Header

typedef struct SCSICmd_INQUIRY_Page83_Header SCSICmd_INQUIRY_Page83_Header;

structSCSICmd_INQUIRY_Page83_Header_SPC_16

@struct SCSICmd_INQUIRY_Page83_Header_SPC_16 @discussion INQUIRY Page 83h Header used with the 16 byte INQUIRY command.
size 4, align 2
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 83h
UInt16PAGE_LENGTHn-3 bytes

typedefSCSICmd_INQUIRY_Page83_Header_SPC_16

typedef struct SCSICmd_INQUIRY_Page83_Header_SPC_16 SCSICmd_INQUIRY_Page83_Header_SPC_16;

structSCSICmd_INQUIRY_Page83_Identification_Descriptor

@struct SCSICmd_INQUIRY_Page83_Identification_Descriptor @discussion INQUIRY Page 83h Identification Descriptor.
size 5, align 1
UInt8CODE_SET7-4 = Protocol Identifier. 3-0 = Code Set
UInt8IDENTIFIER_TYPE7 = PIV 5-4 = ASSOCIATION 3-0 = Identifier
UInt8RESERVED
UInt8IDENTIFIER_LENGTH
UInt8IDENTIFIER

typedefSCSICmd_INQUIRY_Page83_Identification_Descriptor

typedef struct SCSICmd_INQUIRY_Page83_Identification_Descriptor SCSICmd_INQUIRY_Page83_Identification_Descriptor;

enum(anonymous)

@enum INQUIRY Page 83h Code Set @discussion Definitions for the Code Set field. @constant kINQUIRY_Page83_CodeSetBinaryData The identifier contains binary data. @constant kINQUIRY_Page83_CodeSetASCIIData The identifier contains ASCII data. @constant kINQUIRY_Page83_CodeSetUTF8Data The identifier contains UTF-8 data.
underlying type unsigned int
kINQUIRY_Page83_CodeSetReserved0
kINQUIRY_Page83_CodeSetBinaryData1
kINQUIRY_Page83_CodeSetASCIIData2
kINQUIRY_Page83_CodeSetUTF8Data3
kINQUIRY_Page83_CodeSetMask150x4 - 0xF reserved

enum(anonymous)

@enum INQUIRY Page 83h Association @discussion Definitions for the Association field. @constant kINQUIRY_Page83_AssociationLogicalUnit Association of the identifier is with the logical unit. @constant kINQUIRY_Page83_AssociationDevice Association of the identifier is with the device (same as logical unit in SPC-2). @constant kINQUIRY_Page83_AssociationTargetPort Association of the identifier is with the target port. @constant kINQUIRY_Page83_AssociationTargetDevice Association of the identifier is with the target device (i.e. all ports). @constant kINQUIRY_Page83_AssociationMask Mask to use to determine association.
underlying type unsigned int
kINQUIRY_Page83_AssociationLogicalUnit0SPC-3 - Association is changed to be specific to Logical Units
kINQUIRY_Page83_AssociationDevice0Backwards compatibility for SPC-2
kINQUIRY_Page83_AssociationTargetPort16Association is related to a Target Port
kINQUIRY_Page83_AssociationTargetDevice32SPC-3 - Added as specific association to a Target device.
kINQUIRY_Page83_AssociationMask48
kINQUIRY_Page83_AssociationShift4

enum(anonymous)

@enum INQUIRY Page 83h Identifier Type @discussion Definitions for the Identifier Type field. @constant kINQUIRY_Page83_IdentifierTypeVendorSpecific Vendor Specific Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeVendorID Vendor Specific Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeIEEE_EUI64 EUI-64 Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeNAAIdentifier NAA Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeRelativePortIdentifier Relative Target Port Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeTargetPortGroup Target Port Group Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeLogicalUnitGroup Logical Unit Group Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeMD5LogicalUnitIdentifier MD5 Logical Unit Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeSCSINameString SCSI Name String Identifier Type. @constant kINQUIRY_Page83_IdentifierTypeMask Mask to use to determine association. @constant kINQUIRY_Page83_ProtocolIdentifierValidBit PIV Bit definition. @constant kINQUIRY_Page83_ProtocolIdentifierValidMask Mask to use to determine if PIV is set.
underlying type unsigned int
kINQUIRY_Page83_IdentifierTypeVendorSpecific0
kINQUIRY_Page83_IdentifierTypeVendorID1
kINQUIRY_Page83_IdentifierTypeIEEE_EUI642
kINQUIRY_Page83_IdentifierTypeNAAIdentifier3
kINQUIRY_Page83_IdentifierTypeRelativePortIdentifier4
kINQUIRY_Page83_IdentifierTypeTargetPortGroup5
kINQUIRY_Page83_IdentifierTypeLogicalUnitGroup6
kINQUIRY_Page83_IdentifierTypeMD5LogicalUnitIdentifier7
kINQUIRY_Page83_IdentifierTypeSCSINameString8
kINQUIRY_Page83_IdentifierTypeMask15
kINQUIRY_Page83_ProtocolIdentifierValidBit7
kINQUIRY_Page83_ProtocolIdentifierValidMask128

macrokINQUIRY_Page83_IdentifierTypeFCNameIdentifier

Backwards compatibility
#define kINQUIRY_Page83_IdentifierTypeFCNameIdentifier kINQUIRY_Page83_IdentifierTypeNAAIdentifier

enum(anonymous)

@enum Protocol Identifier values @discussion Definitions for the protocol identifier values. @constant kSCSIProtocolIdentifier_FibreChannel FibreChannel Protocol Identifier. @constant kSCSIProtocolIdentifier_ParallelSCSI Parallel SCSI Protocol Identifier. @constant kSCSIProtocolIdentifier_SSA SSA Protocol Identifier. @constant kSCSIProtocolIdentifier_FireWire FireWire (IEEE-1394) Protocol Identifier. @constant kSCSIProtocolIdentifier_RDMA RDMA Protocol Identifier. @constant kSCSIProtocolIdentifier_iSCSI iSCSI Protocol Identifier. @constant kSCSIProtocolIdentifier_SAS SAS Protocol Identifier. @constant kSCSIProtocolIdentifier_ADT ADT Protocol Identifier. @constant kSCSIProtocolIdentifier_ATAPI ATAPI Protocol Identifier. @constant kSCSIProtocolIdentifier_None No Protocol Identifier.
underlying type unsigned int
kSCSIProtocolIdentifier_FibreChannel0
kSCSIProtocolIdentifier_ParallelSCSI1
kSCSIProtocolIdentifier_SSA2
kSCSIProtocolIdentifier_FireWire3
kSCSIProtocolIdentifier_RDMA4
kSCSIProtocolIdentifier_iSCSI5
kSCSIProtocolIdentifier_SAS6
kSCSIProtocolIdentifier_ADT7
kSCSIProtocolIdentifier_ATAPI8
kSCSIProtocolIdentifier_None150x9-0xE Reserved

macrokIOPropertySCSIINQUIRYDeviceIdentification

@define kIOPropertySCSIINQUIRYDeviceIdentification Device Identification key.
#define kIOPropertySCSIINQUIRYDeviceIdentification "INQUIRY Device Identification"

macrokIOPropertySCSIINQUIRYDeviceIdCodeSet

@define kIOPropertySCSIINQUIRYDeviceIdCodeSet Code Set type key.
#define kIOPropertySCSIINQUIRYDeviceIdCodeSet "Code Set"

macrokIOPropertySCSIINQUIRYDeviceIdType

@define kIOPropertySCSIINQUIRYDeviceIdType Identifier Type key.
#define kIOPropertySCSIINQUIRYDeviceIdType "Identifier Type"

macrokIOPropertySCSIINQUIRYDeviceIdAssociation

@define kIOPropertySCSIINQUIRYDeviceIdAssociation Association key.
#define kIOPropertySCSIINQUIRYDeviceIdAssociation "Association"

macrokIOPropertySCSIINQUIRYDeviceIdentifier

@define kIOPropertySCSIINQUIRYDeviceIdentifier Identifier key (data or string).
#define kIOPropertySCSIINQUIRYDeviceIdentifier "Identifier"

structSCSICmd_INQUIRY_Page83_RelativeTargetPort_Identifier

@struct SCSICmd_INQUIRY_Page83_RelativeTargetPort_Identifier @discussion INQUIRY Page 83h Relative Target Port Identifier.
size 4, align 2
UInt16OBSOLETE
UInt16RELATIVE_TARGET_PORT_IDENTIFIER

typedefSCSICmd_INQUIRY_Page83_RelativeTargetPort_Identifier

typedef struct SCSICmd_INQUIRY_Page83_RelativeTargetPort_Identifier SCSICmd_INQUIRY_Page83_RelativeTargetPort_Identifier;

structSCSICmd_INQUIRY_Page83_TargetPortGroup_Identifier

@struct SCSICmd_INQUIRY_Page83_TargetPortGroup_Identifier @discussion INQUIRY Page 83h Target Port Group Identifier.
size 4, align 2
UInt16RESERVED
UInt16TARGET_PORT_GROUP

typedefSCSICmd_INQUIRY_Page83_TargetPortGroup_Identifier

typedef struct SCSICmd_INQUIRY_Page83_TargetPortGroup_Identifier SCSICmd_INQUIRY_Page83_TargetPortGroup_Identifier;

structSCSICmd_INQUIRY_Page83_LogicalUnitGroup_Identifier

@struct SCSICmd_INQUIRY_Page83_LogicalUnitGroup_Identifier @discussion INQUIRY Page 83h Logical Unit Group Identifier.
size 4, align 2
UInt16RESERVED
UInt16LOGICAL_UNIT_GROUP

typedefSCSICmd_INQUIRY_Page83_LogicalUnitGroup_Identifier

typedef struct SCSICmd_INQUIRY_Page83_LogicalUnitGroup_Identifier SCSICmd_INQUIRY_Page83_LogicalUnitGroup_Identifier;

structSCSICmd_INQUIRY_Page89_Data

@struct SCSICmd_INQUIRY_Page89_Data @discussion INQUIRY Page 89h data as defined in the SAT 1.0 specification. This section contains all structures and definitions used by the INQUIRY command in response to a request for page 89h - ATA information VPD Page.
size 572, align 4
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to 89h
UInt16PAGE_LENGTHMust be equal to 238h
UInt32Reserved
UInt8[8]SAT_VENDOR_IDENTIFICATION
UInt8[16]SAT_PRODUCT_IDENTIFICATION
UInt8[4]SAT_PRODUCT_REVISION_LEVEL
UInt8[20]ATA_DEVICE_SIGNATURE
UInt8COMMAND_CODE
UInt8[3]Reserved2
UInt8[512]IDENTIFY_DATA

typedefSCSICmd_INQUIRY_Page89_Data

typedef struct SCSICmd_INQUIRY_Page89_Data SCSICmd_INQUIRY_Page89_Data;

structSCSICmd_INQUIRY_PageB0_Data

@struct SCSICmd_INQUIRY_PageB0_Data @discussion INQUIRY Page B0h data as defined in the SBC specification. This section contains all structures and definitions used by the INQUIRY command in response to a request for page B0h - Block Limits VPD Page.
size 64, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to B0h
UInt16PAGE_LENGTHMust be equal to 3Ch
UInt8WSNZ0 = WSNZ, 7-1 = Reserved.
UInt8MAXIMUM_COMPARE_AND_WRITE_LENGTH
UInt16OPTIMAL_TRANSFER_LENGTH_GRANULARITY
UInt32MAXIMUM_TRANSFER_LENGTH
UInt32OPTIMAL_TRANSFER_LENGTH
UInt32MAXIMUM_PREFETCH_LENGTH
UInt32MAXIMUM_UNMAP_LBA_COUNT
UInt32MAXIMUM_UNMAP_BLOCK_DESCRIPTOR_COUNT
UInt32OPTIMAL_UNMAP_GRANULARITY
UInt32UNMAP_GRANULARITY_ALIGNMENT
UInt64MAXIMUM_WRITE_SAME_LENGTH
UInt32MAXIMUM_ATOMIC_TRANSFER_LENGTH
UInt32ATOMIC_ALIGNMENT
UInt32ATOMIC_TRANSFER_LENGTH_GRANULARITY
UInt32MAXIMUM_ATOMIC_TRANSFER_LENGTH_WITH_ATOMIC_BOUNDARY
UInt32MAXIMUM_ATOMIC_BOUNDARY_SIZE

typedefSCSICmd_INQUIRY_PageB0_Data

typedef struct SCSICmd_INQUIRY_PageB0_Data SCSICmd_INQUIRY_PageB0_Data;

structSCSICmd_INQUIRY_PageB1_Data

@struct SCSICmd_INQUIRY_PageB1_Data @discussion INQUIRY Page B1h data as defined in the SBC specification. This section contains all structures and definitions used by the INQUIRY command in response to a request for page B1h - Block Device Characteristics VPD Page.
size 64, align 2
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to B1h
UInt8Reserved
UInt8PAGE_LENGTHMust be equal to 3Ch
UInt16MEDIUM_ROTATION_RATE
UInt8[58]Reserved2

typedefSCSICmd_INQUIRY_PageB1_Data

typedef struct SCSICmd_INQUIRY_PageB1_Data SCSICmd_INQUIRY_PageB1_Data;

enum(anonymous)

underlying type unsigned int
kINQUIRY_PageB1_Page_Length60

structSCSICmd_INQUIRY_PageB2_Data

@struct SCSICmd_INQUIRY_PageB2_Data @discussion INQUIRY Page B2h data as defined in the SBC specification. This section contains all structures and definitions used by the INQUIRY command in response to a request for page B2h - Logical Block Provisioning VPD Page.
size 8, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to B2h.
UInt16PAGE_LENGTHMust be n-3.
UInt8THRESHOLD_EXPONENT
UInt8LBP_FLAGS7 = LBPU, 6 = LBPWS, 5 = LBPWS10,
UInt8MINIMUM_PERCENTAGE4-2 = LBPRZ, 1 = ANC_SUP, 0 = DP. 7-3 = MINIMUM PERCENTAGE,
UInt8THRESHOLD_PERCENTAGE2-0 = PROVISIONING TYPE.

typedefSCSICmd_INQUIRY_PageB2_Data

typedef struct SCSICmd_INQUIRY_PageB2_Data SCSICmd_INQUIRY_PageB2_Data;

structSCSICmd_INQUIRY_PageB2_Provisioning_Group_Descriptor

size 38, align 1
UInt8[20]DESIGNATION_DESCRIPTOR
UInt8[18]RESERVED

typedefSCSICmd_INQUIRY_PageB2_Provisioning_Group_Descriptor

typedef struct SCSICmd_INQUIRY_PageB2_Provisioning_Group_Descriptor SCSICmd_INQUIRY_PageB2_Provisioning_Group_Descriptor;

enum(anonymous)

underlying type unsigned int
kC0DataMaxStringLen32

enum(anonymous)

underlying type unsigned int
kINQUIRY_PageC0_Features_HasSEP_LUN8

structSCSICmd_INQUIRY_PageCx_Header

size 4, align 1
UInt8PERIPHERAL_DEVICE_TYPE7-5 = Qualifier. 4-0 = Device type.
UInt8PAGE_CODEMust be equal to C0h or C1h
UInt8RESERVED
UInt8PAGE_LENGTH

typedefSCSICmd_INQUIRY_PAGECx_Header

typedef struct SCSICmd_INQUIRY_PageCx_Header SCSICmd_INQUIRY_PAGECx_Header;

structSCSICmd_INQUIRY_PageC0_Data

size 116, align 1
SCSICmd_INQUIRY_PAGECx_HeaderfHeader
UInt8fTdmPageVersion
UInt8fTdmProtocolVersion
UInt8fReserved1
UInt8fReserved2
UInt8[32]fMacModelId
UInt8[32]fSerialNumber
UInt32fMaxReadSize
UInt32fMaxWriteSize
UInt32fNativeBlockSize
UInt32fPreferredIOSize
UInt64fFeatures
UInt64fWorkArounds
UInt16fEncryptionType
UInt8[2]fReserved3
UInt64fInstalledRAMSize

typedefSCSICmd_INQUIRY_PageC0_Data

typedef struct SCSICmd_INQUIRY_PageC0_Data SCSICmd_INQUIRY_PageC0_Data;

structSCSICmd_INQUIRY_PageC1_Data

size 12, align 1
SCSICmd_INQUIRY_PAGECx_HeaderfHeader
UInt8fTdmPowerRequirementsPageVersion
UInt8fReserved1
UInt16fReserved2
UInt32fPowerRequired

typedefSCSICmd_INQUIRY_PageC1_Data

typedef struct SCSICmd_INQUIRY_PageC1_Data SCSICmd_INQUIRY_PageC1_Data;

macrokIOPropertySATVendorIdentification

@define kIOPropertySATVendorIdentification Vendor Identification of the SATL.
#define kIOPropertySATVendorIdentification "SAT Vendor Identification"

macrokIOPropertySATProductIdentification

@define kIOPropertySATProductIdentification Product Identification of the SATL.
#define kIOPropertySATProductIdentification "SAT Product Identification"

macrokIOPropertySATProductRevisonLevel

@define kIOPropertySATProductRevisonLevel Product Revision Level of the SATL.
#define kIOPropertySATProductRevisonLevel "SAT Product Revision Level"