您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ usbd_close_pipe函数代码示例

51自学网 2021-06-03 09:21:53
  C++
这篇教程C++ usbd_close_pipe函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中usbd_close_pipe函数的典型用法代码示例。如果您正苦于以下问题:C++ usbd_close_pipe函数的具体用法?C++ usbd_close_pipe怎么用?C++ usbd_close_pipe使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了usbd_close_pipe函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ubcmtp_disable

voidubcmtp_disable(void *v){	struct ubcmtp_softc *sc = v;	if (usbd_is_dying(sc->sc_udev) || !(sc->sc_status & UBCMTP_ENABLED))		return;	sc->sc_status &= ~UBCMTP_ENABLED;	ubcmtp_raw_mode(sc, 0);	if (sc->sc_tp_pipe != NULL) {		usbd_abort_pipe(sc->sc_tp_pipe);		usbd_close_pipe(sc->sc_tp_pipe);		sc->sc_tp_pipe = NULL;	}	if (sc->sc_bt_pipe != NULL) {		usbd_abort_pipe(sc->sc_bt_pipe);		usbd_close_pipe(sc->sc_bt_pipe);		sc->sc_bt_pipe = NULL;	}	if (sc->tp_pkt != NULL) {		free(sc->tp_pkt, M_USBDEV, 0);		sc->tp_pkt = NULL;	}	if (sc->bt_pkt != NULL) {		free(sc->bt_pkt, M_USBDEV, 0);		sc->bt_pkt = NULL;	}}
开发者ID:orumin,项目名称:openbsd-efivars,代码行数:32,


示例2: ucom_cleanup

voiducom_cleanup(struct ucom_softc *sc){	DPRINTF(("ucom_cleanup: closing pipes/n"));	sc->sc_open = 0;	ucom_shutdown(sc);	if (sc->sc_bulkin_pipe != NULL) {		usbd_abort_pipe(sc->sc_bulkin_pipe);		usbd_close_pipe(sc->sc_bulkin_pipe);		sc->sc_bulkin_pipe = NULL;	}	if (sc->sc_bulkout_pipe != NULL) {		usbd_abort_pipe(sc->sc_bulkout_pipe);		usbd_close_pipe(sc->sc_bulkout_pipe);		sc->sc_bulkout_pipe = NULL;	}	if (sc->sc_ixfer != NULL) {		if (sc->sc_uhidev == NULL)			usbd_free_xfer(sc->sc_ixfer);		sc->sc_ixfer = NULL;	}	if (sc->sc_oxfer != NULL) {		usbd_free_buffer(sc->sc_oxfer);		if (sc->sc_uhidev == NULL)			usbd_free_xfer(sc->sc_oxfer);		sc->sc_oxfer = NULL;	}}
开发者ID:appleorange1,项目名称:bitrig,代码行数:30,


示例3: uirda_close

intuirda_close(void *h, int flag, int mode,    struct lwp *l){	struct uirda_softc *sc = h;	DPRINTF(("%s: sc=%p/n", __func__, sc));	if (sc->sc_rd_pipe != NULL) {		usbd_abort_pipe(sc->sc_rd_pipe);		usbd_close_pipe(sc->sc_rd_pipe);		sc->sc_rd_pipe = NULL;	}	if (sc->sc_wr_pipe != NULL) {		usbd_abort_pipe(sc->sc_wr_pipe);		usbd_close_pipe(sc->sc_wr_pipe);		sc->sc_wr_pipe = NULL;	}	if (sc->sc_rd_xfer != NULL) {		usbd_free_xfer(sc->sc_rd_xfer);		sc->sc_rd_xfer = NULL;		sc->sc_rd_buf = NULL;	}	if (sc->sc_wr_xfer != NULL) {		usbd_free_xfer(sc->sc_wr_xfer);		sc->sc_wr_xfer = NULL;		sc->sc_wr_buf = NULL;	}	return (0);}
开发者ID:NetBsdDriverProxy,项目名称:NetBsdDriverProxy,代码行数:31,


示例4: ugl_stop

/* * Stop the adapter and free any mbufs allocated to the * RX and TX lists. */voidugl_stop(struct ugl_softc *sc){	struct ifnet		*ifp;	int			i;	DPRINTFN(10,("%s: %s: enter/n", sc->sc_dev.dv_xname,__func__));	ifp = GET_IFP(sc);	ifp->if_timer = 0;	ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE);	/* Stop transfers. */	if (sc->sc_ep[UGL_ENDPT_RX] != NULL) {		usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_RX]);		usbd_close_pipe(sc->sc_ep[UGL_ENDPT_RX]);		sc->sc_ep[UGL_ENDPT_RX] = NULL;	}	if (sc->sc_ep[UGL_ENDPT_TX] != NULL) {		usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_TX]);		usbd_close_pipe(sc->sc_ep[UGL_ENDPT_TX]);		sc->sc_ep[UGL_ENDPT_TX] = NULL;	}	if (sc->sc_ep[UGL_ENDPT_INTR] != NULL) {		usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_INTR]);		usbd_close_pipe(sc->sc_ep[UGL_ENDPT_INTR]);		sc->sc_ep[UGL_ENDPT_INTR] = NULL;	}	/* Free RX resources. */	for (i = 0; i < UGL_RX_LIST_CNT; i++) {		if (sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf != NULL) {			m_freem(sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf);			sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf = NULL;		}		if (sc->sc_cdata.ugl_rx_chain[i].ugl_xfer != NULL) {			usbd_free_xfer(sc->sc_cdata.ugl_rx_chain[i].ugl_xfer);			sc->sc_cdata.ugl_rx_chain[i].ugl_xfer = NULL;		}	}	/* Free TX resources. */	for (i = 0; i < UGL_TX_LIST_CNT; i++) {		if (sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf != NULL) {			m_freem(sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf);			sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf = NULL;		}		if (sc->sc_cdata.ugl_tx_chain[i].ugl_xfer != NULL) {			usbd_free_xfer(sc->sc_cdata.ugl_tx_chain[i].ugl_xfer);			sc->sc_cdata.ugl_tx_chain[i].ugl_xfer = NULL;		}	}}
开发者ID:appleorange1,项目名称:bitrig,代码行数:59,


示例5: udsir_close

/* ARGSUSED */static intudsir_close(void *h, int flag, int mode, struct lwp *l){	struct udsir_softc *sc = h;	DPRINTFN(0, ("%s: sc=%p/n", __func__, sc));	sc->sc_refcnt++;	sc->sc_rd_readinprogress = 1;	sc->sc_closing = 1;	wakeup(&sc->sc_thread);	while (sc->sc_thread != NULL)		tsleep(&sc->sc_closing, PWAIT, "usircl", 0);	if (sc->sc_rd_pipe != NULL) {		usbd_abort_pipe(sc->sc_rd_pipe);	}	if (sc->sc_wr_pipe != NULL) {		usbd_abort_pipe(sc->sc_wr_pipe);	}	if (sc->sc_rd_xfer != NULL) {		usbd_destroy_xfer(sc->sc_rd_xfer);		sc->sc_rd_xfer = NULL;		sc->sc_rd_buf = NULL;	}	if (sc->sc_wr_xfer != NULL) {		usbd_destroy_xfer(sc->sc_wr_xfer);		sc->sc_wr_xfer = NULL;		sc->sc_wr_buf = NULL;	}	if (sc->sc_rd_pipe != NULL) {		usbd_close_pipe(sc->sc_rd_pipe);		sc->sc_rd_pipe = NULL;	}	if (sc->sc_wr_pipe != NULL) {		usbd_close_pipe(sc->sc_wr_pipe);		sc->sc_wr_pipe = NULL;	}	if (sc->sc_ur_buf != NULL) {		kmem_free(sc->sc_ur_buf, IRDA_MAX_FRAME_SIZE);		sc->sc_ur_buf = NULL;	}	if (--sc->sc_refcnt < 0)		usb_detach_wakeupold(sc->sc_dev);	return 0;}
开发者ID:ryo,项目名称:netbsd-src,代码行数:52,


示例6: xboxcontroller_wsmouse_disable

static voidxboxcontroller_wsmouse_disable(void *opaque){	struct xboxcontroller_softc *sc;	sc = (struct xboxcontroller_softc *)opaque;	if (!sc->sc_enabled) {		aprint_error_dev(sc->sc_dev, "already disabled!/n");		return;	}	if (sc->sc_ep != NULL) {		usbd_abort_pipe(sc->sc_ep);		usbd_close_pipe(sc->sc_ep);		sc->sc_ep = NULL;	}	if (sc->sc_buf != NULL) {		free(sc->sc_buf, M_USBDEV);		sc->sc_buf = NULL;	}	sc->sc_enabled = 0;	return;}
开发者ID:NetBsdDriverProxy,项目名称:NetBsdDriverProxy,代码行数:27,


示例7: cdc_open_data_pipes

jresult_t cdc_open_data_pipes(uwh_cdc_dev_h dev_ctx){    jresult_t rc = 0;    jcdc_dev_softc_t *sc = (jcdc_dev_softc_t *)dev_ctx;    DECLARE_FNAME("cdc_open_data_pipes");    DBG_V(DHOST_CDC_GENERAL, ("%s: Entered/n", fname));    /* Open bulk pipes */    rc = usbd_open_pipe(sc->d_iface, sc->bulk_ep_in,         USBD_EXCLUSIVE_USE, &sc->bulk_pipe_in);    if (rc)    {        DBG_E(DHOST_CDC_GENERAL, ("%s: Error opening bulk in pipe./n",            fname));        return rc;    }        rc = usbd_open_pipe(sc->d_iface, sc->bulk_ep_out,         USBD_EXCLUSIVE_USE, &sc->bulk_pipe_out);    if (rc)    {        DBG_E(DHOST_CDC_GENERAL, ("%s: Error opening bulk out pipe./n",            fname));        usbd_close_pipe(sc->bulk_pipe_in);    }    return rc;}
开发者ID:bgtwoigu,项目名称:1110,代码行数:29,


示例8: uhub_detach

/* * Called from process context when the hub is gone. * Detach all devices on active ports. */intuhub_detach(struct device *self, int flags){    struct uhub_softc *sc = (struct uhub_softc *)self;    struct usbd_hub *hub = sc->sc_hub->hub;    struct usbd_port *rup;    int port, nports;    DPRINTF(("uhub_detach: sc=%p flags=%d/n", sc, flags));    if (hub == NULL)		/* Must be partially working */        return (0);    usbd_abort_pipe(sc->sc_ipipe);    usbd_close_pipe(sc->sc_ipipe);    nports = hub->hubdesc.bNbrPorts;    for(port = 0; port < nports; port++) {        rup = &hub->ports[port];        if (rup->device)            usb_disconnect_port(rup, self);    }    usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_hub,                       &sc->sc_dev);    if (hub->ports[0].tt)        free(hub->ports[0].tt, M_USBDEV);    free(hub, M_USBDEV);    sc->sc_hub->hub = NULL;    return (0);}
开发者ID:repos-holder,项目名称:openbsd-patches,代码行数:37,


示例9: ndisusb_detach

static intndisusb_detach(device_t self){	int i, error;	struct ndis_softc       *sc = device_get_softc(self);	struct usb_attach_arg *uaa = device_get_ivars(self);	wlan_serialize_enter();	sc->ndisusb_status |= NDISUSB_STATUS_DETACH;	for (i = 0; i < NDISUSB_ENDPT_MAX; i++) {		if (sc->ndisusb_ep[i] == NULL)			continue;		usbd_abort_pipe(sc->ndisusb_ep[i]);		usbd_close_pipe(sc->ndisusb_ep[i]);		sc->ndisusb_ep[i] = NULL;	}	if (sc->ndisusb_iin_buf != NULL) {		kfree(sc->ndisusb_iin_buf, M_USBDEV);		sc->ndisusb_iin_buf = NULL;	}	ndis_pnpevent_nic(self, NDIS_PNP_EVENT_SURPRISE_REMOVED);	usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, uaa->device, self);	error = ndis_detach(self);	wlan_serialize_exit();	return error;}
开发者ID:mihaicarabas,项目名称:dragonfly,代码行数:33,


示例10: uticom_detach

intuticom_detach(struct device *self, int flags){	struct uticom_softc *sc = (struct uticom_softc *)self;	DPRINTF(("%s: uticom_detach: sc = %p/n",	    sc->sc_dev.dv_xname, sc));	sc->sc_dying = 1;	if (sc->sc_subdev != NULL) {		config_detach(sc->sc_subdev, flags);		sc->sc_subdev = NULL;	}	if (sc->sc_intr_pipe != NULL) {		usbd_abort_pipe(sc->sc_intr_pipe);		usbd_close_pipe(sc->sc_intr_pipe);		free(sc->sc_intr_buf, M_USBDEV);		sc->sc_intr_pipe = NULL;	}	usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,	    &sc->sc_dev);	return (0);}
开发者ID:repos-holder,项目名称:openbsd-patches,代码行数:25,


示例11: uhidclose

intuhidclose(dev_t dev, int flag, int mode, usb_proc_ptr p){	struct uhid_softc *sc;	USB_GET_SC(uhid, UHIDUNIT(dev), sc);	DPRINTF(("uhidclose: sc=%p/n", sc));	/* Disable interrupts. */	usbd_abort_pipe(sc->sc_intrpipe);	usbd_close_pipe(sc->sc_intrpipe);	sc->sc_intrpipe = 0;	ndflush(&sc->sc_q, sc->sc_q.c_cc);	clfree(&sc->sc_q);	free(sc->sc_ibuf, M_USBDEV);	free(sc->sc_obuf, M_USBDEV);	sc->sc_state &= ~UHID_OPEN;	sc->sc_async = 0;	return (0);}
开发者ID:MarginC,项目名称:kame,代码行数:26,


示例12: uhub_detach

/* * Called from process context when the hub is gone. * Detach all devices on active ports. */intuhub_detach(struct device *self, int flags){	struct uhub_softc *sc = (struct uhub_softc *)self;	struct usbd_hub *hub = sc->sc_hub->hub;	struct usbd_port *rup;	int port;	if (hub == NULL)		/* Must be partially working */		return (0);	usbd_abort_pipe(sc->sc_ipipe);	usbd_close_pipe(sc->sc_ipipe);	for (port = 0; port < hub->nports; port++) {		rup = &hub->ports[port];		if (rup->device != NULL) {			usbd_detach(rup->device, self);			rup->device = NULL;		}	}	if (hub->ports[0].tt)		free(hub->ports[0].tt, M_USBDEV, 0);	if (sc->sc_statusbuf)		free(sc->sc_statusbuf, M_USBDEV, 0);	if (hub->ports)		free(hub->ports, M_USBDEV, 0);	free(hub, M_USBDEV, 0);	sc->sc_hub->hub = NULL;	return (0);}
开发者ID:orumin,项目名称:openbsd-efivars,代码行数:37,


示例13: umct_detach

intumct_detach(struct device *self, int flags){	struct umct_softc *sc = (struct umct_softc *)self;	int rv = 0;	DPRINTF(("umct_detach: sc=%p flags=%d/n", sc, flags));        if (sc->sc_intr_pipe != NULL) {                usbd_abort_pipe(sc->sc_intr_pipe);                usbd_close_pipe(sc->sc_intr_pipe);		free(sc->sc_intr_buf, M_USBDEV);                sc->sc_intr_pipe = NULL;        }	sc->sc_dying = 1;	if (sc->sc_subdev != NULL) {		rv = config_detach(sc->sc_subdev, flags);		sc->sc_subdev = NULL;	}	usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc->sc_udev,			   &sc->sc_dev);	return (rv);}
开发者ID:repos-holder,项目名称:openbsd-patches,代码行数:26,


示例14: uhub_detach

/* **************************************************************** *	Fun
C++ usbd_do_request函数代码示例
C++ usbd_abort_pipe函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。