本文整理汇总了C++中USBDEVNAME函数的典型用法代码示例。如果您正苦于以下问题:C++ USBDEVNAME函数的具体用法?C++ USBDEVNAME怎么用?C++ USBDEVNAME使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了USBDEVNAME函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: url_csr_write_1
/* write 1byte to register */
Static int
url_csr_write_1(struct url_softc *sc, int reg, int aval)
{
u_int8_t val = aval;
DPRINTFN(0x100,
("%s: %s: enter\n", USBDEVNAME(sc->sc_dev), __func__));
if (sc->sc_dying)
return (0);
return (url_mem(sc, URL_CMD_WRITEMEM, reg, &val, 1) ? -1 : 0);
}
示例2: alloc_pipe
/* alloc/free pipe */
static usbd_status
alloc_pipe(struct umidi_endpoint *ep)
{
struct umidi_softc *sc = ep->sc;
usbd_status err;
usb_endpoint_descriptor_t *epd;
epd = usbd_get_endpoint_descriptor(sc->sc_iface, ep->addr);
/*
* For output, an improvement would be to have a buffer bigger than
* wMaxPacketSize by num_jacks-1 additional packet slots; that would
* allow out_solicit to fill the buffer to the full packet size in
* all cases. But to use usbd_alloc_buffer to get a slightly larger
* buffer would not be a good way to do that, because if the addition
* would make the buffer exceed USB_MEM_SMALL then a substantially
* larger block may be wastefully allocated. Some flavor of double
* buffering could serve the same purpose, but would increase the
* code complexity, so for now I will live with the current slight
* penalty of reducing max transfer size by (num_open-num_scheduled)
* packet slots.
*/
ep->buffer_size = UGETW(epd->wMaxPacketSize);
ep->buffer_size -= ep->buffer_size % UMIDI_PACKET_SIZE;
DPRINTF(("%s: alloc_pipe %p, buffer size %u\n",
USBDEVNAME(sc->sc_dev), ep, ep->buffer_size));
ep->num_scheduled = 0;
ep->this_schedule = 0;
ep->next_schedule = 0;
ep->soliciting = 0;
ep->armed = 0;
ep->xfer = usbd_alloc_xfer(sc->sc_udev);
if (ep->xfer == NULL) {
err = USBD_NOMEM;
goto quit;
}
ep->buffer = usbd_alloc_buffer(ep->xfer, ep->buffer_size);
if (ep->buffer == NULL) {
usbd_free_xfer(ep->xfer);
err = USBD_NOMEM;
goto quit;
}
ep->next_slot = ep->buffer;
err = usbd_open_pipe(sc->sc_iface, ep->addr, 0, &ep->pipe);
if (err)
usbd_free_xfer(ep->xfer);
ep->solicit_cookie = softint_establish(SOFTINT_CLOCK, out_solicit, ep);
quit:
return err;
}
示例3: uvscom_shutdown
Static usbd_status
uvscom_shutdown(struct uvscom_softc *sc)
{
usb_device_request_t req;
usbd_status err;
DPRINTF(("%s: send shutdown\n", USBDEVNAME(sc->sc_dev)));
req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
req.bRequest = UVSCOM_SHUTDOWN;
USETW(req.wValue, 0);
USETW(req.wIndex, 0);
USETW(req.wLength, 0);
err = usbd_do_request(sc->sc_udev, &req, NULL);
if (err) {
printf("%s: uvscom_shutdown: %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
return (err);
}
return (USBD_NORMAL_COMPLETION);
}
示例4: umct_close
Static void
umct_close(void *addr, int portno)
{
struct umct_softc *sc;
int err;
sc = addr;
if (sc->sc_ucom.sc_dying)
return;
if (sc->sc_intr_pipe != NULL) {
err = usbd_abort_pipe(sc->sc_intr_pipe);
if (err)
printf("%s: abort interrupt pipe failed: %s\n",
USBDEVNAME(sc->sc_ucom.sc_dev), usbd_errstr(err));
err = usbd_close_pipe(sc->sc_intr_pipe);
if (err)
printf("%s: close interrupt pipe failed: %s\n",
USBDEVNAME(sc->sc_ucom.sc_dev), usbd_errstr(err));
free(sc->sc_intr_buf, M_USBDEV);
sc->sc_intr_pipe = NULL;
}
}
示例5: uvscom_set_line_coding
Static usbd_status
uvscom_set_line_coding(struct uvscom_softc *sc, uint16_t lsp, uint16_t ls)
{
usb_device_request_t req;
usbd_status err;
DPRINTF(("%s: uvscom_set_line_coding: %02x %02x\n",
USBDEVNAME(sc->sc_dev), lsp, ls));
req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
req.bRequest = UVSCOM_SET_SPEED;
USETW(req.wValue, lsp);
USETW(req.wIndex, 0);
USETW(req.wLength, 0);
err = usbd_do_request(sc->sc_udev, &req, NULL);
if (err) {
printf("%s: uvscom_set_line_coding: %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
return (err);
}
req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
req.bRequest = UVSCOM_SET_PARAM;
USETW(req.wValue, ls);
USETW(req.wIndex, 0);
USETW(req.wLength, 0);
err = usbd_do_request(sc->sc_udev, &req, NULL);
if (err) {
printf("%s: uvscom_set_line_coding: %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(err));
return (err);
}
return (USBD_NORMAL_COMPLETION);
}
示例6: cdce_txeof
Static void
cdce_txeof(usbd_xfer_handle xfer, usbd_private_handle priv, usbd_status status)
{
struct ue_chain *c = priv;
struct cdce_softc *sc = c->ue_sc;
struct ifnet *ifp;
usbd_status err;
CDCE_LOCK(sc);
ifp = GET_IFP(sc);
if (sc->cdce_dying ||
!(ifp->if_flags & IFF_RUNNING)) {
CDCE_UNLOCK(sc);
return;
}
if (status != USBD_NORMAL_COMPLETION) {
if (status == USBD_NOT_STARTED || status == USBD_CANCELLED) {
CDCE_UNLOCK(sc);
return;
}
ifp->if_oerrors++;
printf("%s: usb error on tx: %s\n", USBDEVNAME(sc->cdce_dev),
usbd_errstr(status));
if (status == USBD_STALLED)
usbd_clear_endpoint_stall(sc->cdce_bulkout_pipe);
CDCE_UNLOCK(sc);
return;
}
ifp->if_flags &= ~IFF_OACTIVE;
usbd_get_xfer_status(c->ue_xfer, NULL, NULL, NULL, &err);
if (c->ue_mbuf != NULL) {
c->ue_mbuf->m_pkthdr.rcvif = ifp;
usb_tx_done(c->ue_mbuf);
c->ue_mbuf = NULL;
}
if (err)
ifp->if_oerrors++;
else
ifp->if_opackets++;
CDCE_UNLOCK(sc);
return;
}
示例7: dump_sc
static void
dump_sc(struct umidi_softc *sc)
{
int i;
DPRINTFN(10, ("%s: dump_sc\n", USBDEVNAME(sc->sc_dev)));
for (i=0; i<sc->sc_out_num_endpoints; i++) {
DPRINTFN(10, ("\tout_ep(%p):\n", &sc->sc_out_ep[i]));
dump_ep(&sc->sc_out_ep[i]);
}
for (i=0; i<sc->sc_in_num_endpoints; i++) {
DPRINTFN(10, ("\tin_ep(%p):\n", &sc->sc_in_ep[i]));
dump_ep(&sc->sc_in_ep[i]);
}
}
示例8: umass_init_insystem
Static usbd_status
umass_init_insystem(struct umass_softc *sc)
{
usbd_status err;
err = usbd_set_interface(sc->sc_iface, 1);
if (err) {
DPRINTF(UDMASS_USB,
("%s: could not switch to Alt Interface 1\n",
USBDEVNAME(sc->sc_dev)));
return (err);
}
return (USBD_NORMAL_COMPLETION);
}
示例9: uvscom_set_line
Static usbd_status
uvscom_set_line(struct uvscom_softc *sc, uint16_t line)
{
usb_device_request_t req;
usbd_status err;
DPRINTF(("%s: uvscom_set_line: %04x\n",
USBDEVNAME(sc->sc_ucom.sc_dev), line));
req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
req.bRequest = UVSCOM_LINE_CTL;
USETW(req.wValue, line);
USETW(req.wIndex, 0);
USETW(req.wLength, 0);
err = usbd_do_request(sc->sc_ucom.sc_udev, &req, NULL);
if (err) {
printf("%s: uvscom_set_line: %s\n",
USBDEVNAME(sc->sc_ucom.sc_dev), usbd_errstr(err));
return (err);
}
return (USBD_NORMAL_COMPLETION);
}
示例10: ucomwritecb
Static void
ucomwritecb(usbd_xfer_handle xfer, usbd_private_handle p, usbd_status status)
{
struct ucom_softc *sc = (struct ucom_softc *)p;
struct tty *tp = sc->sc_tty;
u_int32_t cc;
int s;
DPRINTF(("ucomwritecb: status = %d\n", status));
if (status == USBD_CANCELLED || sc->sc_dying)
goto error;
if (status != USBD_NORMAL_COMPLETION) {
printf("%s: ucomwritecb: %s\n",
USBDEVNAME(sc->sc_dev), usbd_errstr(status));
if (status == USBD_STALLED)
usbd_clear_endpoint_stall_async(sc->sc_bulkin_pipe);
/* XXX we should restart after some delay. */
goto error;
}
usbd_get_xfer_status(xfer, NULL, NULL, &cc, NULL);
DPRINTF(("ucomwritecb: cc = %d\n", cc));
/* convert from USB bytes to tty bytes */
cc -= sc->sc_opkthdrlen;
s = spltty();
CLR(tp->t_state, TS_BUSY);
if (ISSET(tp->t_state, TS_FLUSH))
CLR(tp->t_state, TS_FLUSH);
else
ndflush(&tp->t_outq, cc);
(*linesw[tp->t_line].l_start)(tp);
splx(s);
return;
error:
s = spltty();
CLR(tp->t_state, TS_BUSY);
splx(s);
return;
}
示例11: uvscom_rts
Static void
uvscom_rts(struct uvscom_softc *sc, int onoff)
{
DPRINTF(("%s: uvscom_rts: onoff = %d\n",
USBDEVNAME(sc->sc_dev), onoff));
if (sc->sc_rts == onoff)
return; /* no change */
sc->sc_rts = onoff;
if (onoff)
SET(sc->sc_lcr, UVSCOM_RTS);
else
CLR(sc->sc_lcr, UVSCOM_RTS);
uvscom_set_line(sc, sc->sc_lcr);
}
示例12: ucomclose
static int
ucomclose(dev_t dev, int flag, int mode, usb_proc_ptr p)
{
struct ucom_softc *sc;
struct tty *tp;
int s;
USB_GET_SC(ucom, UCOMUNIT(dev), sc);
tp = sc->sc_tty;
DPRINTF(("%s: ucomclose: unit = %d\n",
USBDEVNAME(sc->sc_dev), UCOMUNIT(dev)));
if (!ISSET(tp->t_state, TS_ISOPEN))
goto quit;
s = spltty();
(*linesw[tp->t_line].l_close)(tp, flag);
disc_optim(tp, &tp->t_termios, sc);
ttyclose(tp);
splx(s);
if (sc->sc_dying)
goto quit;
if (!ISSET(tp->t_state, TS_ISOPEN)) {
/*
* Although we got a last close, the device may still be in
* use; e.g. if this was the dialout node, and there are still
* processes waiting for carrier on the non-dialout node.
*/
ucom_cleanup(sc);
}
if (sc->sc_callback->ucom_close != NULL)
sc->sc_callback->ucom_close(sc->sc_parent, sc->sc_portno);
quit:
if (--sc->sc_refcnt < 0)
usb_detach_wakeup(USBDEV(sc->sc_dev));
return (0);
}
示例13: describe_mididev
/*
* TODO: the 0-based cable numbers will often not match the labeling of the
* equipment. Ideally:
* For class-compliant devices: get the iJack string from the jack descriptor.
* Otherwise:
* - support a DISPLAY_BASE_CN quirk (add the value to each internal cable
* number for display)
* - support an array quirk explictly giving a char * for each jack.
* For now, you get 0-based cable numbers. If there are multiple endpoints and
* the CNs are not globally unique, each is shown with its associated endpoint
* address in hex also. That should not be necessary when using iJack values
* or a quirk array.
*/
static char *
describe_mididev(struct umidi_mididev *md)
{
char in_label[16];
char out_label[16];
const char *unit_label;
char *final_label;
struct umidi_softc *sc;
int show_ep_in;
int show_ep_out;
size_t len;
sc = md->sc;
show_ep_in = sc-> sc_in_num_endpoints > 1 && !sc->cblnums_global;
show_ep_out = sc->sc_out_num_endpoints > 1 && !sc->cblnums_global;
if ( NULL != md->in_jack )
snprintf(in_label, sizeof in_label,
show_ep_in ? "<%d(%x) " : "<%d ",
md->in_jack->cable_number,
md->in_jack->endpoint->addr);
else
in_label[0] = '\0';
if ( NULL != md->out_jack )
snprintf(out_label, sizeof out_label,
show_ep_out ? ">%d(%x) " : ">%d ",
md->out_jack->cable_number,
md->out_jack->endpoint->addr);
else
in_label[0] = '\0';
unit_label = USBDEVNAME(sc->sc_dev);
len = strlen(in_label) + strlen(out_label) + strlen(unit_label) + 4;
final_label = malloc(len, M_USBDEV, M_WAITOK);
snprintf(final_label, len, "%s%son %s",
in_label, out_label, unit_label);
return final_label;
}
示例14: umct_request
Static int
umct_request(struct umct_softc *sc, uint8_t request, int len, uint32_t value)
{
usb_device_request_t req;
usbd_status err;
uint8_t oval[4];
req.bmRequestType = UT_WRITE_VENDOR_DEVICE;
req.bRequest = request;
USETW(req.wValue, 0);
USETW(req.wIndex, sc->sc_iface_number);
USETW(req.wLength, len);
USETDW(oval, value);
err = usbd_do_request(sc->sc_ucom.sc_udev, &req, oval);
if (err)
printf("%s: ubsa_request: %s\n",
USBDEVNAME(sc->sc_ucom.sc_dev), usbd_errstr(err));
return (err);
}