usb_config
const struct usb_config *usb_cfg;
static const struct usb_config
static const struct usb_config
static const struct usb_config
static const struct usb_config
static const struct usb_config
static const struct usb_config g_audio_config[G_AUDIO_N_TRANSFER] = {
static const struct usb_config g_keyboard_config[G_KEYBOARD_N_TRANSFER] = {
static const struct usb_config g_modem_config[G_MODEM_N_TRANSFER] = {
static const struct usb_config g_mouse_config[G_MOUSE_N_TRANSFER] = {
static const struct usb_config uep_config[UEP_N_TRANSFER] = {
static const struct usb_config uhid_config[UHID_N_TRANSFER] = {
static const struct usb_config ukbd_config[UKBD_N_TRANSFER] = {
static const struct usb_config ums_config[UMS_N_TRANSFER] = {
static const struct usb_config wsp_config[WSP_N_TRANSFER] = {
static const struct usb_config aue_config[AUE_N_TRANSFER] = {
static const struct usb_config axe_config[AXE_N_TRANSFER] = {
static const struct usb_config axge_config[AXGE_N_TRANSFER] = {
static const struct usb_config cdce_config[CDCE_N_TRANSFER] = {
static const struct usb_config cdce_ncm_config[CDCE_N_TRANSFER] = {
const struct usb_config *pcfg;
static const struct usb_config cue_config[CUE_N_TRANSFER] = {
static const struct usb_config ipheth_config[IPHETH_N_TRANSFER] = {
static const struct usb_config kue_config[KUE_N_TRANSFER] = {
static const struct usb_config mos_config[MOS_ENDPT_MAX] = {
static const struct usb_config udav_config[UDAV_N_TRANSFER] = {
static const struct usb_config urndis_config[URNDIS_N_TRANSFER] = {
static const struct usb_config u3g_config[U3G_N_TRANSFER] = {
struct usb_config u3g_config_tmp[U3G_N_TRANSFER];
static const struct usb_config
static const struct usb_config ubsa_config[UBSA_N_TRANSFER] = {
static const struct usb_config ubser_config[UBSER_N_TRANSFER] = {
static const struct usb_config uchcom_config_data[UCHCOM_N_TRANSFER] = {
static const struct usb_config ucycom_config[UCYCOM_N_TRANSFER] = {
static const struct usb_config
static const struct usb_config
static const struct usb_config uftdi_config[UFTDI_N_TRANSFER] = {
static const struct usb_config ugensa_xfer_config[UGENSA_N_TRANSFER] = {
static const struct usb_config uipaq_config_data[UIPAQ_N_TRANSFER] = {
static const struct usb_config ulpt_config[ULPT_N_TRANSFER] = {
static const struct usb_config umcs7840_bulk_config_data[UMCS7840_N_TRANSFERS] = {
static const struct usb_config umcs7840_intr_config_data[1] = {
struct usb_config umcs7840_config_tmp[UMCS7840_N_TRANSFERS];
static const struct usb_config umct_config[UMCT_N_TRANSFER] = {
static const struct usb_config umodem_config[UMODEM_N_TRANSFER] = {
static const struct usb_config umoscom_config_data[UMOSCOM_N_TRANSFER] = {
static const struct usb_config uplcom_config_data[UPLCOM_N_TRANSFER] = {
static const struct usb_config uslcom_config[USLCOM_N_TRANSFER] = {
struct usb_config *);
static const struct usb_config uvisor_config[UVISOR_N_TRANSFER] = {
struct usb_config uvisor_config_copy[UVISOR_N_TRANSFER];
uvisor_init(struct uvisor_softc *sc, struct usb_device *udev, struct usb_config *config)
static const struct usb_config uvscom_config[UVSCOM_N_TRANSFER] = {
static struct usb_config umass_bbb_config[UMASS_T_BBB_MAX] = {
static struct usb_config umass_cbi_config[UMASS_T_CBI_MAX] = {
static const struct usb_config urio_config[URIO_T_MAX] = {
static struct usb_config ustorage_fs_bbb_config[USTORAGE_FS_T_BBB_MAX] = {
const struct usb_config *setup)
const struct usb_config *setup, uint8_t n_setup)
struct usb_config usb_config[1];
memset(usb_config, 0, sizeof(usb_config));
usb_config[0].type = ed->bmAttributes & UE_XFERTYPE;
usb_config[0].endpoint = ed->bEndpointAddress & UE_ADDR;
usb_config[0].direction = ed->bEndpointAddress & (UE_DIR_OUT | UE_DIR_IN);
usb_config[0].interval = USB_DEFAULT_INTERVAL;
usb_config[0].flags.proxy_buffer = 1;
usb_config[0].flags.pre_scale_frames = 1;
usb_config[0].callback = &ugen_ctrl_fs_callback;
usb_config[0].timeout = 0; /* no timeout */
usb_config[0].frames = u.popen->max_frames;
usb_config[0].bufsize = u.popen->max_bufsize;
usb_config[0].usb_mode = USB_MODE_DUAL; /* both modes */
usb_config[0].stream_id = u.popen_stream->stream_id;
if (usb_config[0].type == UE_CONTROL) {
isread = ((usb_config[0].endpoint &
f->fs_xfer + u.popen->ep_index, usb_config, 1,
struct usb_config usb_config[2];
memset(usb_config, 0, sizeof(usb_config));
usb_config[1].type = UE_CONTROL;
usb_config[1].endpoint = 0;
usb_config[1].direction = UE_DIR_ANY;
usb_config[1].timeout = 1000; /* 1 second */
usb_config[1].interval = 50;/* 50 milliseconds */
usb_config[1].bufsize = sizeof(struct usb_device_request);
usb_config[1].callback = &ugen_write_clear_stall_callback;
usb_config[1].usb_mode = USB_MODE_HOST;
usb_config[0].type = ed->bmAttributes & UE_XFERTYPE;
usb_config[0].endpoint = ed->bEndpointAddress & UE_ADDR;
usb_config[0].stream_id = 0; /* XXX support more stream ID's */
usb_config[0].direction = UE_DIR_TX;
usb_config[0].interval = USB_DEFAULT_INTERVAL;
usb_config[0].flags.proxy_buffer = 1;
usb_config[0].usb_mode = USB_MODE_DUAL; /* both modes */
usb_config[0].flags.force_short_xfer = 1;
usb_config[0].callback = &ugen_ctrl_write_callback;
usb_config[0].timeout = f->timeout;
usb_config[0].frames = 1;
usb_config[0].bufsize = f->bufsize;
if (ugen_transfer_setup(f, usb_config, 2)) {
usb_config[0].flags.short_xfer_ok = 1;
usb_config[0].bufsize = 0; /* use default */
usb_config[0].frames = f->nframes;
usb_config[0].callback = &ugen_isoc_write_callback;
usb_config[0].timeout = 0;
usb_config[1] = usb_config[0];
if (ugen_transfer_setup(f, usb_config, 2)) {
struct usb_config usb_config[2];
memset(usb_config, 0, sizeof(usb_config));
usb_config[1].type = UE_CONTROL;
usb_config[1].endpoint = 0;
usb_config[1].direction = UE_DIR_ANY;
usb_config[1].timeout = 1000; /* 1 second */
usb_config[1].interval = 50;/* 50 milliseconds */
usb_config[1].bufsize = sizeof(struct usb_device_request);
usb_config[1].callback = &ugen_read_clear_stall_callback;
usb_config[1].usb_mode = USB_MODE_HOST;
usb_config[0].type = ed->bmAttributes & UE_XFERTYPE;
usb_config[0].endpoint = ed->bEndpointAddress & UE_ADDR;
usb_config[0].stream_id = 0; /* XXX support more stream ID's */
usb_config[0].direction = UE_DIR_RX;
usb_config[0].interval = USB_DEFAULT_INTERVAL;
usb_config[0].flags.proxy_buffer = 1;
usb_config[0].usb_mode = USB_MODE_DUAL; /* both modes */
usb_config[0].flags.short_xfer_ok = 1;
usb_config[0].timeout = f->timeout;
usb_config[0].frames = 1;
usb_config[0].callback = &ugen_ctrl_read_callback;
usb_config[0].bufsize = f->bufsize;
if (ugen_transfer_setup(f, usb_config, 2)) {
usb_config[0].flags.short_xfer_ok = 1;
usb_config[0].bufsize = 0; /* use default */
usb_config[0].frames = f->nframes;
usb_config[0].callback = &ugen_isoc_read_callback;
usb_config[0].timeout = 0;
usb_config[1] = usb_config[0];
if (ugen_transfer_setup(f, usb_config, 2)) {
const struct usb_config *, uint8_t);
static const struct usb_config uhub_config[UHUB_N_TRANSFER] = {
static const struct usb_config bbb_config[ST_MAX] = {
static const struct usb_config bbb_raw_config[1] = {
const struct usb_config *pconfig;
const struct usb_config *setup = parm->curr_setup;
static const struct usb_config usb_control_ep_cfg[USB_CTRL_XFER_MAX] = {
const struct usb_config *setup_start, uint16_t n_setup,
const struct usb_config *setup_end = setup_start + n_setup;
const struct usb_config *setup;
const struct usb_config *curr_setup;
const struct usb_config *setup);
const struct usb_config *setup_start, uint16_t n_setup,
static const struct usb_config uvc_intr_config[8] = {
static struct usb_config uvc_bulk_config[3] = {
static const struct usb_config uvc_config[8] = {
static const struct usb_config mtw_config[MTW_N_XFER] = {
static const struct usb_config rum_config[RUM_N_TRANSFER] = {
static const struct usb_config run_config[RUN_N_XFER] = {
static const struct usb_config urtwn_config[URTWN_N_TRANSFER] = {
static const struct usb_config apple_ir_config[APPLEIR_N_TRANSFER] = {
static const struct usb_config ubt_config[UBT_N_TRANSFER] =
static const struct usb_config ubtbcmfw_config[UBTBCMFW_N_TRANSFER] =