Core Objects and Methods

struct usb_request - describes one i/o request
struct usb_ep - device side representation of USB endpoint
usb_ep_enable - configure endpoint, making it usable
usb_ep_disable - endpoint is no longer usable
usb_ep_alloc_request - allocate a request object to use with this endpoint
usb_ep_free_request - frees a request object
usb_ep_queue - queues (submits) an I/O request to an endpoint.
usb_ep_dequeue - dequeues (cancels, unlinks) an I/O request from an endpoint
usb_ep_set_halt - sets the endpoint halt feature.
usb_ep_clear_halt - clears endpoint halt, and resets toggle
usb_ep_set_wedge - sets the halt feature and ignores clear requests
usb_ep_fifo_status - returns number of bytes in fifo, or error
usb_ep_fifo_flush - flushes contents of a fifo
struct usb_gadget - represents a usb slave device
gadget_is_dualspeed - return true iff the hardware handles high speed
gadget_is_otg - return true iff the hardware is OTG-ready
usb_gadget_frame_number - returns the current frame number
usb_gadget_wakeup - tries to wake up the host connected to this gadget
usb_gadget_set_selfpowered - sets the device selfpowered feature.
usb_gadget_clear_selfpowered - clear the device selfpowered feature.
usb_gadget_vbus_connect - Notify controller that VBUS is powered
usb_gadget_vbus_draw - constrain controller's VBUS power usage
usb_gadget_vbus_disconnect - notify controller about VBUS session end
usb_gadget_connect - software-controlled connect to USB host
usb_gadget_disconnect - software-controlled disconnect from USB host
struct usb_gadget_driver - driver for usb 'slave' devices
usb_gadget_probe_driver - probe a gadget driver
usb_gadget_unregister_driver - unregister a gadget driver
struct usb_string - wraps a C string and its USB id
struct usb_gadget_strings - a set of USB strings in a given language
usb_free_descriptors - free descriptors returned by usb_copy_descriptors

These are declared in <linux/usb/gadget.h>, and are used by gadget drivers to interact with USB peripheral controller drivers.