This is an old revision of the document!
The current API, this will hopefully change for http://lists.freebsd.org/pipermail/freebsd-usb/2009-March/006631.html
Probiing
struct usb2_attach_arg; struct usb2_device_id; usb2_lookup_id_by_uaa() device_set_usb2_desc()
Descriptors
const char *usb2_errstr(usb2_error_t error);
struct usb2_config_descriptor *usb2_get_config_descriptor(struct usb2_device *udev);
struct usb2_device_descriptor *usb2_get_device_descriptor(struct usb2_device *udev);
struct usb2_interface *usb2_get_iface(struct usb2_device *udev, uint8_t iface_index);
struct usb2_interface_descriptor *usb2_get_interface_descriptor(struct usb2_interface *iface);
uint8_t usb2_get_interface_altindex(struct usb2_interface *iface);
usb2_error_t usb2_set_alt_interface_index(struct usb2_device *udev,
uint8_t iface_index, uint8_t alt_index);
uint8_t usb2_get_mode(struct usb2_device *udev);
uint8_t usb2_get_speed(struct usb2_device *udev);
void usb2_set_parent_iface(struct usb2_device *udev, uint8_t iface_index,
uint8_t parent_index);
usb2_req_set_config()
Xfers
usb2_callback_t;
struct usb2_config;
usb2_error_t usb2_transfer_setup(struct usb2_device *udev,
const uint8_t *ifaces, struct usb2_xfer **pxfer,
const struct usb2_config *setup_start, uint16_t n_setup,
void *priv_sc, struct mtx *priv_mtx);
void usb2_set_frame_data(struct usb2_xfer *xfer, void *ptr,
usb2_frcount_t frindex);
void usb2_set_frame_offset(struct usb2_xfer *xfer, usb2_frlength_t offset,
usb2_frcount_t frindex);
void usb2_start_hardware(struct usb2_xfer *xfer);
void usb2_transfer_clear_stall(struct usb2_xfer *xfer);
void usb2_transfer_drain(struct usb2_xfer *xfer);
void usb2_transfer_set_stall(struct usb2_xfer *xfer);
uint8_t usb2_transfer_pending(struct usb2_xfer *xfer);
void usb2_transfer_start(struct usb2_xfer *xfer);
void usb2_transfer_stop(struct usb2_xfer *xfer);
void usb2_transfer_unsetup(struct usb2_xfer **pxfer, uint16_t n_setup);
USB_GET_STATE()
Procs
usb2_proc_create() usb2_proc_free() usb2_proc_drain() usb2_proc_msignal() usb2_proc_mwait()
Control requests
struct usb2_device_request; usb2_do_request()
Misc
uint8_t usb2_get_bus_index(struct usb2_device *udev); uint8_t usb2_get_device_index(struct usb2_device *udev); void usb2_set_power_mode(struct usb2_device *udev, uint8_t power_mode); uint32_t usb2_get_isoc_fps(struct usb2_device *udev); usb2_pause_mtx()