Core Objects and Methods

Table of Contents
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_alloc_buffer --  allocate an I/O buffer
usb_ep_free_buffer --  frees an i/o buffer
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_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
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_register_driver --  register 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

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