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

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

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

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

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

示例1: usb_bus_mem_alloc_all

/*------------------------------------------------------------------------* *	usb_bus_mem_alloc_all - factored out code * * Returns: *    0: Success * Else: Failure *------------------------------------------------------------------------*/uint8_tusb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat,    usb_bus_mem_cb_t *cb){	bus->alloc_failed = 0;	mtx_init(&bus->bus_mtx, device_get_nameunit(bus->parent),	    NULL, MTX_DEF | MTX_RECURSE);	usb_callout_init_mtx(&bus->power_wdog,	    &bus->bus_mtx, 0);	TAILQ_INIT(&bus->intr_q.head);#if USB_HAVE_BUSDMA	usb_dma_tag_setup(bus->dma_parent_tag, bus->dma_tags,	    dmat, &bus->bus_mtx, NULL, 32, USB_BUS_DMA_TAG_MAX);#endif	if ((bus->devices_max > USB_MAX_DEVICES) ||	    (bus->devices_max < USB_MIN_DEVICES) ||	    (bus->devices == NULL)) {		DPRINTFN(0, "Devices field has not been "		    "initialised properly/n");		bus->alloc_failed = 1;		/* failure */	}#if USB_HAVE_BUSDMA	if (cb) {		cb(bus, &usb_bus_mem_alloc_all_cb);	}#endif	if (bus->alloc_failed) {		usb_bus_mem_free_all(bus, cb);	}	return (bus->alloc_failed);}
开发者ID:wsoltys,项目名称:pacedev,代码行数:42,


示例2: octusb_octeon_detach

static intoctusb_octeon_detach(device_t dev){	struct octusb_octeon_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_dci.sc_bus.bdev) {		bdev = sc->sc_dci.sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_dci.sc_irq_res && sc->sc_dci.sc_intr_hdl) {		/*		 * only call octusb_octeon_uninit() after octusb_octeon_init()		 */		octusb_uninit(&sc->sc_dci);		err = bus_teardown_intr(dev, sc->sc_dci.sc_irq_res,		    sc->sc_dci.sc_intr_hdl);		sc->sc_dci.sc_intr_hdl = NULL;	}	if (sc->sc_dci.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_dci.sc_irq_res);		sc->sc_dci.sc_irq_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_dci.sc_bus, NULL);	return (0);}
开发者ID:ppaeps,项目名称:freebsd-head,代码行数:34,


示例3: a10_ehci_detach

static inta10_ehci_detach(device_t self){	ehci_softc_t *sc = device_get_softc(self);	device_t bdev;	int err;	uint32_t reg_value = 0;	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(self, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(self);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ehci_detach() after ehci_init()		 */		ehci_detach(sc);		err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			/* XXX or should we panic? */			device_printf(self, "Could not tear down irq, %d/n",			    err);		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	/* Disable configure port */	reg_value = A10_READ_4(sc, SW_SDRAM_REG_HPCR_USB2);	reg_value &= ~SW_SDRAM_BP_HPCR_ACCESS;	A10_WRITE_4(sc, SW_SDRAM_REG_HPCR_USB2, reg_value);	/* Disable passby */	reg_value = A10_READ_4(sc, SW_USB_PMU_IRQ_ENABLE);	reg_value &= ~SW_AHB_INCR8; /* AHB INCR8 disable */	reg_value &= ~SW_AHB_INCR4; /* AHB burst type INCR4 disable */	reg_value &= ~SW_AHB_INCRX_ALIGN; /* AHB INCRX align disable */	reg_value &= ~SW_ULPI_BYPASS; /* ULPI bypass disable */	A10_WRITE_4(sc, SW_USB_PMU_IRQ_ENABLE, reg_value);	/* Disable clock for USB */	a10_clk_usb_deactivate();	return (0);}
开发者ID:MattDooner,项目名称:freebsd-west,代码行数:60,


示例4: zy7_ehci_detach

static intzy7_ehci_detach(device_t dev){	ehci_softc_t *sc = device_get_softc(dev);	/* during module unload there are lots of children leftover */	device_delete_children(dev);		sc->sc_flags &= ~EHCI_SCFLG_DONEINIT;	if (sc->sc_irq_res && sc->sc_intr_hdl)		/* call ehci_detach() after ehci_init() called after		 * successful bus_setup_intr().		 */		ehci_detach(sc);	if (sc->sc_irq_res) {		if (sc->sc_intr_hdl != NULL)			bus_teardown_intr(dev, sc->sc_irq_res,					  sc->sc_intr_hdl);		bus_release_resource(dev, SYS_RES_IRQ,			     rman_get_rid(sc->sc_irq_res), sc->sc_irq_res);	}	if (sc->sc_io_res)		bus_release_resource(dev, SYS_RES_MEMORY,			     rman_get_rid(sc->sc_io_res), sc->sc_io_res);	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	return (0);}
开发者ID:kwitaszczyk,项目名称:freebsd,代码行数:31,


示例5: at91_udp_detach

static intat91_udp_detach(device_t dev){	struct at91_udp_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_dci.sc_bus.bdev) {		bdev = sc->sc_dci.sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	USB_BUS_LOCK(&sc->sc_dci.sc_bus);	callout_stop(&sc->sc_vbus);	USB_BUS_UNLOCK(&sc->sc_dci.sc_bus);	callout_drain(&sc->sc_vbus);	/* disable Transceiver */	AT91_UDP_WRITE_4(&sc->sc_dci, AT91_UDP_TXVC, AT91_UDP_TXVC_DIS);	/* disable and clear all interrupts */	AT91_UDP_WRITE_4(&sc->sc_dci, AT91_UDP_IDR, 0xFFFFFFFF);	AT91_UDP_WRITE_4(&sc->sc_dci, AT91_UDP_ICR, 0xFFFFFFFF);	if (sc->sc_dci.sc_irq_res && sc->sc_dci.sc_intr_hdl) {		/*		 * only call at91_udp_uninit() after at91_udp_init()		 */		at91dci_uninit(&sc->sc_dci);		err = bus_teardown_intr(dev, sc->sc_dci.sc_irq_res,		    sc->sc_dci.sc_intr_hdl);		sc->sc_dci.sc_intr_hdl = NULL;	}	if (sc->sc_dci.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_dci.sc_irq_res);		sc->sc_dci.sc_irq_res = NULL;	}	if (sc->sc_dci.sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, MEM_RID,		    sc->sc_dci.sc_io_res);		sc->sc_dci.sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_dci.sc_bus, NULL);	/* disable clocks */	at91_pmc_clock_disable(sc->sc_iclk);	at91_pmc_clock_disable(sc->sc_fclk);	at91_pmc_clock_disable(sc->sc_mclk);	at91_pmc_clock_deref(sc->sc_fclk);	at91_pmc_clock_deref(sc->sc_iclk);	at91_pmc_clock_deref(sc->sc_mclk);	return (0);}
开发者ID:JabirTech,项目名称:Source,代码行数:60,


示例6: dotg_fdt_detach

static intdotg_fdt_detach(device_t dev){	struct dwc_otg_softc *sc = device_get_softc(dev);	int err;	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call dotg_fdt_uninit() after dotg_fdt_init()		 */		dwc_otg_uninit(sc);		err = bus_teardown_intr(dev, sc->sc_irq_res,		    sc->sc_intr_hdl);		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, NULL);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:33,


示例7: atmegadci_detach

static intatmegadci_detach(device_t dev){	struct atmegadci_super_softc *sc = device_get_softc(dev);	int err;	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_otg.sc_irq_res && sc->sc_otg.sc_intr_hdl) {		/*		 * only call atmegadci_uninit() after atmegadci_init()		 */		atmegadci_uninit(&sc->sc_otg);		err = bus_teardown_intr(dev, sc->sc_otg.sc_irq_res,		    sc->sc_otg.sc_intr_hdl);		sc->sc_otg.sc_intr_hdl = NULL;	}	/* free IRQ channel, if any */	if (sc->sc_otg.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_otg.sc_irq_res);		sc->sc_otg.sc_irq_res = NULL;	}	/* free memory resource, if any */	if (sc->sc_otg.sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0,		    sc->sc_otg.sc_io_res);		sc->sc_otg.sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_otg.sc_bus, NULL);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:35,


示例8: imx_ehci_detach

static intimx_ehci_detach(device_t dev){	struct imx_ehci_softc *sc;	ehci_softc_t *esc;	sc = device_get_softc(dev);	esc = &sc->ehci_softc;	if (esc->sc_bus.bdev != NULL)		device_delete_child(dev, esc->sc_bus.bdev);	if (esc->sc_flags & EHCI_SCFLG_DONEINIT)		ehci_detach(esc);	if (esc->sc_intr_hdl != NULL)		bus_teardown_intr(dev, esc->sc_irq_res, 		    esc->sc_intr_hdl);	if (sc->ehci_irq_res != NULL)		bus_release_resource(dev, SYS_RES_IRQ, 0, 		    sc->ehci_irq_res);	if (sc->ehci_mem_res != NULL)		bus_release_resource(dev, SYS_RES_MEMORY, 0,		    sc->ehci_mem_res);	usb_bus_mem_free_all(&esc->sc_bus, &ehci_iterate_hw_softc);	/* During module unload there are lots of children leftover */	device_delete_children(dev);	return (0);}
开发者ID:coyizumi,项目名称:cs111,代码行数:31,


示例9: musbotg_detach

static intmusbotg_detach(device_t dev){	struct musbotg_super_softc *sc = device_get_softc(dev);	int err;	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_otg.sc_irq_res && sc->sc_otg.sc_intr_hdl) {		/*		 * only call musbotg_uninit() after musbotg_init()		 */		musbotg_uninit(&sc->sc_otg);		err = bus_teardown_intr(dev, sc->sc_otg.sc_irq_res,		    sc->sc_otg.sc_intr_hdl);		sc->sc_otg.sc_intr_hdl = NULL;	}	usb_bus_mem_free_all(&sc->sc_otg.sc_bus, NULL);	/* Free resources if any */	if (sc->sc_mem_res[0])		bus_release_resources(dev, am335x_musbotg_mem_spec,		    sc->sc_mem_res);	if (sc->sc_otg.sc_irq_res)		bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irq_rid,		    sc->sc_otg.sc_irq_res);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:33,


示例10: ohci_atmelarm_detach

static intohci_atmelarm_detach(device_t dev){	struct at91_ohci_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_ohci.sc_bus.bdev) {		bdev = sc->sc_ohci.sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	/*	 * Put the controller into reset, then disable clocks and do	 * the MI tear down.  We have to disable the clocks/hardware	 * after we do the rest of the teardown.  We also disable the	 * clocks in the opposite order we acquire them, but that	 * doesn't seem to be absolutely necessary.  We free up the	 * clocks after we disable them, so the system could, in	 * theory, reuse them.	 */	bus_space_write_4(sc->sc_ohci.sc_io_tag, sc->sc_ohci.sc_io_hdl,	    OHCI_CONTROL, 0);	at91_pmc_clock_disable(sc->fclk);	at91_pmc_clock_disable(sc->iclk);	at91_pmc_clock_disable(sc->mclk);	at91_pmc_clock_deref(sc->fclk);	at91_pmc_clock_deref(sc->iclk);	at91_pmc_clock_deref(sc->mclk);	if (sc->sc_ohci.sc_irq_res && sc->sc_ohci.sc_intr_hdl) {		/*		 * only call ohci_detach() after ohci_init()		 */		ohci_detach(&sc->sc_ohci);		err = bus_teardown_intr(dev, sc->sc_ohci.sc_irq_res, sc->sc_ohci.sc_intr_hdl);		sc->sc_ohci.sc_intr_hdl = NULL;	}	if (sc->sc_ohci.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_ohci.sc_irq_res);		sc->sc_ohci.sc_irq_res = NULL;	}	if (sc->sc_ohci.sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, MEM_RID,		    sc->sc_ohci.sc_io_res);		sc->sc_ohci.sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_ohci.sc_bus, &ohci_iterate_hw_softc);	return (0);}
开发者ID:2asoft,项目名称:freebsd,代码行数:56,


示例11: uhci_pci_detach

intuhci_pci_detach(device_t self){	uhci_softc_t *sc = device_get_softc(self);	device_t bdev;	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(self, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(self);	/*	 * disable interrupts that might have been switched on in	 * uhci_init.	 */	if (sc->sc_io_res) {		USB_BUS_LOCK(&sc->sc_bus);		/* stop the controller */		uhci_reset(sc);		USB_BUS_UNLOCK(&sc->sc_bus);	}	pci_disable_busmaster(self);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		int err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err) {			/* XXX or should we panic? */			device_printf(self, "Could not tear down irq, %d/n",			    err);		}		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_IOPORT, PCI_UHCI_BASE_REG,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &uhci_iterate_hw_softc);	return (0);}
开发者ID:cyrilmagsuci,项目名称:freebsd,代码行数:51,


示例12: musbotg_detach

static intmusbotg_detach(device_t dev){	struct musbotg_super_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	int i;	for (i = 0; i < AM335X_USB_PORTS; i++) {		if (sc->sc_otg[i].sc_bus.bdev) {			bdev = sc->sc_otg[i].sc_bus.bdev;			device_detach(bdev);			device_delete_child(dev, bdev);		}		if (sc->sc_otg[i].sc_irq_res && sc->sc_otg[i].sc_intr_hdl) {			/*			 * only call musbotg_uninit() after musbotg_init()			 */			musbotg_uninit(&sc->sc_otg[i]);			err = bus_teardown_intr(dev, sc->sc_otg[i].sc_irq_res,			    sc->sc_otg[i].sc_intr_hdl);			sc->sc_otg[i].sc_intr_hdl = NULL;		}		usb_bus_mem_free_all(&sc->sc_otg[i].sc_bus, NULL);	}	if (sc->sc_intr_hdl) {	 	bus_teardown_intr(dev, sc->sc_irq_res[0],		    sc->sc_intr_hdl);		sc->sc_intr_hdl = NULL;	}	/* Free resources if any */	if (sc->sc_mem_res[0])		bus_release_resources(dev, am335x_musbotg_mem_spec,		    sc->sc_mem_res);	if (sc->sc_irq_res[0])		bus_release_resources(dev, am335x_musbotg_irq_spec,		    sc->sc_irq_res);	/* during module unload there are lots of children leftover */	device_delete_children(dev);	return (0);}
开发者ID:ChaosJohn,项目名称:freebsd,代码行数:50,


示例13: ehci_obio_detach

static intehci_obio_detach(device_t self){	ehci_softc_t *sc = device_get_softc(self);	device_t bdev;	int err;	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(self, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(self);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ehci_detach() after ehci_init()		 */		ehci_detach(sc);		/* Stop EHCI clock */		rt305x_sysctl_set(SYSCTL_CLKCFG1, 		  rt305x_sysctl_get(SYSCTL_CLKCFG1) & 		  ~(SYSCTL_CLKCFG1_UPHY0_CLK_EN#ifdef MT7620		    | SYSCTL_CLKCFG1_UPHY1_CLK_EN#endif		));		err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			device_printf(self, "Could not tear down irq, %d/n",				err);		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0,		    sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	return (0);}
开发者ID:2asoft,项目名称:freebsd,代码行数:50,


示例14: bhnd_ehci_detach

static intbhnd_ehci_detach(device_t self){	ehci_softc_t	*sc;	int		 err;	sc = device_get_softc(self);	/* during module unload there are lots of children leftover */	device_delete_children(self);	/*	 * disable interrupts that might have been switched on in ehci_init	 */#ifdef notyet	if (sc->sc_io_res) {		EWRITE4(sc, EHCI_USBINTR, 0);		EWRITE4(sc, USB_BRIDGE_INTR_MASK, 0);	}#endif 	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ehci_detach() after ehci_init()		 */		ehci_detach(sc);		err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			/* XXX or should we panic? */			BHND_ERROR_DEV(self, "Could not tear down irq, %d", err);		sc->sc_intr_hdl = NULL;	} 	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, 0, sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:46,


示例15: saf1761_otg_fdt_detach

static intsaf1761_otg_fdt_detach(device_t dev){	struct saf1761_otg_softc *sc = device_get_softc(dev);	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_irq_res) {		/*		 * Only call uninit() after init()		 */		saf1761_otg_uninit(sc);	}	usb_bus_mem_free_all(&sc->sc_bus, NULL);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:18,


示例16: ar71xx_ehci_detach

static intar71xx_ehci_detach(device_t self){	struct ar71xx_ehci_softc *isc = device_get_softc(self);	ehci_softc_t *sc = &isc->base;	device_t bdev;	int err; 	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(self, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(self); 	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ehci_detach() after ehci_init()		 */		ehci_detach(sc);		err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			/* XXX or should we panic? */			device_printf(self, "Could not tear down irq, %d/n",			    err);		sc->sc_intr_hdl = NULL;	} 	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	return (0);}
开发者ID:cyrilmagsuci,项目名称:freebsd,代码行数:44,


示例17: dotg_obio_detach

static intdotg_obio_detach(device_t dev){	struct dotg_obio_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_dci.sc_bus.bdev) {		bdev = sc->sc_dci.sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_dci.sc_irq_res && sc->sc_dci.sc_intr_hdl) {		/*		 * only call dotg_obio_uninit() after dotg_obio_init()		 */		dotg_uninit(&sc->sc_dci);		/* Stop OTG clock */		rt305x_sysctl_set(SYSCTL_CLKCFG1, 		    rt305x_sysctl_get(SYSCTL_CLKCFG1) & 		    ~SYSCTL_CLKCFG1_OTG_CLK_EN);		err = bus_teardown_intr(dev, sc->sc_dci.sc_irq_res,		    sc->sc_dci.sc_intr_hdl);		sc->sc_dci.sc_intr_hdl = NULL;	}	if (sc->sc_dci.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_dci.sc_irq_res);		sc->sc_dci.sc_irq_res = NULL;	}	if (sc->sc_dci.sc_mem_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0,		    sc->sc_dci.sc_mem_res);		sc->sc_dci.sc_mem_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_dci.sc_bus, NULL);	return (0);}
开发者ID:BillTheBest,项目名称:libuinet,代码行数:44,


示例18: ohci_ec_detach

static intohci_ec_detach(device_t dev){	struct ec_ohci_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_ohci.sc_bus.bdev) {		bdev = sc->sc_ohci.sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	bus_space_write_4(sc->sc_ohci.sc_io_tag, sc->sc_ohci.sc_io_hdl,	    OHCI_CONTROL, 0);	if (sc->sc_ohci.sc_irq_res && sc->sc_ohci.sc_intr_hdl) {		/*		 * only call ohci_detach() after ohci_init()		 */		ohci_detach(&sc->sc_ohci);		err = bus_teardown_intr(dev, sc->sc_ohci.sc_irq_res,		    sc->sc_ohci.sc_intr_hdl);		sc->sc_ohci.sc_intr_hdl = NULL;	}	if (sc->sc_ohci.sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_ohci.sc_irq_res);		sc->sc_ohci.sc_irq_res = NULL;	}	if (sc->sc_ohci.sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, MEM_RID,		    sc->sc_ohci.sc_io_res);		sc->sc_ohci.sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_ohci.sc_bus, &ohci_iterate_hw_softc);	return (0);}
开发者ID:Alkzndr,项目名称:freebsd,代码行数:42,


示例19: ehci_xls_detach

static intehci_xls_detach(device_t self){	ehci_softc_t *sc = device_get_softc(self);	device_t bdev;	int err; 	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(self, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(self);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		ehci_detach(sc);		err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			device_printf(self, "Could not tear down irq, %d/n",			    err);		sc->sc_intr_hdl = 0;	}	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;		sc->sc_io_tag = 0;		sc->sc_io_hdl = 0;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);	return (0);}
开发者ID:BillTheBest,项目名称:libuinet,代码行数:41,


示例20: uss820_atmelarm_detach

static intuss820_atmelarm_detach(device_t dev){	struct uss820dci_softc *sc = device_get_softc(dev);	device_t bdev;	int err;	if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call at91_udp_uninit() after at91_udp_init()		 */		uss820dci_uninit(sc);		err = bus_teardown_intr(dev, sc->sc_irq_res,		    sc->sc_intr_hdl);		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0,		    sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(dev, SYS_RES_IOPORT, 0,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, NULL);	return (0);}
开发者ID:OpenKod,项目名称:src,代码行数:39,


示例21: ehci_oxu_detach

intehci_oxu_detach(device_t self){  ehci_softc_t *sc = device_get_softc(self);  device_t bdev;  if (sc->sc_bus.bdev) {    bdev = sc->sc_bus.bdev;    device_detach(bdev);    device_delete_child(self, bdev);  }  /* during module unload there are lots of children leftover */  device_delete_all_children(self);  oxu210_intr_detach (oxu210_intr_shc);    ehci_detach(sc);  usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);  return (0);}
开发者ID:wsoltys,项目名称:pacedev,代码行数:22,


示例22: ohci_pci_detach

static intohci_pci_detach(device_t self){	ohci_softc_t *sc = device_get_softc(self);	/* during module unload there are lots of children leftover */	device_delete_children(self);	pci_disable_busmaster(self);	if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ohci_detach() after ohci_init()		 */		ohci_detach(sc);		int err = bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);		if (err) {			/* XXX or should we panic? */			device_printf(self, "Could not tear down irq, %d/n",			    err);		}		sc->sc_intr_hdl = NULL;	}	if (sc->sc_irq_res) {		bus_release_resource(self, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(self, SYS_RES_MEMORY, PCI_CBMEM,		    sc->sc_io_res);		sc->sc_io_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ohci_iterate_hw_softc);	return (0);}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:38,


示例23: omap_ehci_detach

/** *	omap_ehci_detach - detach the device and cleanup the driver *	@dev: device handle *	 *	Clean-up routine where everything initialised in omap_ehci_attach is *	freed and cleaned up.  This function calls omap_ehci_fini() to shutdown *	the on-chip module. * *	LOCKING: *	none * *	RETURNS: *	Always returns 0 (success). */static intomap_ehci_detach(device_t dev){	struct omap_ehci_softc *isc = device_get_softc(dev);	ehci_softc_t *sc = &isc->base;	device_t bdev;	int err;		if (sc->sc_bus.bdev) {		bdev = sc->sc_bus.bdev;		device_detach(bdev);		device_delete_child(dev, bdev);	}	/* during module unload there are lots of children leftover */	device_delete_children(dev);		/*	 * disable interrupts that might have been switched on in ehci_init	 */	if (sc->sc_io_res) {		EWRITE4(sc, EHCI_USBINTR, 0);	}		if (sc->sc_irq_res && sc->sc_intr_hdl) {		/*		 * only call ehci_detach() after ehci_init()		 */		ehci_detach(sc);				err = bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intr_hdl);		if (err)			device_printf(dev, "Error: could not tear down irq, %d/n", err);		sc->sc_intr_hdl = NULL;	}		/* Free the resources stored in the base EHCI handler */	if (sc->sc_irq_res) {		bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res);		sc->sc_irq_res = NULL;	}	if (sc->sc_io_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_io_res);		sc->sc_io_res = NULL;	}	/* Release the other register set memory maps */	if (isc->tll_mem_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0, isc->tll_mem_res);		isc->tll_mem_res = NULL;	}	if (isc->uhh_mem_res) {		bus_release_resource(dev, SYS_RES_MEMORY, 0, isc->uhh_mem_res);		isc->uhh_mem_res = NULL;	}	usb_bus_mem_free_all(&sc->sc_bus, &ehci_iterate_hw_softc);		omap_ehci_fini(isc);		return (0);}
开发者ID:ChaosJohn,项目名称:freebsd,代码行数:76,



注:本文中的usb_bus_mem_free_all函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


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