#include <IOKit/usb/IOUSBHostIOSource.h>

IOKit/usb/IOUSBHostIOSource.h Kernel.framework

@header IOUSBHostIOSource.h @brief IOUSBHostIOSource is the base class for objects that perform USB IO.
10 structs · 6 typedefs · 2 macros · 2 enums

macroIOUSBHostFamily_IOUSBHostIOSource_h

#define IOUSBHostFamily_IOUSBHostIOSource_h 

macrokUSBHostTransferLimit

#define kUSBHostTransferLimit (1024)

typedefIOUSBHostCompletionAction

typedef void (*IOUSBHostCompletionAction)(void* owner, void* parameter, IOReturn status, uint32_t bytesTransferred)

structIOUSBHostCompletion

@struct IOUSBHostCompletion @discussion Struture describing the completion callback for an asynchronous bulk, control, or interrupt IO operation @field owner Pointer to an object that owns the transfer. May be used as <code>this</code> for an action passed via OSMemberFunctionCast. @field action IOUSBHostCompletionAction to run when the IO request completes. @field parameter Pointer to be used as context within the completion action.
size 24, align 8
void *owner
IOUSBHostCompletionActionaction
void *parameter

typedefIOUSBHostBundledCompletionAction

typedef void (*IOUSBHostBundledCompletionAction)(void *owner, uint32_t ioCompletionCount, IOMemoryDescriptor** dataBufferArray, void** parameter, IOReturn* statusArray, uint32_t* actualByteCountArray)

structIOUSBHostBundledCompletion

@struct IOUSBHostBundledCompletion @discussion Struture describing the completion callback for an asynchronous bulk, control, or interrupt IO operation @field owner Pointer to an object that owns the transfer. May be used as <code>this</code> for an action passed via OSMemberFunctionCast. @field action IOUSBHostBundledCompletion to run when the IO request completes. @field parameter Pointer to be used as context within the completion action.
size 24, align 8
void *owner
IOUSBHostBundledCompletionActionaction
void *parameter

structIOUSBHostIsochronousFrame

@struct IOUSBHostIsochronousFrame @discussion Structure representing a single frame in an isochronous transfer. Use of this structure is discouraged, use @link IOUSBHostIsochronousTransaction @/link instead. @field status Completion status for this individual frame. IOUSBHostFamily will initialize this to kIOReturnInvalid and will update the field with a valid status code upon completion of the frame. @field requestCount The number of bytes requested to transfer for this frame. This field must be initialized by the caller before this structure is submitted to IOUSBHostFamily. @field completeCount The number of bytes actually transferred for this frame. IOUSBHostFamily will update this field upon completion of the frame. @field reserved Reserved for future use. @field timeStamp The observed AbsoluteTime for this frame's completion. Note that interrupt latency and system load may result in more than one frame completing with the same timestamp.
size 24, align 1 · packed
IOReturnstatus
uint32_trequestCount
uint32_tcompleteCount
uint32_treserved
AbsoluteTimetimeStamp

structIOUSBHostIsochronousTransaction

@struct IOUSBHostIsochronousTransaction @discussion Structure representing a single frame or microframe in an isochronous transfer. @field status Completion status for this individual transaction. IOUSBHostFamily will initialize this to kIOReturnInvalid and will update the field with a valid status code upon completion of the transaction. @field requestCount The number of bytes requested to transfer for this transaction. This field must be initialized by the caller before this structure is submitted to IOUSBHostFamily. @field offset The number of bytes between the start of the memory descriptor in which this transaction resides and the start of the transaction. The offset cannot exceed 4GB. @field completeCount The number of bytes actually transferred for this transaction. IOUSBHostFamily will update this field upon completion of the transaction. @field timeStamp The observed AbsoluteTime for this transaction's completion. Note that interrupt latency and system load may result in more than one transaction completing with the same timestamp. @field options Flags that specify additional transaction behavior. See @link tIsochronousTransactionOptions @/link for more details.
size 28, align 1 · packed
IOReturnstatus
uint32_trequestCount
uint32_toffset
uint32_tcompleteCount
AbsoluteTimetimeStamp
IOOptionBitsoptions

typedefIOUSBHostIsochronousCompletionAction

typedef void (*IOUSBHostIsochronousCompletionAction)(void* owner, void* parameter, IOReturn status, IOUSBHostIsochronousFrame* frameList)

structIOUSBHostIsochronousCompletion

@struct IOUSBHostIsochronousCompletion @discussion Struture describing the completion callback for an asynchronous isochronous operation @field owner Pointer to an object that owns the transfer. May be used as <code>this</code> for an action passed via OSMemberFunctionCast. @field action IOUSBHostIsochronousCompletionAction to run when the IO request completes. @field parameter Pointer to be used as context within the completion action.
size 24, align 8
void *owner
IOUSBHostIsochronousCompletionActionaction
void *parameter

typedefIOUSBHostIsochronousTransactionCompletionAction

typedef void (*IOUSBHostIsochronousTransactionCompletionAction)(void* owner, void* parameter, IOReturn status, IOUSBHostIsochronousTransaction* transactionList)

structIOUSBHostIsochronousTransactionCompletion

@struct IOUSBHostIsochronousTransactionCompletion @discussion Structure describing the completion callback for an asynchronous isochronous operation @field owner Pointer to an object that owns the transfer. May be used as <code>this</code> for an action passed via OSMemberFunctionCast. @field action IOUSBHostIsochronousTransactionCompletionAction to run when the IO request completes. @field parameter Pointer to be used as context within the completion action.
size 24, align 8
void *owner
IOUSBHostIsochronousTransactionCompletionActionaction
void *parameter

enumtIsochronousTransferOptions

@enum tIsochronousTransferOptions @brief Options for controlling isochronous transfer behavior @constant kIsochronousTransferOptionsNone No options are selected for this transfer
underlying type unsigned int
kIsochronousTransferOptionsNone0

enumtIsochronousTransactionOptions

@enum tIsochronousTransactionOptions @brief Options for <code>IOUSBHostIsochronousTransaction</code> @constant kIsochronousTransactionOptionsNone No options are selected for this transaction @constant kIsochronousTransactionOptionsWrap This transaction's data reaches the end of the memory descriptor and continues at the descriptor's start. If this option is selected, the transaction's offset + requestCount should exceed the memory descriptor's length. This option is not supported on UHCI or UserHCI controllers.
underlying type unsigned int
kIsochronousTransactionOptionsNone0
kIsochronousTransactionOptionsWrap1

structIOUSBHostIOSourceClientRecordList

size 8, align 8
struct IOUSBHostIOSourceClientRecord *lh_firstfirst element

typedefIOUSBHostIOSourceClientRecordList

typedef LIST_HEAD (IOUSBHostIOSourceClientRecordList, IOUSBHostIOSourceClientRecord) IOUSBHostIOSourceClientRecordList

structtPacketFilterMetadata

@struct tPacketFilterMetadata @discussion Struture providing information about the IOUSBHostIOSource's parents @field deviceAddress Address of the parent IOUSBHostDevice. @field interfaceClass If enpointAddress is non-zero, the class of the parent IOUSBHostInteface. @field interfaceSubClass If enpointAddress is non-zero, the sub-class of the parent IOUSBHostInteface. @field interfaceProtocol If enpointAddress is non-zero, the protocol of the parent IOUSBHostInteface. @field interfaceAltSetting Current alternate setting of the parent IOUSBHostInterface. @field endpointAddress The address of the endpoint including the direction. @field endpointType See tEndpointType in IOUSBHostFamily.h. @field speed See tUSBHostConnectionSpeed in IOUSBHostFamily.h. @field vid Vendor ID of the parent IOUSBHostDevice. @field pid Product ID of the parent IOUSBHostDevice. @field locationID USB locationID of the parent IOUSBHostDevice.
size 16, align 1 · packed
uint8_tdeviceAddress
uint8_tinterfaceClass
uint8_tinterfaceSubclass
uint8_tinterfaceProtocol
uint8_tinterfaceAltSetting
uint8_tendpointAddress
uint8_tendpointType
uint8_tspeed
uint16_tvid
uint16_tpid
uint32_tlocationID