#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
#define IOUSBHostFamily_IOUSBHostIOSource_h
#define kUSBHostTransferLimit (1024)
typedef void (*IOUSBHostCompletionAction)(void* owner, void* parameter, IOReturn status, uint32_t bytesTransferred)
@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
typedef void (*IOUSBHostBundledCompletionAction)(void *owner, uint32_t ioCompletionCount, IOMemoryDescriptor** dataBufferArray, void** parameter, IOReturn* statusArray, uint32_t* actualByteCountArray)
@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
@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
@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
@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
@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
@enum tIsochronousTransferOptions
@brief Options for controlling isochronous transfer behavior
@constant kIsochronousTransferOptionsNone No options are selected for this transfer
underlying type unsigned int
| kIsochronousTransferOptionsNone | 0 | |
@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
| kIsochronousTransactionOptionsNone | 0 | |
| kIsochronousTransactionOptionsWrap | 1 | |