IOUSBHost provides a low-level USB host controller interface for communicating with and managing USB devices and endpoints on macOS. You work with USB hardware through objects such as IOUSBHostDevice, IOUSBHostInterface, and IOUSBHostPipe, transferring data over endpoints and configuring isochronous transactions with types like IOUSBHostIsochronousTransaction and IOUSBHostIsochronousFrame. For implementing a host controller, the framework exposes IOUSBHostControllerInterface together with state machines including IOUSBHostCIControllerStateMachine, IOUSBHostCIDeviceStateMachine, IOUSBHostCIEndpointStateMachine, and IOUSBHostCIPortStateMachine. Matching and configuration are driven by property keys such as IOUSBHostMatchingPropertyKey, IOUSBHostDevicePropertyKey, and IOUSBHostInterfacePropertyKey.
Devices and Interfaces 3
The principal host objects representing connected USB devices, their interfaces, and the abstract base they share.
- ClIOUSBHostObject@class IOUSBHostObject
- ClIOUSBHostDevice@class IOUSBHostDevice
- ClIOUSBHostInterface@class IOUSBHostInterface
Data Transfer 4
Sources and channels used to move data across USB endpoints and streams.
- ClIOUSBHostIOSource@class IOUSBHostIOSource
- ClIOUSBHostPipe@class IOUSBHostPipe
- ClIOUSBHostStreamAn object that represents a bulk stream associated with a USB pipe.
- StIOUSBHostIOSourceDescriptors@struct IOUSBHostIOSourceDescriptors
Isochronous Transfers 4
Types that describe and configure time-sensitive isochronous transactions and frames.
- StIOUSBHostIsochronousTransaction@struct IOUSBHostIsochronousTransaction
- StIOUSBHostIsochronousFrame@struct IOUSBHostIsochronousFrame
- StIOUSBHostIsochronousTransferOptions@enum IOUSBHostIsochronousTransferOptions
- StIOUSBHostIsochronousTransactionOptions@enum IOUSBHostIsochronousTransactionOptions
Host Controller Interface 5
The controller-side interface and state machines for implementing a USB host controller.
- ClIOUSBHostControllerInterfaceAn object that exposes the interface used to implement a USB host controller.
- ClIOUSBHostCIControllerStateMachine@class IOUSBHostCIControllerStateMachine
- ClIOUSBHostCIDeviceStateMachine@class IOUSBHostCIDeviceStateMachine
- ClIOUSBHostCIEndpointStateMachine@class IOUSBHostCIEndpointStateMachine
- ClIOUSBHostCIPortStateMachine@class IOUSBHostCIPortStateMachine
Controller Interface Messaging 5
Message structures, versioning, and exception types exchanged with a host controller user client.
- StIOUSBHostCIMessage@typedef IOUSBHostCIMessage
- StIOUSBHostCIMessageType@enum IOUSBHostCIMessageType
- StIOUSBHostCIMessageStatus@enum IOUSBHostCIMessageStatus
- StIOUSBHostCIExceptionType@enum IOUSBHostCIExceptionType
- StIOUSBHostCIUserClientVersionA structure that identifies the version of the host controller interface user client.
Controller States and Speeds 6
Constants describing the operating state of controllers, devices, ports, and endpoints, and the negotiated link speed.
- StIOUSBHostCIControllerState@enum IOUSBHostCIControllerState
- StIOUSBHostCIDeviceState@enum IOUSBHostCIDeviceState
- StIOUSBHostCIPortState@enum IOUSBHostCIPortState
- StIOUSBHostCIEndpointState@enum IOUSBHostCIEndpointState
- StIOUSBHostCILinkState@enum IOUSBHostCILinkState
- StIOUSBHostCIDeviceSpeed@enum IOUSBHostCIDeviceSpeed
Object Options 4
Option sets that control how host objects are created, destroyed, and exchange data.
- StIOUSBHostObjectInitOptions@enum IOUSBHostObjectInitOptions
- StIOUSBHostObjectDestroyOptions@enum IOUSBHostObjectDestroyOptions
- StIOUSBHostObjectDataOptions@enum IOUSBHostObjectDataOptions
- EnIOUSBHostAbortOption@enum IOUSBHostAbortOption
Matching and Property Keys 3
Property-key constants used to match and read configuration from USB devices and interfaces.
- StIOUSBHostMatchingPropertyKeyProperty keys used to match USB devices and interfaces during discovery.
- StIOUSBHostDevicePropertyKeyProperty keys used to read configuration values from a USB device.
- StIOUSBHostInterfacePropertyKeyProperty keys used to read configuration values from a USB interface.
Type Aliases 10
- TyIOUSBHostControllerInterfaceCommandHandler@typedef IOUSBHostControllerInterfaceCommandHandler
- TyIOUSBHostControllerInterfaceDoorbellHandler@typedef IOUSBHostControllerInterfaceDoorbellHandler
- TyIOUSBHostCIPortStatus
- TyIOUSBHostCIDoorbell@typedef IOUSBHostCIDoorbell
- TyIOUSBHostCompletionHandler
- TyIOUSBHostTime@brief AbsoluteTime represented as a uint64_t.
- TyIOUSBHostIsochronousCompletionHandler@brief Isochronous IO completion handler.
- TyIOUSBHostIsochronousTransactionCompletionHandler@brief Isochronous IO completion handler.
- TyIOUSBHostPropertyKey
- TyIOUSBHostInterestHandler