void * dec_eb164_pciide_compat_intr_establish(void *v, device_t dev, const struct pci_attach_args *pa, int chan, int (*func)(void *), void *arg) { pci_chipset_tag_t pc = pa->pa_pc; void *cookie = NULL; int bus, irq; char buf[64]; pci_decompose_tag(pc, pa->pa_tag, &bus, NULL, NULL); /* * If this isn't PCI bus #0, all bets are off. */ if (bus != 0) return (NULL); irq = PCIIDE_COMPAT_IRQ(chan); #if NSIO cookie = sio_intr_establish(NULL /*XXX*/, irq, IST_EDGE, IPL_BIO, func, arg); if (cookie == NULL) return (NULL); aprint_normal_dev(dev, "%s channel interrupting at %s\n", PCIIDE_CHANNEL_NAME(chan), sio_intr_string(NULL /*XXX*/, irq, buf, sizeof(buf))); #endif return (cookie); }
void * api_up1000_pciide_compat_intr_establish(void *icv, struct device *dev, struct pci_attach_args *pa, int chan, int (*func)(void *), void *arg) { pci_chipset_tag_t pc = pa->pa_pc; void *cookie = NULL; int bus, irq; pci_decompose_tag(pc, pa->pa_tag, &bus, NULL, NULL); /* * If this isn't PCI bus #0, all bets are off. */ if (bus != 0) return (NULL); irq = PCIIDE_COMPAT_IRQ(chan); #if NSIO cookie = sio_intr_establish(NULL /*XXX*/, irq, IST_EDGE, IPL_BIO, func, arg, dev->dv_xname); if (cookie == NULL) return (NULL); #endif return (cookie); }
void * dec_550_intr_establish(void *ccv, pci_intr_handle_t ih, int level, int (*func)(void *), void *arg) { #if 0 struct cia_config *ccp = ccv; #endif void *cookie; #if NSIO if (DEC_550_LINE_IS_ISA(ih)) return (sio_intr_establish(NULL /*XXX*/, DEC_550_LINE_ISA_IRQ(ih), IST_LEVEL, level, func, arg)); #endif if (ih >= DEC_550_MAX_IRQ) panic("dec_550_intr_establish: bogus dec 550 IRQ 0x%lx", ih); cookie = alpha_shared_intr_establish(dec_550_pci_intr, ih, IST_LEVEL, level, func, arg, "dec 550 irq"); if (cookie != NULL && alpha_shared_intr_firstactive(dec_550_pci_intr, ih)) { scb_set(0x900 + SCB_IDXTOVEC(ih), dec_550_iointr, NULL, level); dec_550_intr_enable(ih); } return (cookie); }
void * dec_alphabook1_intr_establish(void *lcv, pci_intr_handle_t ih, int level, int (*func)(void *), void *arg, const char *name) { /* * PCI interrupts on that platform are ISA interrupts in disguise, * and are edge- rather than level-triggered. */ return sio_intr_establish(NULL /*XXX*/, ih, IST_EDGE, level, func, arg, name); }
void * api_up1000_intr_establish(void *icv, pci_intr_handle_t ih, int level, int (*func)(void *), void *arg, const char *name) { #if 0 struct irongate_config *icp = icv; #endif return sio_intr_establish(NULL /*XXX*/, ih, IST_LEVEL, level, func, arg, name); }