#include <IOKit/usb/AppleUSBDefinitions.h>
IOKit/usb/AppleUSBDefinitions.h Kernel.framework 42 typedefs · 39 enums · 31 structs · 17 macros
#define AppleUSBCommon_AppleUSBDefinitions_h #define IOUSBBit(bit) ((uint32_t)(1) << bit) #define IOUSBBitRange(start, end) (~(((uint32_t)(1) << start) - 1) & (((uint32_t)(1) << end) | (((uint32_t)(1) << end) - 1))) #define IOUSBBitRange64(start, end) (~(((uint64_t)(1) << start) - 1) & (((uint64_t)(1) << end) | (((uint64_t)(1) << end) - 1))) #define IOUSBBitRangePhase(start, end) (start) underlying type unsigned long
kIOUSBLinkSpeedLow 1500000 kIOUSBLinkSpeedFull 12000000 kIOUSBLinkSpeedHigh 480000000 kIOUSBLinkSpeed5Gbps 5000000000 kIOUSBLinkSpeed10Gbps 10000000000 kIOUSBLinkSpeed20Gbps 20000000000 kIOUSBLinkSpeed40Gbps 40000000000 kIOUSBLinkSpeed80Gbps 80000000000
@enum kIOUSBAppleVendorID
@discussion Apple's vendor ID, assigned by the USB-IF
underlying type unsigned int
@enum tIOUSBDescriptorType
@brief Descriptor types defined by USB 2.0 Table 9-5 and USB 3.0 Table 9-6
underlying type unsigned int
kIOUSBDescriptorTypeDevice 1 kIOUSBDescriptorTypeConfiguration 2 kIOUSBDescriptorTypeString 3 kIOUSBDescriptorTypeInterface 4 kIOUSBDescriptorTypeEndpoint 5 kIOUSBDescriptorTypeDeviceQualifier 6 kIOUSBDescriptorTypeOtherSpeedConfiguration 7 kIOUSBDescriptorTypeInterfacePower 8 kIOUSBDescriptorTypeOTG 9 kIOUSBDescriptorTypeDebug 10 kIOUSBDescriptorTypeInterfaceAssociation 11 kIOUSBDescriptorTypeBOS 15 kIOUSBDescriptorTypeDeviceCapability 16 kIOUSBDecriptorTypeHID 33 kIOUSBDecriptorTypeReport 34 kIOUSBDescriptorTypePhysical 35 kIOUSBDescriptorTypeHub 41 kIOUSBDescriptorTypeSuperSpeedHub 42 kIOUSBDescriptorTypeSuperSpeedUSBEndpointCompanion 48 kIOUSBDescriptorTypeSuperSpeedPlusIsochronousEndpointCompanion 49
typedef enum tIOUSBDescriptorType tIOUSBDescriptorType @enum tIOUSBDescriptorSize
@brief Size in bytes for descriptor structures
underlying type unsigned int
2 kIOUSBDescriptorSizeDevice 18 kIOUSBDescriptorSizeConfiguration 9 kIOUSBDescriptorSizeInterface 9 kIOUSBDescriptorSizeEndpoint 7 kIOUSBDescriptorSizeStringMinimum 2 kIOUSBDescriptorSizeStringMaximum 255 kIOUSBDescriptorSizeDeviceQualifier 10 kIOUSBDescriptorSizeInterfaceAssociation 8 kIOUSBDescriptorSizeBOS 5 kIOUSBDescriptorSizeDeviceCapability 3 kIOUSBDescriptorSizeUSB20ExtensionCapability 7 kIOUSBDescriptorSizeSuperSpeedUSBDeviceCapability 10 kIOUSBDescriptorSizeContainerIDCapability 20 kIOUSBDescriptorSizeHubMinimum 9 kIOUSBDescriptorSizeHubMaximum 21 kIOUSBDescriptorSizeSuperSpeedHub 12 kIOUSBDescriptorSizeSuperSpeedUSBEndpointCompanion 6 kIOUSBDescriptorSizeSuperSpeedPlusIsochronousEndpointCompanion 8 kIOUSBDescriptorSizeBillboardDeviceMinimum 44 kIOUSBDescriptorSizeBillboardDeviceMaximum 256 kIOUSBDescriptorSizePlatformECIDCapability 28 kIOUSBDescriptorSizePlatformCapability 20
typedef enum tIOUSBDescriptorSize tIOUSBDescriptorSize @brief Base descriptor defined by USB 2.0 9.5
@discussion Used to represent generic descriptor definitions
typedef IOUSBDescriptorHeader IOUSBDescriptor @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_t bLength uint8_t bDescriptorType uint16_t bcdUSB uint8_t bDeviceClass uint8_t bDeviceSubClass uint8_t bDeviceProtocol uint8_t bMaxPacketSize0 uint16_t idVendor uint16_t idProduct uint16_t bcdDevice uint8_t iManufacturer uint8_t iProduct uint8_t iSerialNumber uint8_t bNumConfigurations
typedef struct IOUSBDeviceDescriptor IOUSBDeviceDescriptor @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_t bLength uint8_t bDescriptorType uint16_t bcdUSB uint8_t bDeviceClass uint8_t bDeviceSubClass uint8_t bDeviceProtocol uint8_t bMaxPacketSize0 uint8_t bNumConfigurations uint8_t bReserved
typedef struct IOUSBDeviceQualifierDescriptor IOUSBDeviceQualifierDescriptor @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_t bLength uint8_t bDescriptorType uint16_t wTotalLength uint8_t bNumInterfaces uint8_t bConfigurationValue uint8_t iConfiguration uint8_t bmAttributes uint8_t MaxPower
typedef struct IOUSBConfigurationDescriptor IOUSBConfigurationDescriptor underlying type unsigned int
kIOUSBConfigurationDescriptorAttributeRemoteWakeCapable 32 kIOUSBConfigurationDescriptorAttributeSelfPowered 64
@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_t bLength uint8_t bDescriptorType uint8_t bInterfaceNumber uint8_t bAlternateSetting uint8_t bNumEndpoints uint8_t bInterfaceClass uint8_t bInterfaceSubClass uint8_t bInterfaceProtocol uint8_t iInterface
typedef struct IOUSBInterfaceDescriptor IOUSBInterfaceDescriptor @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_t bLength uint8_t bDescriptorType uint8_t bEndpointAddress uint8_t bmAttributes uint16_t wMaxPacketSize uint8_t bInterval
typedef struct IOUSBEndpointDescriptor IOUSBEndpointDescriptor underlying type unsigned int
kIOUSBEndpointDescriptorNumber 15 kIOUSBEndpointDescriptorNumberPhase 0 kIOUSBEndpointDescriptorEndpointAddressReserved 112 kIOUSBEndpointDescriptorDirection 128 kIOUSBEndpointDescriptorDirectionPhase 7 kIOUSBEndpointDescriptorDirectionOut 0 kIOUSBEndpointDescriptorDirectionIn 128 kIOUSBEndpointDescriptorTransferType 3 kIOUSBEndpointDescriptorTransferTypePhase 0 kIOUSBEndpointDescriptorTransferTypeControl 0 kIOUSBEndpointDescriptorTransferTypeIsochronous 1 kIOUSBEndpointDescriptorTransferTypeBulk 2 kIOUSBEndpointDescriptorTransferTypeInterrupt 3 kIOUSBEndpointDescriptorSynchronizationType 12 kIOUSBEndpointDescriptorSynchronizationTypePhase 2 kIOUSBEndpointDescriptorSynchronizationTypeNone 0 kIOUSBEndpointDescriptorSynchronizationTypeAsynchronous 4 kIOUSBEndpointDescriptorSynchronizationTypeAdaptive 8 kIOUSBEndpointDescriptorSynchronizationTypeSynchronous 12 kIOUSBEndpointDescriptorUsageType 48 kIOUSBEndpointDescriptorUsageTypePhase 4 kIOUSBEndpointDescriptorUsageTypeInterruptPeriodic 0 kIOUSBEndpointDescriptorUsageTypeInterruptNotification 16 kIOUSBEndpointDescriptorUsageTypeInterruptReserved1 32 kIOUSBEndpointDescriptorUsageTypeInterruptReserved2 48 kIOUSBEndpointDescriptorUsageTypeIsocData 0 kIOUSBEndpointDescriptorUsageTypeIsocFeedback 16 kIOUSBEndpointDescriptorUsageTypeIsocImplicit 32 kIOUSBEndpointDescriptorUsageTypeIsocReserved 48 kIOUSBEndpointDescriptorPacketSize 2047 kIOUSBEndpointDescriptorPacketSizePhase 0 kIOUSBEndpointDescriptorPacketSizeMult 6144 kIOUSBEndpointDescriptorPacketSizeMultPhase 11 kIOUSBEndpointDescriptorReserved 57344 kIOUSBEndpointDescriptorReservedPhase 13
@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
kIOUSBEndpointDirectionOut 0 kIOUSBEndpointDirectionIn 1 kIOUSBEndpointDirectionUnknown 2
typedef enum tIOUSBEndpointDirection tIOUSBEndpointDirection @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
kIOUSBEndpointTypeControl 0 kIOUSBEndpointTypeIsochronous 1 kIOUSBEndpointTypeBulk 2 kIOUSBEndpointTypeInterrupt 3
typedef enum tIOUSBEndpointType tIOUSBEndpointType underlying type unsigned int
kIOUSBEndpointSynchronizationTypeNone 0 kIOUSBEndpointSynchronizationTypeAsynchronous 1 kIOUSBEndpointSynchronizationTypeAdaptive 2 kIOUSBEndpointSynchronizationTypeSynchronous 3
typedef enum tIOUSBEndpointSynchronizationType tIOUSBEndpointSynchronizationType underlying type unsigned int
kIOUSBEndpointUsageTypeIsocData 0 kIOUSBEndpointUsageTypeIsocFeedback 1 kIOUSBEndpointUsageTypeIsocImplicit 2
typedef enum tIOUSBEndpointUsageType tIOUSBEndpointUsageType @enum tIOUSBLanguageID
@brief USB Language Identifiers 1.0
underlying type unsigned int
kIOUSBLanguageIDEnglishUS 1033
typedef enum tIOUSBLanguageID tIOUSBLanguageID @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_t bLength uint8_t bDescriptorType uint8_t[1] bString
typedef struct IOUSBStringDescriptor IOUSBStringDescriptor underlying type unsigned int
kIOUSBDeviceCapabilityTypeWireless 1 USB 3.0 Table 9-13 kIOUSBDeviceCapabilityTypeUSB20Extension 2 kIOUSBDeviceCapabilityTypeSuperSpeed 3 kIOUSBDeviceCapabilityTypeContainerID 4 kIOUSBDeviceCapabilityTypePlatform 5 USB 3.1 Table 9-14 kIOUSBDeviceCapabilityTypePowerDelivery 6 kIOUSBDeviceCapabilityTypeBatteryInfo 7 kIOUSBDeviceCapabilityTypePdConsumerPort 8 kIOUSBDeviceCapabilityTypePdProviderPort 9 kIOUSBDeviceCapabilityTypeSuperSpeedPlus 10 kIOUSBDeviceCapabilityTypePrecisionMeasurement 11 kIOUSBDeviceCapabilityTypeWirelessExt 12 kIOUSBDeviceCapabilityTypeBillboard 13 kIOUSBDeviceCapabilityTypeBillboardAltMode 15
typedef enum tIOUSBDeviceCapabilityType tIOUSBDeviceCapabilityType @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_t bLength uint8_t bDescriptorType uint16_t wTotalLength uint8_t bNumDeviceCaps
typedef struct IOUSBBOSDescriptor IOUSBBOSDescriptor @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_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint32_t bmAttributes
typedef struct IOUSBDeviceCapabilityUSB2Extension IOUSBDeviceCapabilityUSB2Extension underlying type unsigned int
kIOUSBUSB20ExtensionCapabilityLPM 2 kIOUSBUSB20ExtensionCapabilityBESLSupport 4 From USB 2.0 ECN Errata for Link Power Management. kIOUSBUSB20ExtensionCapabilityBESLValid 8 kIOUSBUSB20ExtensionCapabilityBESLDValid 16 kIOUSBUSB20ExtensionCapabilityBESL 3840 kIOUSBUSB20ExtensionCapabilityBESLPhase 8 kIOUSBUSB20ExtensionCapabilityBESLD 61440 kIOUSBUSB20ExtensionCapabilityBESLDPhase 12
@typedef IOUSBDeviceCapabilitySuperSpeedUSB
@discussion Device Capability SuperSpeed USB. USB 3.0 9.6.2.2: SuperSpeed USB Device Capability
size 10, align 1 · packed
uint8_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint8_t bmAttributes uint16_t wSpeedsSupported uint8_t bFunctionalitySupport uint8_t bU1DevExitLat uint16_t wU2DevExitLat
typedef struct IOUSBDeviceCapabilitySuperSpeedUSB IOUSBDeviceCapabilitySuperSpeedUSB underlying type unsigned int
kIOUSBSuperSpeedDeviceCapabilityLTM 2 kIOUSBSuperSpeedDeviceCapabilityLowSpeed 1 kIOUSBSuperSpeedDeviceCapabilityFullSpeed 2 kIOUSBSuperSpeedDeviceCapabilityHighSpeed 4 kIOUSBSuperSpeedDeviceCapability5Gb 8 kIOUSBSuperSpeedDeviceCapabilitySupportLowSpeed 0 kIOUSBSuperSpeedDeviceCapabilitySupportFullSpeed 1 kIOUSBSuperSpeedDeviceCapabilitySupportHighSpeed 2 kIOUSBSuperSpeedDeviceCapabilitySupport5Gb 3 kIOUSBSuperSpeedDeviceCapabilityU1DevExitLatMax 10 kIOUSBSuperSpeedDeviceCapabilityU2DevExitLatMax 2047
@typedef IOUSBDeviceCapabilitySuperSpeedPlusUSB
@discussion Device Capability SuperSpeedPlus USB.
USB 3.1 9.6.2.5: SuperSpeedPlus USB Device Capability
size 12, align 1 · packed
uint8_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint8_t bReserved uint32_t bmAttributes uint16_t wFunctionalitySupport uint16_t wReserved uint32_t[] bmSublinkSpeedAttr
typedef struct IOUSBDeviceCapabilitySuperSpeedPlusUSB IOUSBDeviceCapabilitySuperSpeedPlusUSB underlying type unsigned int
kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCount 31 bmAttributes kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedAttrCountPhase 0 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCount 480 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdCountPhase 5 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedId 15 wFunctionalitySupport kIOUSBSuperSpeedPlusDeviceCapabilitySublinkMinSpeedIdPhase 0 kIOUSBSuperSpeedPlusDeviceCapabilityReserved 240 kIOUSBSuperSpeedPlusDeviceCapabilityReservedPhase 4 kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCount 3840 kIOUSBSuperSpeedPlusDeviceCapabilityMinRxLaneCountPhase 8 kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCount 61440 kIOUSBSuperSpeedPlusDeviceCapabilityMinTxLaneCountPhase 12 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedId 15 bmSublinkSpeedAttr kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedIdPhase 0 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSE 48 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEPhase 4 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEBits 0 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEKbits 16 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEMbits 32 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkLSEGbits 48 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkType 192 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkTypePhase 6 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetry 64 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetryPhase 6 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSymmetric 0 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkAsymmetric 64 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirection 128 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionPhase 7 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionRx 0 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkDirectionTx 128 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReserved 16128 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkReservedPhase 8 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocol 49152 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkProtocolPhase 14 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissa 4294901760 kIOUSBSuperSpeedPlusDeviceCapabilitySublinkSpeedMantissaPhase 16
@typedef IOUSBDeviceCapabilityContainerID
@discussion Device Capability Container ID.
USB 3.0 9.6.2.3: Container ID
size 20, align 1 · packed
uint8_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint8_t bReservedID uint8_t[16] containerID
typedef struct IOUSBDeviceCapabilityContainerID IOUSBDeviceCapabilityContainerID @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_t wSVID uint32_t dwAlternateMode uint8_t iAlternateModeString
typedef struct IOUSBDeviceCapabilityBillboardAltConfigCompatibility IOUSBDeviceCapabilityBillboardAltConfigCompatibility @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_t wSVID uint8_t bAltenateMode uint8_t iAlternateModeString
typedef struct IOUSBDeviceCapabilityBillboardAltConfig IOUSBDeviceCapabilityBillboardAltConfig @typedef IOUSBDeviceCapabilityBillboard
@discussion Device Capability Billboard.
USB Billboard 3.1.6.2: Billboard Capability Descriptor
size 44, align 1 · packed
uint8_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint8_t iAdditionalInfoURL uint8_t bNumberOfAlternateModes uint8_t bPreferredAlternateMode uint16_t vCONNPower uint8_t[32] bmConfigured uint16_t bcdVersion uint8_t bAdditionalFailureInfo uint8_t bReserved IOUSBDeviceCapabilityBillboardAltConfig []pAltConfigurations
typedef struct IOUSBDeviceCapabilityBillboard IOUSBDeviceCapabilityBillboard @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_t bLength uint8_t bDescriptorType uint8_t bDevCapabilityType uint8_t bIndex uint32_t dwAlternateModeVdo
typedef struct IOUSBDeviceCapabilityBillboardAltMode IOUSBDeviceCapabilityBillboardAltMode @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_t bLength uint8_t bDescriptorType uint8_t bFirstInterface uint8_t bInterfaceCount uint8_t bFunctionClass uint8_t bFunctionSubClass uint8_t bFunctionProtocol uint8_t iFunction
typedef struct IOUSBInterfaceAssociationDescriptor IOUSBInterfaceAssociationDescriptor @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_t bLength uint8_t bDescriptorType uint8_t bMaxBurst uint8_t bmAttributes uint16_t wBytesPerInterval
typedef struct IOUSBSuperSpeedEndpointCompanionDescriptor IOUSBSuperSpeedEndpointCompanionDescriptor underlying type unsigned int
kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurst 255 kIOUSBSuperSpeedEndpointCompanionDescriptorMaxBurstPhase 0 kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreams 31 kIOUSBSuperSpeedEndpointCompanionDescriptorBulkMaxStreamsPhase 0 kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReserved 224 kIOUSBSuperSpeedEndpointCompanionDescriptorBulkReservedPhase 5 kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMult 3 kIOUSBSuperSpeedEndpointCompanionDescriptorIsocMultPhase 0 kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReserved 124 kIOUSBSuperSpeedEndpointCompanionDescriptorIsocReservedPhase 2 128
@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_t bLength uint8_t bDescriptorType uint16_t wReserved uint32_t dwBytesPerInterval
typedef struct IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor IOUSBSuperSpeedPlusIsochronousEndpointCompanionDescriptor @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_t bLength uint8_t bDescriptorType uint8_t bNumberPorts uint16_t wHubCharacteristics uint8_t bPowerOnToPowerGood uint8_t bHubControllerCurrent uint8_t[2] deviceRemovable Technically variable size uint8_t[2] reserved Unused
typedef struct IOUSB20HubDescriptor IOUSB20HubDescriptor @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_t bLength uint8_t bDescriptorType uint8_t bNumberPorts uint16_t wHubCharacteristics uint8_t bPowerOnToPowerGood uint8_t bHubControllerCurrent uint8_t bHubDecodeLatency uint16_t wHubDelay uint16_t deviceRemovable
typedef struct IOUSBSuperSpeedHubDescriptor IOUSBSuperSpeedHubDescriptor underlying type unsigned int
kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingMask 3 kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingGanged 0 kIOUSBSuperSpeedHubCharacteristicsPowerSwitchingIndividual 1 kIOUSBSuperSpeedHubCharacteristicsCompoundDevice 4 kIOUSBSuperSpeedHubCharacteristicsOverCurrentMask 24 kIOUSBSuperSpeedHubCharacteristicsOverCurrentGlobal 0 kIOUSBSuperSpeedHubCharacteristicsOverCurrentIndividual 8 kIOUSBSuperSpeedHubCharacteristicsReserved 65504 kIOUSBSuperSpeedHubDecodeLatencyMax 10 kIOUSBSuperSpeedHubDelayMax 400
@typedef UASPipeDescriptor
@discussion Structure used to specify the Mass Storage Specific UAS pipe usage descriptor
size 4, align 1 · packed
uint8_t bLength uint8_t bDescriptorType uint8_t bPipeID uint8_t bReserved
typedef struct UASPipeDescriptor UASPipeDescriptor @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_t descLen uint8_t descType uint16_t descVersNum uint8_t hidCountryCode uint8_t hidNumDescriptors uint8_t hidDescriptorType uint8_t hidDescriptorLengthLo uint8_t hidDescriptorLengthHi
typedef struct IOUSBHIDDescriptor IOUSBHIDDescriptor @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_t hidDescriptorType uint8_t hidDescriptorLengthLo uint8_t hidDescriptorLengthHi
typedef struct IOUSBHIDReportDesc IOUSBHIDReportDesc @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_t bLength uint8_t bDescriptorType uint8_t bmAttributes uint16_t wDetachTimeout uint16_t wTransferSize
typedef struct IOUSBDFUDescriptor IOUSBDFUDescriptor @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_t bmRequestType uint8_t bRequest uint16_t wValue uint16_t wIndex uint16_t wLength
typedef struct IOUSBDeviceRequest IOUSBDeviceRequest @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_t u1Sel Time in μs for U1 System Exit Latency uint8_t u1Pel Time in μs for U1 Device to Host Exit Latency uint16_t u2Sel Time in μs for U2 System Exit Latency uint16_t u2Pel Time in μs for U2 Device to Host Exit Latency
typedef struct IOUSBDeviceRequestSetSELData IOUSBDeviceRequestSetSELData @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
kIOUSBDeviceRequestDirectionValueOut 0 kIOUSBDeviceRequestDirectionValueIn 1
typedef enum tIOUSBDeviceRequestDirectionValue tIOUSBDeviceRequestDirectionValue @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
kIOUSBDeviceRequestTypeValueStandard 0 kIOUSBDeviceRequestTypeValueClass 1 kIOUSBDeviceRequestTypeValueVendor 2
typedef enum tIOUSBDeviceRequestTypeValue tIOUSBDeviceRequestTypeValue @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
kIOUSBDeviceRequestRecipientValueDevice 0 kIOUSBDeviceRequestRecipientValueInterface 1 kIOUSBDeviceRequestRecipientValueEndpoint 2 kIOUSBDeviceRequestRecipientValueOther 3
typedef enum tIOUSBDeviceRequestRecipientValue tIOUSBDeviceRequestRecipientValue underlying type unsigned int
kIOUSBDeviceRequestSize 8 kIOUSBDeviceRequestDirectionMask 128 kIOUSBDeviceRequestDirectionPhase 7 kIOUSBDeviceRequestDirectionOut 0 kIOUSBDeviceRequestDirectionIn 128 kIOUSBDeviceRequestTypeMask 96 kIOUSBDeviceRequestTypePhase 5 kIOUSBDeviceRequestTypeStandard 0 kIOUSBDeviceRequestTypeClass 32 kIOUSBDeviceRequestTypeVendor 64 kIOUSBDeviceRequestRecipientMask 31 kIOUSBDeviceRequestRecipientPhase 0 kIOUSBDeviceRequestRecipientDevice 0 kIOUSBDeviceRequestRecipientInterface 1 kIOUSBDeviceRequestRecipientEndpoint 2 kIOUSBDeviceRequestRecipientOther 3
USB 2.0 9.4: Standard Device Requests
USB 3.0 9.4: Standard Device Requests
underlying type unsigned int
kIOUSBDeviceRequestGetStatus 0 kIOUSBDeviceRequestClearFeature 1 kIOUSBDeviceRequestGetState 2 kIOUSBDeviceRequestSetFeature 3 kIOUSBDeviceRequestSetAddress 5 kIOUSBDeviceRequestGetDescriptor 6 kIOUSBDeviceRequestSetDescriptor 7 kIOUSBDeviceRequestGetConfiguration 8 kIOUSBDeviceRequestSetConfiguration 9 kIOUSBDeviceRequestGetInterface 10 kIOUSBDeviceRequestSetInterface 11 kIOUSBDeviceRequestSynchFrame 12 kIOUSBDeviceRequestSetSel 48 kIOUSBDeviceRequestSetIsochronousDelay 49
USB 2.0 9.4.5: Get Status
USB 3.0 9.4.5: Get Status
underlying type unsigned int
kIOUSBDeviceStatusSelfPowered 1 kIOUSBDeviceStatusRemoteWakeEnable 2 kIOUSBDeviceStatusU1Enable 4 kIOUSBDeviceStatusU2Enable 8 kIOUSBDeviceStatusLTMEnable 16 kIOUSBInterfaceStatusRemoteWakeCapable 1 kIOUSBInterfaceStatusRemoteWakeEnable 2 IOUSBEndpointStatusHalt 1
USB 2.0 Table 9-6: Standard Feature Selectors
USB 3.0 Table 9-7: Standard Feature Selectors
underlying type unsigned int
kIOUSBDeviceFeatureSelectorRemoteWakeup 1 kIOUSBDeviceFeatureSelectorTestMode 2 kIOUSBDeviceFeatureSelectorU1Enable 48 kIOUSBDeviceFeatureSelectorU2Enable 49 kIOUSBDeviceFeatureSelectorLTMEnable 50 kIOUSBInterfaceFeatureSelectorSuspend 0 IOUSBEndpointFeatureSelectorStall 0
USB 3.0 Table 9-8: Suspend Options
underlying type unsigned int
kIOUSBInterfaceSuspendLowPower 1 kIOUSBInterfaceSuspendRemoteWakeEnable 2
USB 3.0 Table 10-16: Hub Parameters
underlying type unsigned int
kIOUSBHubPort2PortExitLatencyNs 1000 kIOUSBHubDelayNs 400
USB 3.0 Table 8-33: Timing Parameters
underlying type unsigned int
kIOUSBPingResponseTimeNs 400
underlying type unsigned int
underlying type unsigned int
kIOUSB20BusCurrentMinimum 100 kIOUSB20BusCurrentDefault 500 kIOUSB20BusCurrentMaxPowerUnits 2
underlying type unsigned int
kIOUSB30BusCurrentMinimum 150 kIOUSB30BusCurrentDefault 900 kIOUSB30BusCurrentMaxPowerUnits 8
USB 2.0 4.1.1
underlying type unsigned int
kIOUSBTopologyHost 1 kIOUSBTopologyRootPort 2 kIOUSBTopology1Hub 3 kIOUSBTopology2Hub 4 kIOUSBTopology3Hub 5 kIOUSBTopology4Hub 6 kIOUSBTopology5Hub 7 kIOUSBTopologyTierLimit 7
USB 3.0 Table 6-21
underlying type unsigned int
kIOUSB30ResetMinimumTimeout 80 kIOUSB30ResetTypicalTimeout 100 kIOUSB30ResetMaximumTimeout 120 kIOUSB30ResetMaximumWithMarginTimeout 150
USB 3.0 Table 7-12
underlying type unsigned int
kIOUSB30LinkStateSSInactiveQuietTimeout 12 kIOUSB30LinkStateRxDetectQuietTimeout 12 kIOUSB30LinkStatePollingLFPSTimeout 360 kIOUSB30LinkStatePollingActiveTimeout 12 kIOUSB30LinkStatePollingConfigurationTimeout 12 kIOUSB30LinkStatePollingIdleTimeout 2 kIOUSB30LinkStateU0RecoveryTimeout 1 kIOUSB30LinkStateU0LTimeout 0 10 microseconds kIOUSB30LinkStateU1NoLFPSResponseTimeout 2 kIOUSB30LinkStateU1PingTimeout 300 kIOUSB30LinkStateU2NoLFPSResponseTimeout 2 kIOUSB30LinKStateU2RxDetectDelay 100 kIOUSB30LinkStateU3NoLFPSResponseTimeout 10 kIOUSB30LinkStateU3WakeupRetryDelay 100 kIOUSB30LinkStateU3RxDetectDelay 100 kIOUSB30LinkStateRecoveryActiveTimeout 12 kIOUSB30LinkStateRecoveryConfigurationTimeout 6 kIOUSB30LinkStateRecoveryIdleTimeout 2 kIOUSB30LinkStateLoopbackExitTimeout 2 kIOUSB30LinkStateHotResetActiveTimeout 12 kIOUSB30LinkStateHotResetExitTimeout 2 kIOUSB30LinkStatePollingDeadline 387 USB 3.0 7.5.4 kIOUSB30LinkStateSSResumeDeadline 130 USB 3.0 7.5.9 and 7.5.10 kIOUSB30LinkStateRecoveryDeadline 21 USB 3.0 7.5.10 kIOUSB30LinkStateHotResetDeadline 15 USB 3.0 7.5.12 margin
USB 3.1 Table 8-18
underlying type unsigned int
kIOUSB30DeviceNotificationTypeFunctionWake 1 kIOUSB30DeviceNotificationTypeLatencyTolerance 2 kIOUSB30DeviceNotificationTypeBusIntervalAdjustment 3 kIOUSB30DeviceNotificationTypeHostRoleRequest 4 kIOUSB30DeviceNotificationTypeSublinkSpeed 5
USB 3.1 Table 8-36
underlying type unsigned int
kIOUSB30TimingParameterBELTDefaultNs 1000000 kIOUSB30TimingParameterBELTMinNs 125000
USB 3.1 Table 10-12 Port Status Type Codes
underlying type unsigned int
kIOUSB30HubPortStatusCodeStandard 0 kIOUSB30HubPortStatusCodePD 1 kIOUSB30HubPortStatusCodeExt 2 kIOUSB30HubPortStatusCodeCount 3
USB 3.2 E.1.2
underlying type unsigned int
kIOUSB30RetimerDepthLimit 4
@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_t wPortStatus uint16_t wPortChange uint32_t dwExtPortStatus
USB 3.1 Table 10-11. Note, offsets are specific to dwExtPortStatus
underlying type unsigned int
kIOUSB30HubExtStatusRxSublinkSpeedID 15 kIOUSB30HubExtStatusRxSublinkSpeedIDPhase 0 kIOUSB30HubExtStatusTxSublinkSpeedID 240 kIOUSB30HubExtStatusTxSublinkSpeedIDPhase 4 kIOUSB30HubExtStatusRxLaneCount 3840 kIOUSB30HubExtStatusRxLaneCountPhase 8 kIOUSB30HubExtStatusTxLaneCount 61440 kIOUSB30HubExtStatusTxLaneCountPhase 12
USB 4.0 V2 Table 9-12
underlying type unsigned int
kPortReadyTimeout 1100 ms kKeepAliveTimeout 20 us
Generated 2026-09-08 from the headers of one specific machine (macOS 26.4.1, SDK 26.4, arm64) — not official documentation. About & caveats