#include <IOKit/usb/AppleUSBDefinitions.h>

IOKit/usb/AppleUSBDefinitions.h Kernel.framework

includes: TargetConditionals.h, IOKit/IOTypes.h, Kernel/libkern/OSByteOrder.h
42 typedefs · 39 enums · 31 structs · 17 macros

macroAppleUSBCommon_AppleUSBDefinitions_h

#define AppleUSBCommon_AppleUSBDefinitions_h 

macroIOUSBBit

#define IOUSBBit(bit) ((uint32_t)(1) << bit)

macroIOUSBBitRange

#define IOUSBBitRange(start, end) (~(((uint32_t)(1) << start) - 1) & (((uint32_t)(1) << end) | (((uint32_t)(1) << end) - 1)))

macroIOUSBBitRange64

#define IOUSBBitRange64(start, end) (~(((uint64_t)(1) << start) - 1) & (((uint64_t)(1) << end) | (((uint64_t)(1) << end) - 1)))

macroIOUSBBitRangePhase

#define IOUSBBitRangePhase(start, end) (start)

macroUSBToHost16

#define USBToHost16 OSSwapLittleToHostInt16

macroHostToUSB16

#define HostToUSB16 OSSwapHostToLittleInt16

macroUSBToHost32

#define USBToHost32 OSSwapLittleToHostInt32

macroHostToUSB32

#define HostToUSB32 OSSwapHostToLittleInt32

macroUSBToHost64

#define USBToHost64 OSSwapLittleToHostInt64

macroHostToUSB64

#define HostToUSB64 OSSwapHostToLittleInt64

enum(anonymous)

underlying type unsigned long
kIOUSBLinkSpeedLow1500000
kIOUSBLinkSpeedFull12000000
kIOUSBLinkSpeedHigh480000000
kIOUSBLinkSpeed5Gbps5000000000
kIOUSBLinkSpeed10Gbps10000000000
kIOUSBLinkSpeed20Gbps20000000000
kIOUSBLinkSpeed40Gbps40000000000
kIOUSBLinkSpeed80Gbps80000000000

macrokIOUSB20BitrateLow

Obsolete definitions
#define kIOUSB20BitrateLow kIOUSBLinkSpeedLow

macrokIOUSB20BitrateFull

#define kIOUSB20BitrateFull kIOUSBLinkSpeedFull

macrokIOUSB20BitrateHigh

#define kIOUSB20BitrateHigh kIOUSBLinkSpeedHigh

macrokIOUSB30Bitrate5Gbps

#define kIOUSB30Bitrate5Gbps kIOUSBLinkSpeed5Gbps

macrokIOUSB30Bitrate10Gbps

#define kIOUSB30Bitrate10Gbps kIOUSBLinkSpeed10Gbps

macrokIOUSB32Bitrate20Gbps

#define kIOUSB32Bitrate20Gbps kIOUSBLinkSpeed20Gbps

enum(anonymous)

@enum kIOUSBAppleVendorID @discussion Apple's vendor ID, assigned by the USB-IF
underlying type unsigned int
kIOUSBAppleVendorID1452

enumtIOUSBDescriptorType

@enum tIOUSBDescriptorType @brief Descriptor types defined by USB 2.0 Table 9-5 and USB 3.0 Table 9-6
underlying type unsigned int
kIOUSBDescriptorTypeDevice1
kIOUSBDescriptorTypeConfiguration2
kIOUSBDescriptorTypeString3
kIOUSBDescriptorTypeInterface4
kIOUSBDescriptorTypeEndpoint5
kIOUSBDescriptorTypeDeviceQualifier6
kIOUSBDescriptorTypeOtherSpeedConfiguration7
kIOUSBDescriptorTypeInterfacePower8
kIOUSBDescriptorTypeOTG9
kIOUSBDescriptorTypeDebug10
kIOUSBDescriptorTypeInterfaceAssociation11
kIOUSBDescriptorTypeBOS15
kIOUSBDescriptorTypeDeviceCapability16
kIOUSBDecriptorTypeHID33
kIOUSBDecriptorTypeReport34
kIOUSBDescriptorTypePhysical35
kIOUSBDescriptorTypeHub41
kIOUSBDescriptorTypeSuperSpeedHub42
kIOUSBDescriptorTypeSuperSpeedUSBEndpointCompanion48
kIOUSBDescriptorTypeSuperSpeedPlusIsochronousEndpointCompanion49

typedeftIOUSBDescriptorType

typedef enum tIOUSBDescriptorType tIOUSBDescriptorType

enumtIOUSBDescriptorSize

@enum tIOUSBDescriptorSize @brief Size in bytes for descriptor structures
underlying type unsigned int
kIOUSBDescriptorHeaderSize2
kIOUSBDescriptorSizeDevice18
kIOUSBDescriptorSizeConfiguration9
kIOUSBDescriptorSizeInterface9
kIOUSBDescriptorSizeEndpoint7
kIOUSBDescriptorSizeStringMinimum2
kIOUSBDescriptorSizeStringMaximum255
kIOUSBDescriptorSizeDeviceQualifier10
kIOUSBDescriptorSizeInterfaceAssociation8
kIOUSBDescriptorSizeBOS5
kIOUSBDescriptorSizeDeviceCapability3
kIOUSBDescriptorSizeUSB20ExtensionCapability7
kIOUSBDescriptorSizeSuperSpeedUSBDeviceCapability10
kIOUSBDescriptorSizeContainerIDCapability20
kIOUSBDescriptorSizeHubMinimum9
kIOUSBDescriptorSizeHubMaximum21
kIOUSBDescriptorSizeSuperSpeedHub12
kIOUSBDescriptorSizeSuperSpeedUSBEndpointCompanion6
kIOUSBDescriptorSizeSuperSpeedPlusIsochronousEndpointCompanion8
kIOUSBDescriptorSizeBillboardDeviceMinimum44
kIOUSBDescriptorSizeBillboardDeviceMaximum256
kIOUSBDescriptorSizePlatformECIDCapability28
kIOUSBDescriptorSizePlatformCapability20

typedeftIOUSBDescriptorSize

typedef enum tIOUSBDescriptorSize tIOUSBDescriptorSize

structIOUSBDescriptorHeader

@struct IOUSBDescriptorHeader @brief Base descriptor defined by USB 2.0 9.5 @discussion IOUSBDescriptorDefinitions declares structs to represent a variety of USB standard descriptors.
size 2, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType

typedefIOUSBDescriptorHeader

typedef struct IOUSBDescriptorHeader IOUSBDescriptorHeader

typedefIOUSBDescriptor

@brief Base descriptor defined by USB 2.0 9.5 @discussion Used to represent generic descriptor definitions
typedef IOUSBDescriptorHeader IOUSBDescriptor

structIOUSBDeviceDescriptor

@typedef IOUSBDeviceDescriptor @discussion Descriptor for a USB Device. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>.
size 18, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_tbcdUSB
uint8_tbDeviceClass
uint8_tbDeviceSubClass
uint8_tbDeviceProtocol
uint8_tbMaxPacketSize0
uint16_tidVendor
uint16_tidProduct
uint16_tbcdDevice
uint8_tiManufacturer
uint8_tiProduct
uint8_tiSerialNumber
uint8_tbNumConfigurations

typedefIOUSBDeviceDescriptor

typedef struct IOUSBDeviceDescriptor IOUSBDeviceDescriptor

structIOUSBDeviceQualifierDescriptor

@typedef IOUSBDeviceQualifierDescriptor @discussion USB Device Qualifier Descriptor. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 2.0 9.6.2: Device Qualifier
size 10, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_tbcdUSB
uint8_tbDeviceClass
uint8_tbDeviceSubClass
uint8_tbDeviceProtocol
uint8_tbMaxPacketSize0
uint8_tbNumConfigurations
uint8_tbReserved

typedefIOUSBDeviceQualifierDescriptor

typedef struct IOUSBDeviceQualifierDescriptor IOUSBDeviceQualifierDescriptor

structIOUSBConfigurationDescHeader

@typedef IOUSBConfigurationDescHeader @discussion Header of a IOUSBConfigurationDescriptor. Used to get the total length of the descriptor. USB 2.0 9.6.3: Configuration
size 4, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_twTotalLength

typedefIOUSBConfigurationDescHeader

typedef struct IOUSBConfigurationDescHeader IOUSBConfigurationDescHeader

structIOUSBConfigurationDescriptor

@typedef IOUSBConfigurationDescriptor @discussion Standard USB Configuration Descriptor. It is variable length, so this only specifies the known fields. We use the wTotalLength field to read the whole descriptor. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 2.0 9.6.3: Configuration
size 9, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_twTotalLength
uint8_tbNumInterfaces
uint8_tbConfigurationValue
uint8_tiConfiguration
uint8_tbmAttributes
uint8_tMaxPower

typedefIOUSBConfigurationDescriptor

typedef struct IOUSBConfigurationDescriptor IOUSBConfigurationDescriptor

enum(anonymous)

underlying type unsigned int
kIOUSBConfigurationDescriptorAttributeRemoteWakeCapable32
kIOUSBConfigurationDescriptorAttributeSelfPowered64

structIOUSBInterfaceDescriptor

@typedef IOUSBInterfaceDescriptor @discussion Descriptor for a USB Interface. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 2.0 9.6.5: Interface
size 9, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbInterfaceNumber
uint8_tbAlternateSetting
uint8_tbNumEndpoints
uint8_tbInterfaceClass
uint8_tbInterfaceSubClass
uint8_tbInterfaceProtocol
uint8_tiInterface

typedefIOUSBInterfaceDescriptor

typedef struct IOUSBInterfaceDescriptor IOUSBInterfaceDescriptor

structIOUSBEndpointDescriptor

@typedef IOUSBEndpointDescriptor @discussion Descriptor for a USB Endpoint. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 2.0 9.6.6: Endpoint
size 7, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbEndpointAddress
uint8_tbmAttributes
uint16_twMaxPacketSize
uint8_tbInterval

typedefIOUSBEndpointDescriptor

typedef struct IOUSBEndpointDescriptor IOUSBEndpointDescriptor

enum(anonymous)

underlying type unsigned int
kIOUSBEndpointDescriptorNumber15
kIOUSBEndpointDescriptorNumberPhase0
kIOUSBEndpointDescriptorEndpointAddressReserved112
kIOUSBEndpointDescriptorDirection128
kIOUSBEndpointDescriptorDirectionPhase7
kIOUSBEndpointDescriptorDirectionOut0
kIOUSBEndpointDescriptorDirectionIn128
kIOUSBEndpointDescriptorTransferType3
kIOUSBEndpointDescriptorTransferTypePhase0
kIOUSBEndpointDescriptorTransferTypeControl0
kIOUSBEndpointDescriptorTransferTypeIsochronous1
kIOUSBEndpointDescriptorTransferTypeBulk2
kIOUSBEndpointDescriptorTransferTypeInterrupt3
kIOUSBEndpointDescriptorSynchronizationType12
kIOUSBEndpointDescriptorSynchronizationTypePhase2
kIOUSBEndpointDescriptorSynchronizationTypeNone0
kIOUSBEndpointDescriptorSynchronizationTypeAsynchronous4
kIOUSBEndpointDescriptorSynchronizationTypeAdaptive8
kIOUSBEndpointDescriptorSynchronizationTypeSynchronous12
kIOUSBEndpointDescriptorUsageType48
kIOUSBEndpointDescriptorUsageTypePhase4
kIOUSBEndpointDescriptorUsageTypeInterruptPeriodic0
kIOUSBEndpointDescriptorUsageTypeInterruptNotification16
kIOUSBEndpointDescriptorUsageTypeInterruptReserved132
kIOUSBEndpointDescriptorUsageTypeInterruptReserved248
kIOUSBEndpointDescriptorUsageTypeIsocData0
kIOUSBEndpointDescriptorUsageTypeIsocFeedback16
kIOUSBEndpointDescriptorUsageTypeIsocImplicit32
kIOUSBEndpointDescriptorUsageTypeIsocReserved48
kIOUSBEndpointDescriptorPacketSize2047
kIOUSBEndpointDescriptorPacketSizePhase0
kIOUSBEndpointDescriptorPacketSizeMult6144
kIOUSBEndpointDescriptorPacketSizeMultPhase11
kIOUSBEndpointDescriptorReserved57344
kIOUSBEndpointDescriptorReservedPhase13

enumtIOUSBEndpointDirection

@enum tIOUSBEndpointDirection @brief IO Direction of an endpoint @constant kIOUSBEndpointDirectionOut endpoint direction is host-to-device @constant kIOUSBEndpointDirectionIn endpoint direction is device-to-host @constant kIOUSBEndpointDirectionUnknown the direction is unknown
underlying type unsigned int
kIOUSBEndpointDirectionOut0
kIOUSBEndpointDirectionIn1
kIOUSBEndpointDirectionUnknown2

typedeftIOUSBEndpointDirection

typedef enum tIOUSBEndpointDirection tIOUSBEndpointDirection

enumtIOUSBEndpointType

@enum tIOUSBEndpointType @brief Describes the type of endpoint @constant kIOUSBEndpointTypeControl endpoint is a control endpoint @constant kIOUSBEndpointTypeIsochronous endpoint is an isochronous endpoint @constant kIOUSBEndpointTypeBulk is a bulk endpoint @constant kIOUSBEndpointTypeInterrupt is an interrupt endpoint
underlying type unsigned int
kIOUSBEndpointTypeControl0
kIOUSBEndpointTypeIsochronous1
kIOUSBEndpointTypeBulk2
kIOUSBEndpointTypeInterrupt3

typedeftIOUSBEndpointType

typedef enum tIOUSBEndpointType tIOUSBEndpointType

enumtIOUSBEndpointSynchronizationType

underlying type unsigned int
kIOUSBEndpointSynchronizationTypeNone0
kIOUSBEndpointSynchronizationTypeAsynchronous1
kIOUSBEndpointSynchronizationTypeAdaptive2
kIOUSBEndpointSynchronizationTypeSynchronous3

typedeftIOUSBEndpointSynchronizationType

typedef enum tIOUSBEndpointSynchronizationType tIOUSBEndpointSynchronizationType

enumtIOUSBEndpointUsageType

underlying type unsigned int
kIOUSBEndpointUsageTypeIsocData0
kIOUSBEndpointUsageTypeIsocFeedback1
kIOUSBEndpointUsageTypeIsocImplicit2

typedeftIOUSBEndpointUsageType

typedef enum tIOUSBEndpointUsageType tIOUSBEndpointUsageType

enumtIOUSBLanguageID

@enum tIOUSBLanguageID @brief USB Language Identifiers 1.0
underlying type unsigned int
kIOUSBLanguageIDEnglishUS1033

typedeftIOUSBLanguageID

typedef enum tIOUSBLanguageID tIOUSBLanguageID

structIOUSBStringDescriptor

@typedef IOUSBStringDescriptor @discussion Descriptor for a USB Strings. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 2.0 9.6.7: String
size 3, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_t[1]bString

typedefIOUSBStringDescriptor

typedef struct IOUSBStringDescriptor IOUSBStringDescriptor

enumtIOUSBDeviceCapabilityType

underlying type unsigned int
kIOUSBDeviceCapabilityTypeWireless1USB 3.0 Table 9-13
kIOUSBDeviceCapabilityTypeUSB20Extension2
kIOUSBDeviceCapabilityTypeSuperSpeed3
kIOUSBDeviceCapabilityTypeContainerID4
kIOUSBDeviceCapabilityTypePlatform5USB 3.1 Table 9-14
kIOUSBDeviceCapabilityTypePowerDelivery6
kIOUSBDeviceCapabilityTypeBatteryInfo7
kIOUSBDeviceCapabilityTypePdConsumerPort8
kIOUSBDeviceCapabilityTypePdProviderPort9
kIOUSBDeviceCapabilityTypeSuperSpeedPlus10
kIOUSBDeviceCapabilityTypePrecisionMeasurement11
kIOUSBDeviceCapabilityTypeWirelessExt12
kIOUSBDeviceCapabilityTypeBillboard13
kIOUSBDeviceCapabilityTypeBillboardAltMode15

typedeftIOUSBDeviceCapabilityType

typedef enum tIOUSBDeviceCapabilityType tIOUSBDeviceCapabilityType

structIOUSBBOSDescriptor

@typedef IOUSBBOSDescriptor @discussion USB BOS descriptor. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 3.0 9.6.2: Binary Device Object Store (BOS)
size 5, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_twTotalLength
uint8_tbNumDeviceCaps

typedefIOUSBBOSDescriptor

typedef struct IOUSBBOSDescriptor IOUSBBOSDescriptor

structIOUSBDeviceCapabilityDescriptorHeader

@typedef IOUSBDeviceCapabilityDescriptorHeader @discussion Device Capability descriptor. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 3.0 9.6.2: Binary Device Object Store (BOS)
size 3, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType

typedefIOUSBDeviceCapabilityDescriptorHeader

typedef struct IOUSBDeviceCapabilityDescriptorHeader IOUSBDeviceCapabilityDescriptorHeader

structIOUSBDeviceCapabilityUSB2Extension

@typedef IOUSBDeviceCapabilityUSB2Extension @discussion Device Capability USB 2.0 Extension. USB 3.0 9.6.2.1: USB 2.0 Extension
size 7, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint32_tbmAttributes

typedefIOUSBDeviceCapabilityUSB2Extension

typedef struct IOUSBDeviceCapabilityUSB2Extension IOUSBDeviceCapabilityUSB2Extension

enum(anonymous)

underlying type unsigned int
kIOUSBUSB20ExtensionCapabilityLPM2
kIOUSBUSB20ExtensionCapabilityBESLSupport4From USB 2.0 ECN Errata for Link Power Management.
kIOUSBUSB20ExtensionCapabilityBESLValid8
kIOUSBUSB20ExtensionCapabilityBESLDValid16
kIOUSBUSB20ExtensionCapabilityBESL3840
kIOUSBUSB20ExtensionCapabilityBESLPhase8
kIOUSBUSB20ExtensionCapabilityBESLD61440
kIOUSBUSB20ExtensionCapabilityBESLDPhase12

structIOUSBDeviceCapabilitySuperSpeedUSB

@typedef IOUSBDeviceCapabilitySuperSpeedUSB @discussion Device Capability SuperSpeed USB. USB 3.0 9.6.2.2: SuperSpeed USB Device Capability
size 10, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tbmAttributes
uint16_twSpeedsSupported
uint8_tbFunctionalitySupport
uint8_tbU1DevExitLat
uint16_twU2DevExitLat

typedefIOUSBDeviceCapabilitySuperSpeedUSB

typedef struct IOUSBDeviceCapabilitySuperSpeedUSB IOUSBDeviceCapabilitySuperSpeedUSB

enum(anonymous)

underlying type unsigned int
kIOUSBSuperSpeedDeviceCapabilityLTM2
kIOUSBSuperSpeedDeviceCapabilityLowSpeed1
kIOUSBSuperSpeedDeviceCapabilityFullSpeed2
kIOUSBSuperSpeedDeviceCapabilityHighSpeed4
kIOUSBSuperSpeedDeviceCapability5Gb8
kIOUSBSuperSpeedDeviceCapabilitySupportLowSpeed0
kIOUSBSuperSpeedDeviceCapabilitySupportFullSpeed1
kIOUSBSuperSpeedDeviceCapabilitySupportHighSpeed2
kIOUSBSuperSpeedDeviceCapabilitySupport5Gb3
kIOUSBSuperSpeedDeviceCapabilityU1DevExitLatMax10
kIOUSBSuperSpeedDeviceCapabilityU2DevExitLatMax2047

structIOUSBDeviceCapabilitySuperSpeedPlusUSB

@typedef IOUSBDeviceCapabilitySuperSpeedPlusUSB @discussion Device Capability SuperSpeedPlus USB. USB 3.1 9.6.2.5: SuperSpeedPlus USB Device Capability
size 12, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tbReserved
uint32_tbmAttributes
uint16_twFunctionalitySupport
uint16_twReserved
uint32_t[]bmSublinkSpeedAttr

typedefIOUSBDeviceCapabilitySuperSpeedPlusUSB

typedef struct IOUSBDeviceCapabilitySuperSpeedPlusUSB IOUSBDeviceCapabilitySuperSpeedPlusUSB

enum(anonymous)

underlying type unsigned int
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCount31bmAttributes
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCountPhase0
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCount480
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCountPhase5
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedId15wFunctionalitySupport
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedIdPhase0
kIOUSBSuperSpeedPlusDeviceCapabilityReserved240
kIOUSBSuperSpeedPlusDeviceCapabilityReservedPhase4
kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCount3840
kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCountPhase8
kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCount61440
kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCountPhase12
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedId15bmSublinkSpeedAttr
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdPhase0
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSE48
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase4
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEBits0
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEKbits16
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEMbits32
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEGbits48
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkType192
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkTypePhase6
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetry64
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetryPhase6
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetric0
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkAsymmetric64
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirection128
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionPhase7
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionRx0
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionTx128
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReserved16128
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReservedPhase8
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocol49152
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocolPhase14
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissa4294901760
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissaPhase16

structIOUSBDeviceCapabilityContainerID

@typedef IOUSBDeviceCapabilityContainerID @discussion Device Capability Container ID. USB 3.0 9.6.2.3: Container ID
size 20, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tbReservedID
uint8_t[16]containerID

typedefIOUSBDeviceCapabilityContainerID

typedef struct IOUSBDeviceCapabilityContainerID IOUSBDeviceCapabilityContainerID

structIOUSBPlatformCapabilityDescriptor

@typedef IOUSBPlatformCapabilityDescriptor @discussion Device Capability Platform Descriptor. USB 3.1 9.6.2.4: Platform Descriptor
size 20, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tbReserved
uuid_tPlatformCapabilityUUID

typedefIOUSBPlatformCapabilityDescriptor

typedef struct IOUSBPlatformCapabilityDescriptor IOUSBPlatformCapabilityDescriptor

structIOUSBDeviceCapabilityBillboardAltConfigCompatibility

@typedef IOUSBDeviceCapabilityBillboardAltConfig @discussion Device Capability Billboard Alternate Setting Info. USB Billboard 3.1.6.2: Billboard Capability Descriptor V1.2
size 7, align 1 · packed
uint16_twSVID
uint32_tdwAlternateMode
uint8_tiAlternateModeString

typedefIOUSBDeviceCapabilityBillboardAltConfigCompatibility

typedef struct IOUSBDeviceCapabilityBillboardAltConfigCompatibility IOUSBDeviceCapabilityBillboardAltConfigCompatibility

structIOUSBDeviceCapabilityBillboardAltConfig

@typedef IOUSBDeviceCapabilityBillboardAltConfig @discussion Device Capability Billboard Alternate Setting Info. USB Billboard 3.1.6.2: Billboard Capability Descriptor V1.1 and 1.21+
size 4, align 1 · packed
uint16_twSVID
uint8_tbAltenateMode
uint8_tiAlternateModeString

typedefIOUSBDeviceCapabilityBillboardAltConfig

typedef struct IOUSBDeviceCapabilityBillboardAltConfig IOUSBDeviceCapabilityBillboardAltConfig

structIOUSBDeviceCapabilityBillboard

@typedef IOUSBDeviceCapabilityBillboard @discussion Device Capability Billboard. USB Billboard 3.1.6.2: Billboard Capability Descriptor
size 44, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tiAdditionalInfoURL
uint8_tbNumberOfAlternateModes
uint8_tbPreferredAlternateMode
uint16_tvCONNPower
uint8_t[32]bmConfigured
uint16_tbcdVersion
uint8_tbAdditionalFailureInfo
uint8_tbReserved
IOUSBDeviceCapabilityBillboardAltConfig[]pAltConfigurations

typedefIOUSBDeviceCapabilityBillboard

typedef struct IOUSBDeviceCapabilityBillboard IOUSBDeviceCapabilityBillboard

structIOUSBDeviceCapabilityBillboardAltMode

@typedef IOUSBDeviceCapabilityBillboardAltMode @discussion Device Capability Billboard Alternate mode. USB Billboard 3.1.6.3: Billboard Capability Descriptor V1.21
size 8, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbDevCapabilityType
uint8_tbIndex
uint32_tdwAlternateModeVdo

typedefIOUSBDeviceCapabilityBillboardAltMode

typedef struct IOUSBDeviceCapabilityBillboardAltMode IOUSBDeviceCapabilityBillboardAltMode

structIOUSBInterfaceAssociationDescriptor

@typedef IOUSBInterfaceAssociationDescriptor @discussion USB Inerface Association Descriptor. ECN to the USB 2.0 Spec. See the USB Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>. USB 3.0 9.6.4: Interface Association
size 8, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbFirstInterface
uint8_tbInterfaceCount
uint8_tbFunctionClass
uint8_tbFunctionSubClass
uint8_tbFunctionProtocol
uint8_tiFunction

typedefIOUSBInterfaceAssociationDescriptor

typedef struct IOUSBInterfaceAssociationDescriptor IOUSBInterfaceAssociationDescriptor

structIOUSBSuperSpeedEndpointCompanionDescriptor

@typedef IOUSBSuperSpeedEndpointCompanionDescriptor @discussion Descriptor for a SuperSpeed USB Endpoint Companion. See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 3.1 9.6.7: SuperSpeed Endpoint Companion
size 6, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbMaxBurst
uint8_tbmAttributes
uint16_twBytesPerInterval

typedefIOUSBSuperSpeedEndpointCompanionDescriptor

typedef struct IOUSBSuperSpeedEndpointCompanionDescriptor IOUSBSuperSpeedEndpointCompanionDescriptor

enum(anonymous)

underlying type unsigned int
kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurst255
kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurstPhase0
kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreams31
kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreamsPhase0
kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReserved224
kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReservedPhase5
kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMult3
kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMultPhase0
kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReserved124
kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReservedPhase2
kIOUSBSuperSpeedEndpointCompanionDescriptorSSPIsocCompanion128

structIOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor

@typedef IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor @discussion Descriptor for a SuperSpeedPlus Isochronout USB Endpoint Companion. See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 3.1 9.6.8: SuperSpeedPlus Isochronous Endpoint Companion
size 8, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint16_twReserved
uint32_tdwBytesPerInterval

typedefIOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor

typedef struct IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor

structIOUSB20HubDescriptor

@typedef IOUSB20HubDescriptor @discussion Descriptor for a USB hub. See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 2.0 11.23.2.1: Hub Descriptor
size 11, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbNumberPorts
uint16_twHubCharacteristics
uint8_tbPowerOnToPowerGood
uint8_tbHubControllerCurrent
uint8_t[2]deviceRemovableTechnically variable size
uint8_t[2]reservedUnused

typedefIOUSB20HubDescriptor

typedef struct IOUSB20HubDescriptor IOUSB20HubDescriptor

structIOUSBSuperSpeedHubDescriptor

@typedef IOUSBSuperSpeedHubDescriptor @discussion Descriptor for a Super Speed USB hub. See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 3.0 10.13.2.1: SuperSpeed Hub Descriptor
size 12, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbNumberPorts
uint16_twHubCharacteristics
uint8_tbPowerOnToPowerGood
uint8_tbHubControllerCurrent
uint8_tbHubDecodeLatency
uint16_twHubDelay
uint16_tdeviceRemovable

typedefIOUSBSuperSpeedHubDescriptor

typedef struct IOUSBSuperSpeedHubDescriptor IOUSBSuperSpeedHubDescriptor

enum(anonymous)

underlying type unsigned int
kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingMask3
kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingGanged0
kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingIndividual1
kIOUSBSuperSpeedHubCharacteristicsCompoundDevice4
kIOUSBSuperSpeedHubCharacteristicsOverCurrentMask24
kIOUSBSuperSpeedHubCharacteristicsOverCurrentGlobal0
kIOUSBSuperSpeedHubCharacteristicsOverCurrentIndividual8
kIOUSBSuperSpeedHubCharacteristicsReserved65504
kIOUSBSuperSpeedHubDecodeLatencyMax10
kIOUSBSuperSpeedHubDelayMax400

structUASPipeDescriptor

@typedef UASPipeDescriptor @discussion Structure used to specify the Mass Storage Specific UAS pipe usage descriptor
size 4, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbPipeID
uint8_tbReserved

typedefUASPipeDescriptor

typedef struct UASPipeDescriptor UASPipeDescriptor

structIOUSBHIDDescriptor

@typedef IOUSBHIDDescriptor @discussion USB HID Descriptor. See the USB HID Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>.
size 9, align 1 · packed
uint8_tdescLen
uint8_tdescType
uint16_tdescVersNum
uint8_thidCountryCode
uint8_thidNumDescriptors
uint8_thidDescriptorType
uint8_thidDescriptorLengthLo
uint8_thidDescriptorLengthHi

typedefIOUSBHIDDescriptor

typedef struct IOUSBHIDDescriptor IOUSBHIDDescriptor

structIOUSBHIDReportDesc

@typedef IOUSBHIDReportDesc @discussion USB HID Report Descriptor header. See the USB HID Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>.
size 3, align 1 · packed
uint8_thidDescriptorType
uint8_thidDescriptorLengthLo
uint8_thidDescriptorLengthHi

typedefIOUSBHIDReportDesc

typedef struct IOUSBHIDReportDesc IOUSBHIDReportDesc

structIOUSBDFUDescriptor

@typedef IOUSBDFUDescriptor @discussion USB Device Firmware Update Descriptor. See the USB Device Firmware Update Specification at <a href="http://www.usb.org" target="_blank">http://www.usb.org</a>.
size 7, align 1 · packed
uint8_tbLength
uint8_tbDescriptorType
uint8_tbmAttributes
uint16_twDetachTimeout
uint16_twTransferSize

typedefIOUSBDFUDescriptor

typedef struct IOUSBDFUDescriptor IOUSBDFUDescriptor

structIOUSBDeviceRequest

@typedef IOUSBDeviceRequest @discussion Standard device request. See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 2.0 9.3: USB Device Requests
size 8, align 1 · packed
uint8_tbmRequestType
uint8_tbRequest
uint16_twValue
uint16_twIndex
uint16_twLength

typedefIOUSBDeviceRequest

typedef struct IOUSBDeviceRequest IOUSBDeviceRequest

structIOUSBDeviceRequestSetSELData

@typedef IOUSBDeviceRequestSetSELData @discussion See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 3.0 9.4.12: Set SEL Standard Device Request
size 6, align 1 · packed
uint8_tu1SelTime in μs for U1 System Exit Latency
uint8_tu1PelTime in μs for U1 Device to Host Exit Latency
uint16_tu2SelTime in μs for U2 System Exit Latency
uint16_tu2PelTime in μs for U2 Device to Host Exit Latency

typedefIOUSBDeviceRequestSetSELData

typedef struct IOUSBDeviceRequestSetSELData IOUSBDeviceRequestSetSELData

enumtIOUSBDeviceRequestDirectionValue

@enum tIOUSBDeviceRequestDirectionValue @brief Values of 'direction' field of a device request @constant kIOUSBDeviceRequestDirectionValueOut the device request data phase direction is host-to-device @constant kIOUSBDeviceRequestDirectionValueIn the device request data phase direction is device-to-host
underlying type unsigned int
kIOUSBDeviceRequestDirectionValueOut0
kIOUSBDeviceRequestDirectionValueIn1

typedeftIOUSBDeviceRequestDirectionValue

typedef enum tIOUSBDeviceRequestDirectionValue tIOUSBDeviceRequestDirectionValue

enumtIOUSBDeviceRequestTypeValue

@enum tIOUSBDeviceRequestType @brief Values of 'type' field of a device request @constant kIOUSBDeviceRequestTypeValueStandard the device request is a standard device request @constant kIOUSBDeviceRequestTypeValueClass the device request is a class specified device request @constant kIOUSBDeviceRequestTypeValueVendor the device request is a vendor specified device request
underlying type unsigned int
kIOUSBDeviceRequestTypeValueStandard0
kIOUSBDeviceRequestTypeValueClass1
kIOUSBDeviceRequestTypeValueVendor2

typedeftIOUSBDeviceRequestTypeValue

typedef enum tIOUSBDeviceRequestTypeValue tIOUSBDeviceRequestTypeValue

enumtIOUSBDeviceRequestRecipientValue

@enum tIOUSBDeviceRequestRecipientValue @brief Values of 'recipient' field of a device request @constant kIOUSBDeviceRequestRecipientValueDevice the device request's recipient is a device @constant kIOUSBDeviceRequestRecipientValueInterface the device request's recipient is an interface @constant kIOUSBDeviceRequestRecipientValueEndpoint the device request's recipient is an endpoint @constant kIOUSBDeviceRequestRecipientValueOther the device request's recipient is an other type
underlying type unsigned int
kIOUSBDeviceRequestRecipientValueDevice0
kIOUSBDeviceRequestRecipientValueInterface1
kIOUSBDeviceRequestRecipientValueEndpoint2
kIOUSBDeviceRequestRecipientValueOther3

typedeftIOUSBDeviceRequestRecipientValue

typedef enum tIOUSBDeviceRequestRecipientValue tIOUSBDeviceRequestRecipientValue

enumtIOUSBDeviceRequest

underlying type unsigned int
kIOUSBDeviceRequestSize8
kIOUSBDeviceRequestDirectionMask128
kIOUSBDeviceRequestDirectionPhase7
kIOUSBDeviceRequestDirectionOut0
kIOUSBDeviceRequestDirectionIn128
kIOUSBDeviceRequestTypeMask96
kIOUSBDeviceRequestTypePhase5
kIOUSBDeviceRequestTypeStandard0
kIOUSBDeviceRequestTypeClass32
kIOUSBDeviceRequestTypeVendor64
kIOUSBDeviceRequestRecipientMask31
kIOUSBDeviceRequestRecipientPhase0
kIOUSBDeviceRequestRecipientDevice0
kIOUSBDeviceRequestRecipientInterface1
kIOUSBDeviceRequestRecipientEndpoint2
kIOUSBDeviceRequestRecipientOther3

enum(anonymous)

USB 2.0 9.4: Standard Device Requests USB 3.0 9.4: Standard Device Requests
underlying type unsigned int
kIOUSBDeviceRequestGetStatus0
kIOUSBDeviceRequestClearFeature1
kIOUSBDeviceRequestGetState2
kIOUSBDeviceRequestSetFeature3
kIOUSBDeviceRequestSetAddress5
kIOUSBDeviceRequestGetDescriptor6
kIOUSBDeviceRequestSetDescriptor7
kIOUSBDeviceRequestGetConfiguration8
kIOUSBDeviceRequestSetConfiguration9
kIOUSBDeviceRequestGetInterface10
kIOUSBDeviceRequestSetInterface11
kIOUSBDeviceRequestSynchFrame12
kIOUSBDeviceRequestSetSel48
kIOUSBDeviceRequestSetIsochronousDelay49

enum(anonymous)

USB 2.0 9.4.5: Get Status USB 3.0 9.4.5: Get Status
underlying type unsigned int
kIOUSBDeviceStatusSelfPowered1
kIOUSBDeviceStatusRemoteWakeEnable2
kIOUSBDeviceStatusU1Enable4
kIOUSBDeviceStatusU2Enable8
kIOUSBDeviceStatusLTMEnable16
kIOUSBInterfaceStatusRemoteWakeCapable1
kIOUSBInterfaceStatusRemoteWakeEnable2
IOUSBEndpointStatusHalt1

enum(anonymous)

USB 2.0 Table 9-6: Standard Feature Selectors USB 3.0 Table 9-7: Standard Feature Selectors
underlying type unsigned int
kIOUSBDeviceFeatureSelectorRemoteWakeup1
kIOUSBDeviceFeatureSelectorTestMode2
kIOUSBDeviceFeatureSelectorU1Enable48
kIOUSBDeviceFeatureSelectorU2Enable49
kIOUSBDeviceFeatureSelectorLTMEnable50
kIOUSBInterfaceFeatureSelectorSuspend0
IOUSBEndpointFeatureSelectorStall0

enum(anonymous)

USB 3.0 Table 9-8: Suspend Options
underlying type unsigned int
kIOUSBInterfaceSuspendLowPower1
kIOUSBInterfaceSuspendRemoteWakeEnable2

enum(anonymous)

USB 3.0 Table 10-16: Hub Parameters
underlying type unsigned int
kIOUSBHubPort2PortExitLatencyNs1000
kIOUSBHubDelayNs400

enum(anonymous)

USB 3.0 Table 8-33: Timing Parameters
underlying type unsigned int
kIOUSBPingResponseTimeNs400

enumtIOUSBBusVoltage

underlying type unsigned int
kIOUSBBusVoltageDefault5

enumtIOUSB20BusCurrent

underlying type unsigned int
kIOUSB20BusCurrentMinimum100
kIOUSB20BusCurrentDefault500
kIOUSB20BusCurrentMaxPowerUnits2

enumtIOUSB30BusCurrent

underlying type unsigned int
kIOUSB30BusCurrentMinimum150
kIOUSB30BusCurrentDefault900
kIOUSB30BusCurrentMaxPowerUnits8

enumtIOUSBTopology

USB 2.0 4.1.1
underlying type unsigned int
kIOUSBTopologyHost1
kIOUSBTopologyRootPort2
kIOUSBTopology1Hub3
kIOUSBTopology2Hub4
kIOUSBTopology3Hub5
kIOUSBTopology4Hub6
kIOUSBTopology5Hub7
kIOUSBTopologyTierLimit7

enumtIOUSB30ResetTimeout

USB 3.0 Table 6-21
underlying type unsigned int
kIOUSB30ResetMinimumTimeout80
kIOUSB30ResetTypicalTimeout100
kIOUSB30ResetMaximumTimeout120
kIOUSB30ResetMaximumWithMarginTimeout150

enumtIOUSB30LinkStateTimeout

USB 3.0 Table 7-12
underlying type unsigned int
kIOUSB30LinkStateSSInactiveQuietTimeout12
kIOUSB30LinkStateRxDetectQuietTimeout12
kIOUSB30LinkStatePollingLFPSTimeout360
kIOUSB30LinkStatePollingActiveTimeout12
kIOUSB30LinkStatePollingConfigurationTimeout12
kIOUSB30LinkStatePollingIdleTimeout2
kIOUSB30LinkStateU0RecoveryTimeout1
kIOUSB30LinkStateU0LTimeout010 microseconds
kIOUSB30LinkStateU1NoLFPSResponseTimeout2
kIOUSB30LinkStateU1PingTimeout300
kIOUSB30LinkStateU2NoLFPSResponseTimeout2
kIOUSB30LinKStateU2RxDetectDelay100
kIOUSB30LinkStateU3NoLFPSResponseTimeout10
kIOUSB30LinkStateU3WakeupRetryDelay100
kIOUSB30LinkStateU3RxDetectDelay100
kIOUSB30LinkStateRecoveryActiveTimeout12
kIOUSB30LinkStateRecoveryConfigurationTimeout6
kIOUSB30LinkStateRecoveryIdleTimeout2
kIOUSB30LinkStateLoopbackExitTimeout2
kIOUSB30LinkStateHotResetActiveTimeout12
kIOUSB30LinkStateHotResetExitTimeout2
kIOUSB30LinkStatePollingDeadline387USB 3.0 7.5.4
kIOUSB30LinkStateSSResumeDeadline130USB 3.0 7.5.9 and 7.5.10
kIOUSB30LinkStateRecoveryDeadline21USB 3.0 7.5.10
kIOUSB30LinkStateHotResetDeadline15USB 3.0 7.5.12 margin

enumtIOUSB30DeviceNotificationType

USB 3.1 Table 8-18
underlying type unsigned int
kIOUSB30DeviceNotificationTypeFunctionWake1
kIOUSB30DeviceNotificationTypeLatencyTolerance2
kIOUSB30DeviceNotificationTypeBusIntervalAdjustment3
kIOUSB30DeviceNotificationTypeHostRoleRequest4
kIOUSB30DeviceNotificationTypeSublinkSpeed5

enumtIOUSB30TimingParameters

USB 3.1 Table 8-36
underlying type unsigned int
kIOUSB30TimingParameterBELTDefaultNs1000000
kIOUSB30TimingParameterBELTMinNs125000

enumtIOUSB30HubPortStatusCode

USB 3.1 Table 10-12 Port Status Type Codes
underlying type unsigned int
kIOUSB30HubPortStatusCodeStandard0
kIOUSB30HubPortStatusCodePD1
kIOUSB30HubPortStatusCodeExt2
kIOUSB30HubPortStatusCodeCount3

enum(anonymous)

USB 3.2 E.1.2
underlying type unsigned int
kIOUSB30RetimerDepthLimit4

structIOUSB30HubPortStatusExt

@typedef IOUSB30HubPortStatusExt @discussion See the USB Specification at <a href="http://www.usb.org"TARGET="_blank">http://www.usb.org</a>. USB 3.1 10.16.2.6 Get Port Status
size 8, align 1 · packed
uint16_twPortStatus
uint16_twPortChange
uint32_tdwExtPortStatus

enumtIOUSB30HubExtStatus

USB 3.1 Table 10-11. Note, offsets are specific to dwExtPortStatus
underlying type unsigned int
kIOUSB30HubExtStatusRxSublinkSpeedID15
kIOUSB30HubExtStatusRxSublinkSpeedIDPhase0
kIOUSB30HubExtStatusTxSublinkSpeedID240
kIOUSB30HubExtStatusTxSublinkSpeedIDPhase4
kIOUSB30HubExtStatusRxLaneCount3840
kIOUSB30HubExtStatusRxLaneCountPhase8
kIOUSB30HubExtStatusTxLaneCount61440
kIOUSB30HubExtStatusTxLaneCountPhase12

enumtIOUSB40LinkStateTimeout

USB 4.0 V2 Table 9-12
underlying type unsigned int
kPortReadyTimeout1100ms
kKeepAliveTimeout20us