ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference
|
IOUSBController |
Inherits from: |
IOUSBBus
|
Declared In: |
Base class for USB hardware driver
Not many directly useful methods for USB device driver writers, IOUSBDevice, IOUSBInterface and IOUSBPipe provide more useful abstractions. The bulk of this class interfaces between IOKit and the low-level UIM, which is based on the MacOS9 UIM. To implement a new controller type, subclass IOUSBController and implement all the "UIM functions". AppleUSBOHCI is an example of this, implementing all the functions necessary to drive an OHCI controller.
UIM function, set feature of root hub, As CLEAR_FEATURE control request.
UIM function, clear feature of a root hub port, As CLEAR_FEATURE control request to a port.
UIM function, retrun the configuration descriptor of the simulated root hub device As GET_DESCRIPTOR control request for configuration descrptor
UIM function, return the hub descriptor of the simulated root hub device As GET_DESCRIPTOR control request for hub descrptor
UIM function, return the device descriptor of the simulated root hub device As GET_DESCRIPTOR control request for device descrptor
UIM function, Impliments GET_BUS_STATE control request, now obsolete.
UIM function, get the status of a root hub port. As GET_STATUS control request to the port.
UIM function, get the status of the root hub. As GET_STATUS control request to device.
UIM function, set the address of the simulated root hub device, as SET_ADDRESS
UIM function, optional. Set the hub descriptor data. As SET_DESCRIPTOR control request for hub descrptor
UIM function, set feature of root hub, As SET_FEATURE control request.
UIM function, set feature of a root hub port, As SET_FEATURE control request to a port.
UIM function Abort the specified endpoint, return all transactions queued on it.
UIM function Clear stall on the specified endpoint, set data toggle to zero, return all transactions queued on it.
UIM function, create a bulk endpoint for the controller.
UIM function, Do a transfer on a bulk endpoint. This method supercedes the method which takes multiple parameters.
UIM function, create a control endpoint for the controller.
UIM function, Do a transfer on a control endpoint. This method supercedes the method which takes a void * parameter.
UIM function, create an interrupt endpoint for the controller.
UIM function, Do a transfer on an interrupt endpoint. This method supercedes the method which takes multiple parameters.
Create an Isochronous endpoint in the controller.
UIM function, Do a transfer on an Isocchronous endpoint.
UIM function, Do a transfer on an Isocchronous endpoint.
UIM function, Do a transfer on an Isocchronous endpoint.
UIM function Delete the specified endpoint, returning all transactions queued on it.
UIM function, finalise the controller and UIM data structures prior to removal.
UIM function, initialise the controller and UIM data structures.
UIM function UIMRootHubStatusChange - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, the meaning has changed slightly. Now, it is used to determine if there is a status change on the root hub, and if so, it needs to update the IOUSBControllerV3 instance variable _rootHubStatusChangedBitmap
UIM function UIMRootHubStatusChange(bool) - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, it has become obsolete (it still needs to be implemented since it is pure virtual)
UIM function UIMRootHubStatusChange(bool) - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, it has become obsolete (it still needs to be implemented since it is pure virtual)
abortPipe |
public
virtual IOReturn AbortPipe( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Abort pending I/O to/from the specified endpoint, causing them to complete with return code kIOReturnAborted
AbortPipe |
public
virtual IOReturn AbortPipe( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Abort pending I/O to/from the specified endpoint, causing them to complete with return code kIOReturnAborted
AcquireDeviceZero |
public
virtual IOReturn AcquireDeviceZero( void );
Get the device zero lock - call this before resetting a device, to ensure there's only one device with address 0
ClearPipeStall |
public
virtual IOReturn ClearPipeStall( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Clear a pipe stall.
ClearRootHubFeature |
UIM function, set feature of root hub, As CLEAR_FEATURE control request.
public
virtual IOReturn ClearRootHubFeature( UInt16 wValue ) = 0;
wValue
The feature to clear, as would be transferred in wValue field of SETUP packet.
ClearRootHubPortFeature |
UIM function, clear feature of a root hub port, As CLEAR_FEATURE control request to a port.
public
virtual IOReturn ClearRootHubPortFeature( UInt16 wValue, UInt16 port ) = 0;
wValue
The feature to clear, as would be transferred in wValue field of SETUP packet.
port
Port to clear feature for
ClosePipe |
public
virtual IOReturn ClosePipe( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Close a pipe to the specified device endpoint
DeviceRequest(IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8) |
public
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddress address, UInt8 epNum );
request
parameter block for the control request
completion
describes action to take when the request has been executed
address
Address of the device on the USB bus
epNum
endpoint number
Make a control request to the specified endpoint There are two versions of this method, one uses a simple void * to point to the data portion of the transfer, the other uses an IOMemoryDescriptor to point to the data.
DeviceRequest(IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8, UInt32, UInt32) |
public
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddress address, UInt8 epNum, UInt32 noDataTimeout, UInt32 completionTimeout );
request
parameter block for the control request
completion
describes action to take when the request has been executed
address
Address of the device on the USB bus
epNum
endpoint number
Make a control request to the specified endpoint There are two versions of this method, one uses a simple void * to point to the data portion of the transfer, the other uses an IOMemoryDescriptor to point to the data.
GetBandwidthAvailable |
public
virtual UInt32 GetBandwidthAvailable( void ) = 0;
maximum number of bytes that a new iso pipe could transfer per frame given current allocations.
Returns the available bandwidth (in bytes) per frame for isochronous transfers.
GetFrameNumber |
public
virtual UInt64 GetFrameNumber( void ) = 0;
The frame number.
Returns the full current frame number.
GetFrameNumber32 |
public
virtual UInt32 GetFrameNumber32( void ) = 0;
The lsb 32 bits of the frame number.
Returns the least significant 32 bits of the frame number.
GetRootHubConfDescriptor |
UIM function, retrun the configuration descriptor of the simulated root hub device As GET_DESCRIPTOR control request for configuration descrptor
public
virtual IOReturn GetRootHubConfDescriptor( OSData *desc ) = 0;
desc
Descriptor structure to return data in
GetRootHubDescriptor |
UIM function, return the hub descriptor of the simulated root hub device As GET_DESCRIPTOR control request for hub descrptor
public
virtual IOReturn GetRootHubDescriptor( IOUSBHubDescriptor *desc ) = 0;
desc
Descriptor structure to return data in
GetRootHubDeviceDescriptor |
UIM function, return the device descriptor of the simulated root hub device As GET_DESCRIPTOR control request for device descrptor
public
virtual IOReturn GetRootHubDeviceDescriptor( IOUSBDeviceDescriptor *desc ) = 0;
desc
Descriptor structure to return data in
GetRootHubPortState |
UIM function, Impliments GET_BUS_STATE control request, now obsolete.
public
virtual IOReturn GetRootHubPortState( UInt8 *state, UInt16 port ) = 0;
GetRootHubPortStatus |
UIM function, get the status of a root hub port. As GET_STATUS control request to the port.
public
virtual IOReturn GetRootHubPortStatus( IOUSBHubPortStatus *status, UInt16 port ) = 0;
status
Status structure to return
port
Port to get status for.
GetRootHubStatus |
UIM function, get the status of the root hub. As GET_STATUS control request to device.
public
virtual IOReturn GetRootHubStatus( IOUSBHubStatus *status ) = 0;
status
Status structure to return
IsocIO(IOMemoryDescriptor *, UInt64, UInt32, IOUSBIsocFrame *, USBDeviceAddress, Endpoint *, IOUSBIsocCompletion *) |
public
virtual IOReturn IsocIO( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBIsocFrame *frameList, USBDeviceAddress address, Endpoint *endpoint, IOUSBIsocCompletion *completion );
buffer
place to put the transferred data
frameStart
USB frame number of the frame to start transfer
numFrames
Number of frames to transfer
frameList
Bytes to transfer and result for each frame
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been filled
Read from or write to an isochronous endpoint
IsocIO(IOMemoryDescriptor *, UInt64, UInt32, IOUSBLowLatencyIsocFrame *, USBDeviceAddress, Endpoint *, IOUSBLowLatencyIsocCompletion *, UInt32) |
public
virtual IOReturn IsocIO( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBLowLatencyIsocFrame *frameList, USBDeviceAddress address, Endpoint *endpoint, IOUSBLowLatencyIsocCompletion *completion, UInt32 updateFrequency );
buffer
place to put the transferred data
frameStart
USB frame number of the frame to start transfer
numFrames
Number of frames to transfer
frameList
Bytes to transfer and result for each frame
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been filled
updateFrequency
describes how often to update the framelist once the transfer has completed (in ms)
Read from or write to an isochronous endpoint
openPipe |
public
virtual IOReturn OpenPipe( USBDeviceAddress address, UInt8 speed, Endpoint *endpoint );
address
Address of the device on the USB bus
speed
of the device: kUSBHighSpeed or kUSBLowSpeed
endpoint
description of endpoint to connect to
Open a pipe to the specified device endpoint
OpenPipe |
public
virtual IOReturn OpenPipe( USBDeviceAddress address, UInt8 speed, Endpoint *endpoint );
address
Address of the device on the USB bus
speed
of the device: kUSBHighSpeed or kUSBLowSpeed
endpoint
description of endpoint to connect to
Open a pipe to the specified device endpoint
Read |
public
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion, UInt32 noDataTimeout, UInt32 completionTimeout, IOByteCount reqCount );
buffer
place to put the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been filled
noDataTimeout
number of milliseconds of no data movement before the request is aborted
completionTimeout
number of milliseonds after the command is on the bus in which it must complete
reqCount
number of bytes requested for the transfer (must not be greater than the length of the buffer)
Read from an interrupt or bulk endpoint
Read(IOMemoryDescriptor *, USBDeviceAddress, Endpoint *, IOUSBCompletion *) |
public
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion );
buffer
place to put the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been filled
Read from an interrupt or bulk endpoint
Read(IOMemoryDescriptor *, USBDeviceAddress, Endpoint *, IOUSBCompletion *, UInt32, UInt32) |
public
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion, UInt32 noDataTimeout, UInt32 completionTimeout );
buffer
place to put the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been filled
Read from an interrupt or bulk endpoint
ReleaseDeviceZero |
public
virtual void ReleaseDeviceZero( void );
Release the device zero lock - call this to release the device zero lock, when there is no longer a device at address 0
resetPipe |
public
virtual IOReturn ResetPipe( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Abort pending I/O and clear stalled state - this method is a combination of abortPipe and clearPipeStall
ResetPipe |
public
virtual IOReturn ResetPipe( USBDeviceAddress address, Endpoint *endpoint );
address
Address of the device on the USB bus
endpoint
description of endpoint
Abort pending I/O and clear stalled state - this method is a combination of abortPipe and clearPipeStall
SetHubAddress |
UIM function, set the address of the simulated root hub device, as SET_ADDRESS
public
virtual IOReturn SetHubAddress( UInt16 wValue ) = 0;
wValue
New address for root hub.
SetRootHubDescriptor |
UIM function, optional. Set the hub descriptor data. As SET_DESCRIPTOR control request for hub descrptor
public
virtual IOReturn SetRootHubDescriptor( OSData *buffer ) = 0;
buffer
Descriptor data
SetRootHubFeature |
UIM function, set feature of root hub, As SET_FEATURE control request.
public
virtual IOReturn SetRootHubFeature( UInt16 wValue ) = 0;
wValue
The feature to set, as would be transferred in wValue field of SETUP packet.
SetRootHubPortFeature |
UIM function, set feature of a root hub port, As SET_FEATURE control request to a port.
public
virtual IOReturn SetRootHubPortFeature( UInt16 wValue, UInt16 port ) = 0;
wValue
The feature to set, as would be transferred in wValue field of SETUP packet.
port
Port to set feature for
UIMAbortEndpoint |
UIM function Abort the specified endpoint, return all transactions queued on it.
protected
virtual IOReturn UIMAbortEndpoint( short functionNumber, short endpointNumber, short direction) = 0;
functionNumber
The USB device ID of the device to Abort
endpointNumber
The endpoint number to Abort
direction
Specifies direction of the endpoint for uniqueness. kUSBIn or KUSBOut.
UIMClearEndpointStall |
UIM function Clear stall on the specified endpoint, set data toggle to zero, return all transactions queued on it.
protected
virtual IOReturn UIMClearEndpointStall( short functionNumber, short endpointNumber, short direction) = 0;
functionNumber
The USB device ID of the device to Clear
endpointNumber
The endpoint number to Clear
direction
Specifies direction of the endpoint for uniqueness. kUSBIn or KUSBOut.
UIMCreateBulkEndpoint |
UIM function, create a bulk endpoint for the controller.
protected
virtual IOReturn UIMCreateBulkEndpoint( UInt8 functionNumber, UInt8 endpointNumber, UInt8 direction, UInt8 speed, UInt8 maxPacketSize) = 0;
functionNumber
The USB device ID of the device for this endpoint
endpointNumber
The endpoint number for this endpoint
direction
Specifies direction for the endpoint. kUSBIn or KUSBOut.
speed
speed of the device: kUSBDeviceSpeedLow or kUSBDeviceSpeedFull
maxPacketSize
Maximum packet size of this endpoint
UIMCreateBulkTransfer |
UIM function, Do a transfer on a bulk endpoint. This method supercedes the method which takes multiple parameters.
public
virtual IOReturn UIMCreateBulkTransfer( IOUSBCommand *command);
command
paramters for transfer.
UIMCreateControlEndpoint |
UIM function, create a control endpoint for the controller.
protected
virtual IOReturn UIMCreateControlEndpoint( UInt8 functionNumber, UInt8 endpointNumber, UInt16 maxPacketSize, UInt8 speed) = 0;
functionNumber
The USB device ID of the device for this endpoint
endpointNumber
The endpoint number for this endpoint
maxPacketSize
Maximum packet size of this endpoint
speed
speed of the device: kUSBDeviceSpeedLow or kUSBDeviceSpeedFull
UIMCreateControlTransfer |
UIM function, Do a transfer on a control endpoint. This method supercedes the method which takes a void * parameter.
protected
virtual IOReturn UIMCreateControlTransfer( short functionNumber, short endpointNumber, IOUSBCompletion completion, IOMemoryDescriptor *CBP, bool bufferRounding, UInt32 bufferSize, short direction) = 0;
functionNumber
The USB device ID of the device to perform the transaction with
endpointNumber
The endpoint number for the transaction
completion
Action to perform when I/O completes
CBP
Memory descriptor describing the buffer to transfer. Will never describe memory which has disjoint packets.
bufferRounding
If true, short packets are OK and do not cause an error
bufferSize
Size of the data to transfer in the data phase. (C
direction
Specifies direction and PID for transaction. kUSBIn, KUSBOut (DATA PID) or kUSBSetup (SETUP PID).
UIMCreateInterruptEndpoint |
UIM function, create an interrupt endpoint for the controller.
protected
virtual IOReturn UIMCreateInterruptEndpoint( short functionAddress, short endpointNumber, UInt8 direction, short speed, UInt16 maxPacketSize, short pollingRate) = 0;
functionNumber
The USB device ID of the device for this endpoint
endpointNumber
The endpoint number for this endpoint
direction
Specifies direction for the endpoint. kUSBIn or KUSBOut.
speed
speed of the device: kUSBDeviceSpeedLow or kUSBDeviceSpeedFull
maxPacketSize
Maximum packet size of this endpoint
pollingRate
The maximum polling interval from the endpoint descriptor.
UIMCreateInterruptTransfer |
UIM function, Do a transfer on an interrupt endpoint. This method supercedes the method which takes multiple parameters.
public
virtual IOReturn UIMCreateInterruptTransfer( IOUSBCommand *command);
command
paramters for transfer.
UIMCreateIsochEndpoint |
Create an Isochronous endpoint in the controller.
protected
virtual IOReturn UIMCreateIsochEndpoint( short functionAddress, short endpointNumber, UInt32 maxPacketSize, UInt8 direction) = 0;
functionNumber
The USB device ID of the device for this endpoint
endpointNumber
The endpoint number for this endpoint
maxPacketSize
Maximum packet size of this endpoint
direction
Specifies direction for the endpoint. kUSBIn or KUSBOut.
UIMCreateIsochTransfer |
UIM function, Do a transfer on an Isocchronous endpoint.
public
virtual IOReturn UIMCreateIsochTransfer( IOUSBIsocCommand *command);
command
an IOUSBIsocCommand object with all the necessary information
UIMCreateIsochTransfer(short, short, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBIsocFrame *) |
UIM function, Do a transfer on an Isocchronous endpoint.
protected
virtual IOReturn UIMCreateIsochTransfer( short functionAddress, short endpointNumber, IOUSBIsocCompletion completion, UInt8 direction, UInt64 frameStart, IOMemoryDescriptor *pBuffer, UInt32 frameCount, IOUSBIsocFrame *pFrames) = 0;
functionNumber
The USB device ID of the device to perform the transaction with
endpointNumber
The endpoint number for the transaction
completion
Action to perform when I/O completes
direction
Specifies direction for transfer. kUSBIn or KUSBOut.
frameStart
The frame number in which to start the transactions
pBuffer
describes memory buffer.
frameCount
number of frames to do transactions in
pFrames
Describes transactions in individual frames, gives sizes and reults for transactions.
UIMCreateIsochTransfer(short, short, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBLowLatencyIsocFrame *, UInt32) |
UIM function, Do a transfer on an Isocchronous endpoint.
public
virtual IOReturn UIMCreateIsochTransfer( short functionAddress, short endpointNumber, IOUSBIsocCompletion completion, UInt8 direction, UInt64 frameStart, IOMemoryDescriptor *pBuffer, UInt32 frameCount, IOUSBLowLatencyIsocFrame *pFrames, UInt32 updateFrequency);
functionNumber
The USB device ID of the device to perform the transaction with
endpointNumber
The endpoint number for the transaction
completion
Action to perform when I/O completes
direction
Specifies direction for transfer. kUSBIn or KUSBOut.
frameStart
The frame number in which to start the transactions
pBuffer
describes memory buffer.
frameCount
number of frames to do transactions in
pFrames
Describes transactions in individual frames, gives sizes and reults for transactions.
updateFrequency
Describes how often we update the frameList parameters (in ms)
UIMDeleteEndpoint |
UIM function Delete the specified endpoint, returning all transactions queued on it.
protected
virtual IOReturn UIMDeleteEndpoint( short functionNumber, short endpointNumber, short direction) = 0;
functionNumber
The USB device ID of the device to Delete
endpointNumber
The endpoint number to Delete
direction
Specifies direction of the endpoint for uniqueness. kUSBIn or KUSBOut.
UIMFinalize |
UIM function, finalise the controller and UIM data structures prior to removal.
protected
virtual IOReturn UIMFinalize() = 0;
UIMInitialize |
UIM function, initialise the controller and UIM data structures.
protected
virtual IOReturn UIMInitialize( IOService *provider ) = 0;
UIMRootHubStatusChange() |
UIM function UIMRootHubStatusChange - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, the meaning has changed slightly. Now, it is used to determine if there is a status change on the root hub, and if so, it needs to update the IOUSBControllerV3 instance variable _rootHubStatusChangedBitmap
protected
virtual void UIMRootHubStatusChange( void) = 0;
UIMRootHubStatusChange(bool) |
UIM function UIMRootHubStatusChange(bool) - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, it has become obsolete (it still needs to be implemented since it is pure virtual)
protected
virtual void UIMRootHubStatusChange( bool abort ) = 0;
UIMRootHubStatusChange(bool)(bool) |
UIM function UIMRootHubStatusChange(bool) - This method was internal to the UIM (never called by the superclass) until IOUSBControllerV3. For UIMs which are a subclass of IOUSBController or IOUSBControllerV2, it can still be used internally only. For subclasses of IOUSBControllerV3, however, it has become obsolete (it still needs to be implemented since it is pure virtual)
protected
virtual void UIMRootHubStatusChange( bool abort ) = 0;
Write |
public
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion, UInt32 noDataTimeout, UInt32 completionTimeout, IOByteCount reqCount );
buffer
place to get the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been emptied
noDataTimeout
number of milliseconds of no data movement before the request is aborted
completionTimeout
number of milliseonds after the command is on the bus in which it must complete
reqCount
number of bytes requested for the transfer (must not be greater than the length of the buffer)
Write to an interrupt or bulk endpoint
Write(IOMemoryDescriptor *, USBDeviceAddress, Endpoint *, IOUSBCompletion *) |
public
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion );
buffer
place to get the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been emptied
Write to an interrupt or bulk endpoint
Write(IOMemoryDescriptor *, USBDeviceAddress, Endpoint *, IOUSBCompletion *, UInt32, UInt32) |
public
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddress address, Endpoint *endpoint, IOUSBCompletion *completion, UInt32 noDataTimeout, UInt32 completionTimeout );
buffer
place to get the transferred data
address
Address of the device on the USB bus
endpoint
description of endpoint
completion
describes action to take when buffer has been emptied
Write to an interrupt or bulk endpoint
Endpoint |
public
struct Endpoint { IOUSBEndpointDescriptor *descriptor; UInt8 number; UInt8 direction; // in, out UInt8 transferType; // cntrl, bulk, isoc, int UInt16 maxPacketSize; UInt8 interval; };
descriptor
The raw endpoint descriptor.
number
Endpoint number
direction
Endpoint direction: kUSBOut, kUSBIn, kUSBAnyDirn
transferType
Type of endpoint: kUSBControl, kUSBIsoc, kUSBBulk, kUSBInterrupt
maxPacketSize
Maximum packet size for endpoint
interval
Polling interval in milliseconds (only relevent for Interrupt endpoints)
Describes an endpoint of a device. Simply an easier to use version of the endpoint descriptor.
|
Last Updated: 2008-12-19