|
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 );
addressAddress of the device on the USB bus
endpointdescription 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 );
addressAddress of the device on the USB bus
endpointdescription 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 );
addressAddress of the device on the USB bus
endpointdescription 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;
wValueThe 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;
wValueThe feature to clear, as would be transferred in wValue field of SETUP packet.
portPort to clear feature for
ClosePipe |
public
virtual IOReturn ClosePipe( USBDeviceAddress address, Endpoint *endpoint );
addressAddress of the device on the USB bus
endpointdescription 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 );
requestparameter block for the control request
completiondescribes action to take when the request has been executed
addressAddress of the device on the USB bus
epNumendpoint 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 );
requestparameter block for the control request
completiondescribes action to take when the request has been executed
addressAddress of the device on the USB bus
epNumendpoint 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;
descDescriptor 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;
descDescriptor 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;
descDescriptor 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;
statusStatus structure to return
portPort 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;
statusStatus 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 );
bufferplace to put the transferred data
frameStartUSB frame number of the frame to start transfer
numFramesNumber of frames to transfer
frameListBytes to transfer and result for each frame
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes 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 );
bufferplace to put the transferred data
frameStartUSB frame number of the frame to start transfer
numFramesNumber of frames to transfer
frameListBytes to transfer and result for each frame
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes action to take when buffer has been filled
updateFrequencydescribes 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 );
addressAddress of the device on the USB bus
speedof the device: kUSBHighSpeed or kUSBLowSpeed
endpointdescription of endpoint to connect to
Open a pipe to the specified device endpoint
OpenPipe |
public
virtual IOReturn OpenPipe( USBDeviceAddress address, UInt8 speed, Endpoint *endpoint );
addressAddress of the device on the USB bus
speedof the device: kUSBHighSpeed or kUSBLowSpeed
endpointdescription 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 );
bufferplace to put the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes action to take when buffer has been filled
noDataTimeoutnumber of milliseconds of no data movement before the request is aborted
completionTimeoutnumber of milliseonds after the command is on the bus in which it must complete
reqCountnumber 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 );
bufferplace to put the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes 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 );
bufferplace to put the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes 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 );
addressAddress of the device on the USB bus
endpointdescription 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 );
addressAddress of the device on the USB bus
endpointdescription 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;
wValueNew 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;
bufferDescriptor data
SetRootHubFeature |
UIM function, set feature of root hub, As SET_FEATURE control request.
public
virtual IOReturn SetRootHubFeature( UInt16 wValue ) = 0;
wValueThe 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;
wValueThe feature to set, as would be transferred in wValue field of SETUP packet.
portPort 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;
functionNumberThe USB device ID of the device to Abort
endpointNumberThe endpoint number to Abort
directionSpecifies 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;
functionNumberThe USB device ID of the device to Clear
endpointNumberThe endpoint number to Clear
directionSpecifies 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;
functionNumberThe USB device ID of the device for this endpoint
endpointNumberThe endpoint number for this endpoint
directionSpecifies direction for the endpoint. kUSBIn or KUSBOut.
speedspeed of the device: kUSBDeviceSpeedLow or kUSBDeviceSpeedFull
maxPacketSizeMaximum 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);
commandparamters 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;
functionNumberThe USB device ID of the device for this endpoint
endpointNumberThe endpoint number for this endpoint
maxPacketSizeMaximum packet size of this endpoint
speedspeed 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;
functionNumberThe USB device ID of the device to perform the transaction with
endpointNumberThe endpoint number for the transaction
completionAction to perform when I/O completes
CBPMemory descriptor describing the buffer to transfer. Will never describe memory which has disjoint packets.
bufferRoundingIf true, short packets are OK and do not cause an error
bufferSizeSize of the data to transfer in the data phase. (C
directionSpecifies 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;
functionNumberThe USB device ID of the device for this endpoint
endpointNumberThe endpoint number for this endpoint
directionSpecifies direction for the endpoint. kUSBIn or KUSBOut.
speedspeed of the device: kUSBDeviceSpeedLow or kUSBDeviceSpeedFull
maxPacketSizeMaximum packet size of this endpoint
pollingRateThe 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);
commandparamters for transfer.
UIMCreateIsochEndpoint |
Create an Isochronous endpoint in the controller.
protected
virtual IOReturn UIMCreateIsochEndpoint( short functionAddress, short endpointNumber, UInt32 maxPacketSize, UInt8 direction) = 0;
functionNumberThe USB device ID of the device for this endpoint
endpointNumberThe endpoint number for this endpoint
maxPacketSizeMaximum packet size of this endpoint
directionSpecifies direction for the endpoint. kUSBIn or KUSBOut.
UIMCreateIsochTransfer |
UIM function, Do a transfer on an Isocchronous endpoint.
public
virtual IOReturn UIMCreateIsochTransfer( IOUSBIsocCommand *command);
commandan 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;
functionNumberThe USB device ID of the device to perform the transaction with
endpointNumberThe endpoint number for the transaction
completionAction to perform when I/O completes
directionSpecifies direction for transfer. kUSBIn or KUSBOut.
frameStartThe frame number in which to start the transactions
pBufferdescribes memory buffer.
frameCountnumber of frames to do transactions in
pFramesDescribes 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);
functionNumberThe USB device ID of the device to perform the transaction with
endpointNumberThe endpoint number for the transaction
completionAction to perform when I/O completes
directionSpecifies direction for transfer. kUSBIn or KUSBOut.
frameStartThe frame number in which to start the transactions
pBufferdescribes memory buffer.
frameCountnumber of frames to do transactions in
pFramesDescribes transactions in individual frames, gives sizes and reults for transactions.
updateFrequencyDescribes 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;
functionNumberThe USB device ID of the device to Delete
endpointNumberThe endpoint number to Delete
directionSpecifies 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 );
bufferplace to get the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes action to take when buffer has been emptied
noDataTimeoutnumber of milliseconds of no data movement before the request is aborted
completionTimeoutnumber of milliseonds after the command is on the bus in which it must complete
reqCountnumber 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 );
bufferplace to get the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes 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 );
bufferplace to get the transferred data
addressAddress of the device on the USB bus
endpointdescription of endpoint
completiondescribes 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; };
descriptorThe raw endpoint descriptor.
numberEndpoint number
directionEndpoint direction: kUSBOut, kUSBIn, kUSBAnyDirn
transferTypeType of endpoint: kUSBControl, kUSBIsoc, kUSBBulk, kUSBInterrupt
maxPacketSizeMaximum packet size for endpoint
intervalPolling 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