Core Objects and Methods

struct usb_request — describes one i/o request
struct usb_ep_caps — endpoint capabilities description
struct usb_ep — device side representation of USB endpoint
struct usb_gadget — represents a usb slave device
usb_ep_align — returns len aligned to ep's maxpacketsize.
usb_ep_align_maybe — returns len aligned to ep's maxpacketsize if gadget requires quirk_ep_out_aligned_size, otherwise returns len.
gadget_is_altset_supported — return true iff the hardware supports altsettings
gadget_is_stall_supported — return true iff the hardware supports stalling
gadget_is_zlp_supported — return true iff the hardware supports zlp
gadget_avoids_skb_reserve — return true iff the hardware would like to avoid skb_reserve to improve performance.
gadget_is_dualspeed — return true iff the hardware handles high speed
gadget_is_superspeed — return true if the hardware handles superspeed
gadget_is_superspeed_plus — return true if the hardware handles superspeed plus
gadget_is_otg — return true iff the hardware is OTG-ready
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.