コード例 #1
0
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);
}
コード例 #2
0
ファイル: pci_up1000.c プロジェクト: alenichev/openbsd-kernel
const char *
api_up1000_intr_string(void *icv, pci_intr_handle_t ih)
{
#if 0
	struct irongate_config *icp = icv;
#endif

	return sio_intr_string(NULL /*XXX*/, ih);
}
コード例 #3
0
const char *
dec_550_intr_string(void *ccv, pci_intr_handle_t ih)
{
#if 0
	struct cia_config *ccp = ccv;
#endif
	static char irqstr[16];		/* 12 + 2 + NULL + sanity */

#if NSIO
	if (DEC_550_LINE_IS_ISA(ih))
		return (sio_intr_string(NULL /*XXX*/,
		    DEC_550_LINE_ISA_IRQ(ih)));
#endif

	if (ih >= DEC_550_MAX_IRQ)
		panic("dec_550_intr_string: bogus 550 IRQ 0x%lx", ih);
	sprintf(irqstr, "dec 550 irq %ld", ih);
	return (irqstr);
}
コード例 #4
0
const char *
dec_alphabook1_intr_string(void *lcv, pci_intr_handle_t ih)
{
	return sio_intr_string(NULL /*XXX*/, ih);
}