本文整理汇总了C++中bus_teardown_intr函数的典型用法代码示例。如果您正苦于以下问题:C++ bus_teardown_intr函数的具体用法?C++ bus_teardown_intr怎么用?C++ bus_teardown_intr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bus_teardown_intr函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: bcm_spi_detach
static int
bcm_spi_detach(device_t dev)
{
struct bcm_spi_softc *sc;
bus_generic_detach(dev);
sc = device_get_softc(dev);
mtx_destroy(&sc->sc_mtx);
if (sc->sc_intrhand)
bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intrhand);
if (sc->sc_irq_res)
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res);
if (sc->sc_mem_res)
bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res);
return (0);
}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:18,代码来源:bcm2835_spi.c
示例2: sdhci_fdt_gpio_teardown
void
sdhci_fdt_gpio_teardown(struct sdhci_fdt_gpio *gpio)
{
if (gpio == NULL)
return;
if (gpio->cd_ihandler != NULL)
bus_teardown_intr(gpio->dev, gpio->cd_ires, gpio->cd_ihandler);
if (gpio->wp_pin != NULL)
gpio_pin_release(gpio->wp_pin);
if (gpio->cd_pin != NULL)
gpio_pin_release(gpio->cd_pin);
if (gpio->cd_ires != NULL)
bus_release_resource(gpio->dev, SYS_RES_IRQ, 0, gpio->cd_ires);
free(gpio, M_DEVBUF);
}
开发者ID:2trill2spill,项目名称:freebsd,代码行数:18,代码来源:sdhci_fdt_gpio.c
示例3: ar71xx_ehci_detach
static int
ar71xx_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,代码来源:ar71xx_ehci.c
示例4: dotg_obio_detach
static int
dotg_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,代码来源:rt305x_dotg.c
示例5: at91_st_deactivate
static void
at91_st_deactivate(device_t dev)
{
struct at91_st_softc *sc = timer_softc;
if (sc->sc_intrhand)
bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intrhand);
sc->sc_intrhand = NULL;
if (sc->sc_irq_res)
bus_release_resource(dev, SYS_RES_IRQ,
rman_get_rid(sc->sc_irq_res), sc->sc_irq_res);
sc->sc_irq_res = NULL;
if (sc->sc_mem_res)
bus_release_resource(dev, SYS_RES_MEMORY,
rman_get_rid(sc->sc_mem_res), sc->sc_mem_res);
sc->sc_mem_res = NULL;
}
开发者ID:ele7enxxh,项目名称:dtrace-pf,代码行数:19,代码来源:at91_st.c
示例6: ti_wdt_detach
static int
ti_wdt_detach(device_t dev)
{
struct ti_wdt_softc *sc;
sc = device_get_softc(dev);
if (sc->sc_ev_tag)
EVENTHANDLER_DEREGISTER(watchdog_list, sc->sc_ev_tag);
if (sc->sc_intr)
bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intr);
if (sc->sc_irq_res)
bus_release_resource(dev, SYS_RES_IRQ,
rman_get_rid(sc->sc_irq_res), sc->sc_irq_res);
if (sc->sc_mem_res)
bus_release_resource(dev, SYS_RES_MEMORY,
rman_get_rid(sc->sc_mem_res), sc->sc_mem_res);
return (0);
}
开发者ID:coyizumi,项目名称:cs111,代码行数:19,代码来源:ti_wdt.c
示例7: vtpci_free_interrupt
static void
vtpci_free_interrupt(struct vtpci_softc *sc, struct vtpci_interrupt *intr)
{
device_t dev;
dev = sc->vtpci_dev;
if (intr->vti_handler != NULL) {
bus_teardown_intr(dev, intr->vti_irq, intr->vti_handler);
intr->vti_handler = NULL;
}
if (intr->vti_irq != NULL) {
bus_release_resource(dev, SYS_RES_IRQ, intr->vti_rid,
intr->vti_irq);
intr->vti_irq = NULL;
intr->vti_rid = -1;
}
}
开发者ID:2asoft,项目名称:freebsd,代码行数:19,代码来源:virtio_pci.c
示例8: bwi_pci_detach
static int
bwi_pci_detach(device_t dev)
{
struct bwi_pci_softc *psc = device_get_softc(dev);
struct bwi_softc *sc = &psc->sc_sc;
/* check if device was removed */
sc->sc_invalid = !bus_child_present(dev);
bwi_detach(sc);
bus_generic_detach(dev);
bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_irq_handle);
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res);
bus_release_resource(dev, SYS_RES_MEMORY, BS_BAR, sc->sc_mem_res);
return (0);
}
开发者ID:DangerDexter,项目名称:FreeBSD-8.0-dyntick,代码行数:19,代码来源:if_bwi_pci.c
示例9: nm_pci_detach
static int
nm_pci_detach(device_t dev)
{
int r;
struct sc_info *sc;
r = pcm_unregister(dev);
if (r)
return r;
sc = pcm_getdevinfo(dev);
bus_release_resource(dev, SYS_RES_MEMORY, sc->bufid, sc->buf);
bus_release_resource(dev, SYS_RES_MEMORY, sc->regid, sc->reg);
bus_teardown_intr(dev, sc->irq, sc->ih);
bus_release_resource(dev, SYS_RES_IRQ, sc->irqid, sc->irq);
free(sc, M_DEVBUF);
return 0;
}
开发者ID:JabirTech,项目名称:Source,代码行数:19,代码来源:neomagic.c
示例10: tsec_release_intr
static void
tsec_release_intr(struct tsec_softc *sc, struct resource *ires, void *ihand,
int irid, const char *iname)
{
int error;
if (ires == NULL)
return;
error = bus_teardown_intr(sc->dev, ires, ihand);
if (error)
device_printf(sc->dev, "bus_teardown_intr() failed for %s intr"
", error %d\n", iname, error);
error = bus_release_resource(sc->dev, SYS_RES_IRQ, irid, ires);
if (error)
device_printf(sc->dev, "bus_release_resource() failed for %s "
"intr, error %d\n", iname, error);
}
开发者ID:jamesbjackson,项目名称:src,代码行数:19,代码来源:if_tsec_fdt.c
示例11: le_lebuffer_detach
static int
le_lebuffer_detach(device_t dev)
{
struct le_lebuffer_softc *lesc;
struct lance_softc *sc;
lesc = device_get_softc(dev);
sc = &lesc->sc_am7990.lsc;
bus_teardown_intr(dev, lesc->sc_ires, lesc->sc_ih);
am7990_detach(&lesc->sc_am7990);
bus_release_resource(dev, SYS_RES_IRQ, lesc->sc_irid, lesc->sc_ires);
bus_release_resource(dev, SYS_RES_MEMORY, lesc->sc_rrid, lesc->sc_rres);
bus_release_resource(device_get_parent(dev), SYS_RES_MEMORY,
lesc->sc_brid, lesc->sc_bres);
LE_LOCK_DESTROY(sc);
return (0);
}
开发者ID:SayCV,项目名称:rtems-libbsdport,代码行数:19,代码来源:if_le_lebuffer.c
示例12: at91_pio_deactivate
static void
at91_pio_deactivate(device_t dev)
{
struct at91_pio_softc *sc;
sc = device_get_softc(dev);
if (sc->intrhand)
bus_teardown_intr(dev, sc->irq_res, sc->intrhand);
sc->intrhand = 0;
bus_generic_detach(sc->dev);
if (sc->mem_res)
bus_release_resource(dev, SYS_RES_MEMORY,
rman_get_rid(sc->mem_res), sc->mem_res);
sc->mem_res = 0;
if (sc->irq_res)
bus_release_resource(dev, SYS_RES_IRQ,
rman_get_rid(sc->irq_res), sc->irq_res);
sc->irq_res = 0;
}
开发者ID:Alkzndr,项目名称:freebsd,代码行数:19,代码来源:at91_pio.c
示例13: ohci_ec_detach
static int
ohci_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,代码来源:ohci_ec.c
示例14: xhci_pci_detach
static int
xhci_pci_detach(device_t self)
{
struct xhci_softc *sc = device_get_softc(self);
device_t bdev;
if (sc->sc_bus.bdev != NULL) {
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_io_res) {
usb_callout_drain(&sc->sc_callout);
xhci_halt_controller(sc);
}
pci_disable_busmaster(self);
if (sc->sc_irq_res && sc->sc_intr_hdl) {
bus_teardown_intr(self, sc->sc_irq_res, sc->sc_intr_hdl);
sc->sc_intr_hdl = NULL;
}
if (sc->sc_irq_res) {
if (sc->sc_irq_rid == 1)
pci_release_msi(self);
bus_release_resource(self, SYS_RES_IRQ, sc->sc_irq_rid,
sc->sc_irq_res);
sc->sc_irq_res = NULL;
}
if (sc->sc_io_res) {
bus_release_resource(self, SYS_RES_MEMORY, PCI_XHCI_CBMEM,
sc->sc_io_res);
sc->sc_io_res = NULL;
}
xhci_uninit(sc);
return (0);
}
开发者ID:ele7enxxh,项目名称:dtrace-pf,代码行数:42,代码来源:xhci_pci.c
示例15: vmbus_bus_exit
static void
vmbus_bus_exit(void)
{
hv_vmbus_release_unattached_channels();
hv_vmbus_disconnect();
smp_rendezvous(NULL, hv_vmbus_synic_cleanup, NULL, NULL);
hv_vmbus_cleanup();
/* remove swi, bus and intr resource */
bus_teardown_intr(vmbus_devp, intr_res, vmbus_cookiep);
bus_release_resource(vmbus_devp, SYS_RES_IRQ, vmbus_rid, intr_res);
swi_remove(msg_swintr);
swi_remove(event_swintr);
return;
}
开发者ID:varanasisaigithub,项目名称:VendorBranchForFreeBSDonHyper-V,代码行数:20,代码来源:hv_vmbus_drv_freebsd.c
示例16: tegra_i2c_detach
static int
tegra_i2c_detach(device_t dev)
{
struct tegra_i2c_softc *sc;
int rv;
sc = device_get_softc(dev);
tegra_i2c_hw_init(sc);
if (sc->irq_h != NULL)
bus_teardown_intr(dev, sc->irq_res, sc->irq_h);
if (sc->irq_res != NULL)
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res);
if (sc->mem_res != NULL)
bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res);
LOCK_DESTROY(sc);
if (sc->iicbus)
rv = device_delete_child(dev, sc->iicbus);
return (bus_generic_detach(dev));
}
开发者ID:nanakom,项目名称:freebsd,代码行数:20,代码来源:tegra_i2c.c
示例17: tegra_gpio_detach
static int
tegra_gpio_detach(device_t dev)
{
struct tegra_gpio_softc *sc;
sc = device_get_softc(dev);
KASSERT(mtx_initialized(&sc->sc_mtx), ("gpio mutex not initialized"));
gpiobus_detach_bus(dev);
if (sc->gpio_ih != NULL)
bus_teardown_intr(dev, sc->irq_res, sc->gpio_ih);
if (sc->irq_res != NULL)
bus_release_resource(dev, SYS_RES_IRQ, 0, sc->irq_res);
if (sc->mem_res != NULL)
bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->mem_res);
mtx_destroy(&sc->sc_mtx);
return(0);
}
开发者ID:JasonFord53,项目名称:freebsd,代码行数:20,代码来源:tegra_gpio.c
示例18: ntb_teardown_interrupts
static void
ntb_teardown_interrupts(struct ntb_softc *ntb)
{
struct ntb_int_info *current_int;
int i;
for (i = 0; i < ntb->allocated_interrupts; i++) {
current_int = &ntb->int_info[i];
if (current_int->tag != NULL)
bus_teardown_intr(ntb->device, current_int->res,
current_int->tag);
if (current_int->res != NULL)
bus_release_resource(ntb->device, SYS_RES_IRQ,
rman_get_rid(current_int->res), current_int->res);
}
ntb_free_callbacks(ntb);
pci_release_msi(ntb->device);
}
开发者ID:Ricky54326,项目名称:freebsd,代码行数:20,代码来源:ntb_hw.c
示例19: ti_gpio_detach_intr
static int
ti_gpio_detach_intr(device_t dev)
{
int i;
struct ti_gpio_softc *sc;
/* Teardown our interrupt handlers. */
sc = device_get_softc(dev);
for (i = 0; i < MAX_GPIO_INTRS; i++) {
if (sc->sc_irq_res[i] == NULL)
break;
if (sc->sc_irq_hdl[i]) {
bus_teardown_intr(dev, sc->sc_irq_res[i],
sc->sc_irq_hdl[i]);
}
}
return (0);
}
开发者ID:coyizumi,项目名称:cs111,代码行数:20,代码来源:ti_gpio.c
示例20: ppt_teardown_msix_intr
static void
ppt_teardown_msix_intr(struct pptdev *ppt, int idx)
{
int rid;
struct resource *res;
void *cookie;
rid = ppt->msix.startrid + idx;
res = ppt->msix.res[idx];
cookie = ppt->msix.cookie[idx];
if (cookie != NULL)
bus_teardown_intr(ppt->dev, res, cookie);
if (res != NULL)
bus_release_resource(ppt->dev, SYS_RES_IRQ, rid, res);
ppt->msix.res[idx] = NULL;
ppt->msix.cookie[idx] = NULL;
}
开发者ID:ele7enxxh,项目名称:dtrace-pf,代码行数:20,代码来源:ppt.c
注:本文中的bus_teardown_intr函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论