Jump to main content

##

# 2.2.4 Library Interface

This section describes the Application Programming Interface (API) functions of the USB Device Layer Library.

Refer to each section for a detailed description.

a) System Interaction Functions

Name | Description
USB_DEVICE_Initialize | Creates and initializes an instance of the USB device layer.
USB_DEVICE_Deinitialize | De-initializes the specified instance of the USB device layer.
USB_DEVICE_Status | Provides the current status of the USB device layer.
USB_DEVICE_Tasks | USB Device layer calls all other function driver tasks in this function. It also generates and forwards events to its clients.

b) Client Core Functions

Name | Description
USB_DEVICE_Open | Opens the specified USB device layer instance and returns a handle to it.
USB_DEVICE_Close | Closes an opened handle to an instance of the USB device layer.
USB_DEVICE_ClientStatusGet | Returns the client specific status.
USB_DEVICE_EventHandlerSet | USB Device Layer Event Handler Callback Function set function.

c) Device Power State Management Functions

Name | Description
USB_DEVICE_PowerStateSet | Sets power state of the device.
USB_DEVICE_RemoteWakeupStatusGet | Gets the "Remote wake-up" status of the device.
USB_DEVICE_IsSuspended | Returns true if the device is in a suspended state.
USB_DEVICE_RemoteWakeupStart | This function will start the resume signaling.
USB_DEVICE_RemoteWakeupStartTimed | This function will start a self timed Remote Wake-up.
USB_DEVICE_RemoteWakeupStop | This function will stop the resume signaling.

d) Device Management Functions

Name | Description
USB_DEVICE_StateGet | Returns the current state of the USB device.
USB_DEVICE_Attach | This function will attach the device to the USB.
USB_DEVICE_Detach | This function will detach the device from the USB.
USB_DEVICE_ActiveConfigurationGet | Informs the client of the current USB device configuration set by the USB host.
USB_DEVICE_ActiveSpeedGet | Informs the client of the current operation speed of the USB bus.

e) Endpoint Management Functions

Name | Description
USB_DEVICE_EndpointIsStalled | This function returns the stall status of the specified endpoint and direction.
USB_DEVICE_EndpointStall | This function stalls an endpoint in the specified direction.
USB_DEVICE_EndpointStallClear | This function clears the stall on an endpoint in the specified direction.
USB_DEVICE_EndpointDisable | Disables a device endpoint.
USB_DEVICE_EndpointEnable | Enables a device endpoint.
USB_DEVICE_EndpointIsEnabled | Returns true if the endpoint is enabled.
USB_DEVICE_EndpointRead | Reads data received from host on the requested endpoint.
USB_DEVICE_EndpointTransferCancel | This function cancels a transfer scheduled on an endpoint.
USB_DEVICE_EndpointWrite | This function requests a data write to a USB Device Endpoint.

f) Control Transfer Functions

Name | Description
USB_DEVICE_ControlReceive | Receives data stage of the control transfer from host to device.
USB_DEVICE_ControlSend | Sends data stage of the control transfer from device to host.
USB_DEVICE_ControlStatus | Initiates status stage of the control transfer.

g) Data Types and Constants

Name | Description
USB_DEVICE_EVENT | USB Device Layer Events.
USB_DEVICE_HANDLE | Data type for USB device handle.
USB_DEVICE_CONTROL_STATUS | USB Device Layer Control Transfer Status Stage flags.
USB_DEVICE_CONTROL_TRANSFER_RESULT | Enumerated data type identifying results of a control transfer.
USB_DEVICE_INIT | USB Device Initialization Structure.
USB_DEVICE_POWER_STATE | Enumerated data type that identifies if the device is self powered or bus powered.
USB_DEVICE_REMOTE_WAKEUP_STATUS | Enumerated data type that identifies if the remote wakeup status of the device.
USB_DEVICE_HANDLE_INVALID | Constant that defines the value of an Invalid Device Handle.
USB_DEVICE_INDEX_0 | USB device layer index definitions.
USB_DEVICE_INDEX_1 | This is macro USB_DEVICE_INDEX_1.
USB_DEVICE_INDEX_2 | This is macro USB_DEVICE_INDEX_2.
USB_DEVICE_INDEX_3 | This is macro USB_DEVICE_INDEX_3.
USB_DEVICE_INDEX_4 | This is macro USB_DEVICE_INDEX_4.
USB_DEVICE_INDEX_5 | This is macro USB_DEVICE_INDEX_5.
USB_DEVICE_CLIENT_STATUS | Enumerated data type that identifies the USB Device Layer Client Status.
USB_DEVICE_CONFIGURATION_DESCRIPTORS_TABLE | Pointer to an array that contains pointer to configuration descriptors.
USB_DEVICE_EVENT_DATA_CONFIGURED | USB Device Set Configuration Event Data type.
USB_DEVICE_EVENT_HANDLER | USB Device Layer Event Handler Function Pointer Type.
USB_DEVICE_EVENT_RESPONSE | Device Layer Event Handler function return type.
USB_DEVICE_FUNCTION_REGISTRATION_TABLE | USB Device Function Registration Structure.
USB_DEVICE_MASTER_DESCRIPTOR | USB Device Master Descriptor Structure.
USB_DEVICE_STRING_DESCRIPTORS_TABLE | Pointer to an array that contains pointer to string descriptors.
USB_DEVICE_EVENT_RESPONSE_NONE | Device Layer Event Handler Function Response Type.
USB_DEVICE_EVENT_DATA_ENDPOINT_READ_COMPLETE | USB Device Layer Endpoint Read and Write Complete Event Data type.
USB_DEVICE_EVENT_DATA_ENDPOINT_WRITE_COMPLETE | USB Device Layer Endpoint Read and Write Complete Event Data type.
USB_DEVICE_EVENT_DATA_SOF | USB Device Start Of Frame Event Data Type.
USB_DEVICE_EVENT_DATA_SYNCH_FRAME | USB Device Synch Frame Event Data type.
USB_DEVICE_RESULT | USB Device Layer Results Enumeration.
USB_DEVICE_TRANSFER_FLAGS | Enumerated data type that identifies the USB Device Layer Transfer Flags.
USB_DEVICE_TRANSFER_HANDLE | Data type for USB Device Endpoint Data Transfer Handle.
USB_DEVICE_MICROSOFT_OS_DESCRIPTOR_SUPPORT_ENABLE | Specifies if the USB Device stack should support Microsoft OS Descriptor.