From e1db5c4a473d067a236a9deb6aaf0d4b49037ab0 Mon Sep 17 00:00:00 2001 From: Thorsten Lockert Date: Tue, 20 Feb 1996 04:36:20 +0000 Subject: Pass device name to interrupt establish routines so it can be recorded in the device interrupt chain structures (isa, pci) Move interrupt chain structure definition to so vmstat can get at it (i386) Remove hack to count interrupts the old way (i386) --- sys/arch/alpha/pci/pci_2100_a50.c | 5 +++-- sys/arch/alpha/pci/pci_axppci_33.c | 5 +++-- sys/arch/alpha/pci/pci_kn20aa.c | 5 +++-- sys/arch/alpha/pci/pcivga.c | 3 ++- sys/arch/i386/include/psl.h | 15 +++++++++++++++ sys/arch/i386/isa/clock.c | 2 +- sys/arch/i386/isa/fd.c | 2 +- sys/arch/i386/isa/isa_machdep.c | 12 +++++++----- sys/arch/i386/isa/isa_machdep.h | 15 --------------- sys/arch/i386/isa/lms.c | 2 +- sys/arch/i386/isa/mms.c | 2 +- sys/arch/i386/isa/npx.c | 2 +- sys/arch/i386/isa/pccons.c | 2 +- sys/arch/i386/isa/pcvt/pcvt_drv.c | 2 +- sys/arch/i386/isa/pms.c | 2 +- sys/arch/i386/isa/vector.s | 21 ++------------------- sys/arch/i386/pci/pci_machdep.c | 5 +++-- sys/dev/eisa/aha1742.c | 2 +- sys/dev/ic/com.c | 2 +- sys/dev/isa/aha.c | 2 +- sys/dev/isa/aha1542.c | 2 +- sys/dev/isa/aha284x.c | 2 +- sys/dev/isa/aic6360.c | 2 +- sys/dev/isa/ast.c | 2 +- sys/dev/isa/boca.c | 2 +- sys/dev/isa/bt.c | 2 +- sys/dev/isa/bt742a.c | 2 +- sys/dev/isa/com.c | 2 +- sys/dev/isa/fd.c | 2 +- sys/dev/isa/gus.c | 2 +- sys/dev/isa/if_ed.c | 2 +- sys/dev/isa/if_eg.c | 2 +- sys/dev/isa/if_el.c | 2 +- sys/dev/isa/if_ep.c | 5 +++-- sys/dev/isa/if_fe.c | 2 +- sys/dev/isa/if_ie.c | 2 +- sys/dev/isa/if_le.c | 5 +++-- sys/dev/isa/isavar.h | 2 +- sys/dev/isa/lpt.c | 2 +- sys/dev/isa/mcd.c | 2 +- sys/dev/isa/pas.c | 3 ++- sys/dev/isa/pcmcia_pcic.c | 3 ++- sys/dev/isa/pss.c | 6 +++--- sys/dev/isa/rtfps.c | 3 ++- sys/dev/isa/sb.c | 2 +- sys/dev/isa/seagate.c | 2 +- sys/dev/isa/ultra14f.c | 2 +- sys/dev/isa/wd.c | 2 +- sys/dev/isa/wss.c | 3 ++- sys/dev/isa/wt.c | 2 +- sys/dev/pci/aic7870.c | 5 +++-- sys/dev/pci/if_de.c | 3 ++- sys/dev/pci/if_fpa.c | 3 ++- sys/dev/pci/ncr.c | 7 ++++--- sys/dev/pci/pcivar.h | 2 +- 55 files changed, 101 insertions(+), 101 deletions(-) diff --git a/sys/arch/alpha/pci/pci_2100_a50.c b/sys/arch/alpha/pci/pci_2100_a50.c index 20267d06cce..06fbc924b02 100644 --- a/sys/arch/alpha/pci/pci_2100_a50.c +++ b/sys/arch/alpha/pci/pci_2100_a50.c @@ -48,7 +48,7 @@ void *dec_2100_a50_pci_map_int __P((void *, pci_conftag_t, pci_intr_pin_t, pci_intr_line_t, int, - int (*func)(void *), void *)); + int (*func)(void *), void *, char *)); void dec_2100_a50_pci_unmap_int __P((void *, void *)); __const struct pci_intr_fns dec_2100_a50_pci_intr_fns = { @@ -57,7 +57,7 @@ __const struct pci_intr_fns dec_2100_a50_pci_intr_fns = { }; void * -dec_2100_a50_pci_map_int(acv, tag, pin, line, level, func, arg) +dec_2100_a50_pci_map_int(acv, tag, pin, line, level, func, arg, what) void *acv; pci_conftag_t tag; pci_intr_pin_t pin; @@ -65,6 +65,7 @@ dec_2100_a50_pci_map_int(acv, tag, pin, line, level, func, arg) int level; int (*func) __P((void *)); void *arg; + char *what; { struct apecs_config *acp = acv; int bus, device, pirq; diff --git a/sys/arch/alpha/pci/pci_axppci_33.c b/sys/arch/alpha/pci/pci_axppci_33.c index 3f606fd16f8..2cfb453226b 100644 --- a/sys/arch/alpha/pci/pci_axppci_33.c +++ b/sys/arch/alpha/pci/pci_axppci_33.c @@ -49,7 +49,7 @@ void *dec_axppci_33_pci_map_int __P((void *, pci_conftag_t, pci_intr_pin_t, pci_intr_line_t, int, - int (*func)(void *), void *)); + int (*func)(void *), void *, char *)); void dec_axppci_33_pci_unmap_int __P((void *, void *)); __const struct pci_intr_fns dec_axppci_33_pci_intr_fns = { @@ -58,7 +58,7 @@ __const struct pci_intr_fns dec_axppci_33_pci_intr_fns = { }; void * -dec_axppci_33_pci_map_int(lcv, tag, pin, line, level, func, arg) +dec_axppci_33_pci_map_int(lcv, tag, pin, line, level, func, arg, what) void *lcv; pci_conftag_t tag; pci_intr_pin_t pin; @@ -66,6 +66,7 @@ dec_axppci_33_pci_map_int(lcv, tag, pin, line, level, func, arg) int level; int (*func) __P((void *)); void *arg; + char *what; { struct lca_config *lcp = lcv; int bus, device, pirq; diff --git a/sys/arch/alpha/pci/pci_kn20aa.c b/sys/arch/alpha/pci/pci_kn20aa.c index 7d521dbeac9..f8cff214e01 100644 --- a/sys/arch/alpha/pci/pci_kn20aa.c +++ b/sys/arch/alpha/pci/pci_kn20aa.c @@ -56,7 +56,7 @@ #endif void *kn20aa_pci_map_int __P((void *, pci_conftag_t, pci_intr_pin_t, - pci_intr_line_t, int, int (*func)(void *), void *)); + pci_intr_line_t, int, int (*func)(void *), void *, char *)); void kn20aa_pci_unmap_int __P((void *, void *)); __const struct pci_intr_fns kn20aa_pci_intr_fns = { @@ -122,7 +122,7 @@ pci_kn20aa_pickintr(pcf, pcfa, ppf, ppfa, pifp, pifap) } void * -kn20aa_pci_map_int(ccv, tag, pin, line, level, func, arg) +kn20aa_pci_map_int(ccv, tag, pin, line, level, func, arg, what) void *ccv; pci_conftag_t tag; pci_intr_pin_t pin; @@ -130,6 +130,7 @@ kn20aa_pci_map_int(ccv, tag, pin, line, level, func, arg) int level; int (*func) __P((void *)); void *arg; + char *what; { int device; int kn20aa_slot, kn20aa_irq; diff --git a/sys/arch/alpha/pci/pcivga.c b/sys/arch/alpha/pci/pcivga.c index 049a9d99429..5f62ab3fa73 100644 --- a/sys/arch/alpha/pci/pcivga.c +++ b/sys/arch/alpha/pci/pcivga.c @@ -180,7 +180,8 @@ pcivgaattach(parent, self, aux) #if 0 pci_intrdata = pci_conf_read(sc->sc_pcitag, PCI_INTERRUPT_REG); if (PCI_INTERRUPT_PIN(pci_intrdata) != PCI_INTERRUPT_PIN_NONE) { - sc->sc_intr = pci_map_int(sc->sc_pcitag, IPL_TTY, tgaintr, sc); + sc->sc_intr = pci_map_int(sc->sc_pcitag, IPL_TTY, tgaintr, sc, + sc->sc_dev.dv_xname); if (sc->sc_intr == NULL) printf("%s: WARNING: couldn't map interrupt\n", sc->sc_dev.dv_xname); diff --git a/sys/arch/i386/include/psl.h b/sys/arch/i386/include/psl.h index 3d527e12be5..504708dfe52 100644 --- a/sys/arch/i386/include/psl.h +++ b/sys/arch/i386/include/psl.h @@ -99,6 +99,21 @@ #ifndef LOCORE +/* + * Interrupt handler chains. isa_intr_establish() inserts a handler into + * the list. The handler is called with its (single) argument. + */ + +struct intrhand { + int (*ih_fun)(); + void *ih_arg; + u_long ih_count; + struct intrhand *ih_next; + int ih_level; + int ih_irq; + char *ih_what; +}; + volatile int cpl, ipending, astpending; int imask[5]; diff --git a/sys/arch/i386/isa/clock.c b/sys/arch/i386/isa/clock.c index 9f5fdea7dcb..5cacb8cc9fc 100644 --- a/sys/arch/i386/isa/clock.c +++ b/sys/arch/i386/isa/clock.c @@ -311,7 +311,7 @@ cpu_initclocks() * XXX If you're doing strange things with multiple clocks, you might * want to keep track of clock handlers. */ - (void)isa_intr_establish(0, IST_PULSE, IPL_CLOCK, clockintr, 0); + (void)isa_intr_establish(0, IST_PULSE, IPL_CLOCK, clockintr, 0, "clock"); } void diff --git a/sys/arch/i386/isa/fd.c b/sys/arch/i386/isa/fd.c index 2f8e7ae732e..90ac3987c1d 100644 --- a/sys/arch/i386/isa/fd.c +++ b/sys/arch/i386/isa/fd.c @@ -308,7 +308,7 @@ fdcattach(parent, self, aux) isa_establish(&fdc->sc_id, &fdc->sc_dev); #endif fdc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, fdcintr, - fdc); + fdc, fdc->sc_dev.dv_xname); /* * The NVRAM info only tells us about the first two disks on the diff --git a/sys/arch/i386/isa/isa_machdep.c b/sys/arch/i386/isa/isa_machdep.c index 79877647a6c..0660042436d 100644 --- a/sys/arch/i386/isa/isa_machdep.c +++ b/sys/arch/i386/isa/isa_machdep.c @@ -145,6 +145,8 @@ isa_nmi() return(0); } +int intrstray[ICU_LEN]; + /* * Caught a stray interrupt, notify */ @@ -152,17 +154,15 @@ void isa_strayintr(irq) int irq; { - static u_long strays; - /* * Stray interrupts on irq 7 occur when an interrupt line is raised * and then lowered before the CPU acknowledges it. This generally * means either the device is screwed or something is cli'ing too * long and it's timing out. */ - if (++strays <= 5) + if (intrstray[irq]++ <= 5) log(LOG_ERR, "stray interrupt %d%s\n", irq, - strays >= 5 ? "; stopped logging" : ""); + intrstray[irq] >= 5 ? "; stopped logging" : ""); } int fastvec; @@ -249,12 +249,13 @@ fakeintr(arg) * XXX PRONE TO RACE CONDITIONS, UGLY, 'INTERESTING' INSERTION ALGORITHM. */ void * -isa_intr_establish(irq, type, level, ih_fun, ih_arg) +isa_intr_establish(irq, type, level, ih_fun, ih_arg, ih_what) int irq; int type; int level; int (*ih_fun) __P((void *)); void *ih_arg; + char *ih_what; { struct intrhand **p, *q, *ih; static struct intrhand fakehand = {fakeintr}; @@ -308,6 +309,7 @@ isa_intr_establish(irq, type, level, ih_fun, ih_arg) ih->ih_next = NULL; ih->ih_level = level; ih->ih_irq = irq; + ih->ih_what = ih_what; *p = ih; return (ih); diff --git a/sys/arch/i386/isa/isa_machdep.h b/sys/arch/i386/isa/isa_machdep.h index 495653d9b65..56f956f8c2f 100644 --- a/sys/arch/i386/isa/isa_machdep.h +++ b/sys/arch/i386/isa/isa_machdep.h @@ -77,21 +77,6 @@ #define IOPHYSMEM 0xA0000 -/* - * Interrupt handler chains. isa_intr_establish() inserts a handler into - * the list. The handler is called with its (single) argument. - */ - -struct intrhand { - int (*ih_fun)(); - void *ih_arg; - u_long ih_count; - struct intrhand *ih_next; - int ih_level; - int ih_irq; -}; - - /* * ISA DMA bounce buffers. * XXX should be made partially machine- and bus-mapping-independent. diff --git a/sys/arch/i386/isa/lms.c b/sys/arch/i386/isa/lms.c index 4cacafaa2b9..151fc590264 100644 --- a/sys/arch/i386/isa/lms.c +++ b/sys/arch/i386/isa/lms.c @@ -120,7 +120,7 @@ lmsattach(parent, self, aux) sc->sc_state = 0; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_PULSE, IPL_TTY, lmsintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/arch/i386/isa/mms.c b/sys/arch/i386/isa/mms.c index 7fe4586036d..ef2fa5e1d69 100644 --- a/sys/arch/i386/isa/mms.c +++ b/sys/arch/i386/isa/mms.c @@ -110,7 +110,7 @@ mmsattach(parent, self, aux) sc->sc_state = 0; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_PULSE, IPL_TTY, mmsintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/arch/i386/isa/npx.c b/sys/arch/i386/isa/npx.c index 3ec32a58889..9b58f0e8313 100644 --- a/sys/arch/i386/isa/npx.c +++ b/sys/arch/i386/isa/npx.c @@ -326,7 +326,7 @@ npxattach(parent, self, aux) printf("\n"); lcr0(rcr0() & ~CR0_NE); sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NONE, - npxintr, 0); + npxintr, 0, "npx"); break; case NPX_EXCEPTION: printf(": using exception 16\n"); diff --git a/sys/arch/i386/isa/pccons.c b/sys/arch/i386/isa/pccons.c index 37c5bad0994..73277988ed5 100644 --- a/sys/arch/i386/isa/pccons.c +++ b/sys/arch/i386/isa/pccons.c @@ -471,7 +471,7 @@ pcattach(parent, self, aux) do_async_update(1); sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, pcintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/arch/i386/isa/pcvt/pcvt_drv.c b/sys/arch/i386/isa/pcvt/pcvt_drv.c index 220b4465b3a..0f71a01d6fd 100644 --- a/sys/arch/i386/isa/pcvt/pcvt_drv.c +++ b/sys/arch/i386/isa/pcvt/pcvt_drv.c @@ -336,7 +336,7 @@ pcattach(struct isa_device *dev) #if PCVT_NETBSD > 101 sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, pcintr, - (void *)0); + (void *)0, sc->sc_dev.dv_xname); #else /* PCVT_NETBSD > 100 */ vthand.ih_fun = pcrint; vthand.ih_arg = 0; diff --git a/sys/arch/i386/isa/pms.c b/sys/arch/i386/isa/pms.c index b9d38c02ca8..9cc0a6407ce 100644 --- a/sys/arch/i386/isa/pms.c +++ b/sys/arch/i386/isa/pms.c @@ -193,7 +193,7 @@ pmsattach(parent, self, aux) sc->sc_state = 0; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, pmsintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/arch/i386/isa/vector.s b/sys/arch/i386/isa/vector.s index c6ec741a736..ef282214161 100644 --- a/sys/arch/i386/isa/vector.s +++ b/sys/arch/i386/isa/vector.s @@ -161,7 +161,6 @@ IDTVEC(fast/**/irq_num) ;\ ack(irq_num) ;\ addl $4,%esp ;\ incl _cnt+V_INTR /* statistical info */ ;\ - incl _intrcnt + (irq_num) * 4 ;\ popl %es ;\ popl %ds ;\ popl %edx ;\ @@ -219,7 +218,6 @@ _Xintr/**/irq_num/**/: ;\ testb $IRQ_BIT(irq_num),_cpl + IRQ_BYTE(irq_num) ;\ jnz _Xhold/**/irq_num /* currently masked; hold it */ ;\ _Xresume/**/irq_num/**/: ;\ - incl _intrcnt + (irq_num) * 4 ;\ movl _cpl,%eax /* cpl to restore on exit */ ;\ pushl %eax ;\ orl _intrmask + (irq_num) * 4,%eax ;\ @@ -332,27 +330,12 @@ IDTVEC(recurse) /* Some bogus data, to keep vmstat happy, for now. */ .globl _intrcnt, _eintrcnt _intrcnt: - .space ICU_LEN * 4 + .long 0 _eintrcnt: .globl _intrnames, _eintrnames _intrnames: - .asciz "irq 0" - .asciz "irq 1" - .asciz "irq 2" - .asciz "irq 3" - .asciz "irq 4" - .asciz "irq 5" - .asciz "irq 6" - .asciz "irq 7" - .asciz "irq 8" - .asciz "irq 9" - .asciz "irq 10" - .asciz "irq 11" - .asciz "irq 12" - .asciz "irq 13" - .asciz "irq 14" - .asciz "irq 15" + .long 0 _eintrnames: .text diff --git a/sys/arch/i386/pci/pci_machdep.c b/sys/arch/i386/pci/pci_machdep.c index 404fe2e1c54..b84cf3c2083 100644 --- a/sys/arch/i386/pci/pci_machdep.c +++ b/sys/arch/i386/pci/pci_machdep.c @@ -373,11 +373,12 @@ pci_map_mem(tag, reg, vap, pap) } void * -pci_map_int(tag, level, func, arg) +pci_map_int(tag, level, func, arg, what) pcitag_t tag; int level; int (*func) __P((void *)); void *arg; + char *what; { pcireg_t data; int pin, line; @@ -429,5 +430,5 @@ pci_map_int(tag, level, func, arg) printf("pci_map_int: pin %c mapped to line %d\n", '@' + pin, line); #endif - return isa_intr_establish(line, IST_LEVEL, level, func, arg); + return isa_intr_establish(line, IST_LEVEL, level, func, arg, what); } diff --git a/sys/dev/eisa/aha1742.c b/sys/dev/eisa/aha1742.c index bb10080d90f..3759e9d72ed 100644 --- a/sys/dev/eisa/aha1742.c +++ b/sys/dev/eisa/aha1742.c @@ -540,7 +540,7 @@ ahbattach(parent, self, aux) isa_establish(&ahb->sc_id, &ahb->sc_dev); #endif ahb->sc_ih = eisa_intr_establish(ia->ia_irq, IST_LEVEL, IPL_BIO, - ahbintr, ahb); + ahbintr, ahb, ahb->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/ic/com.c b/sys/dev/ic/com.c index c0003debb79..846d5f518f5 100644 --- a/sys/dev/ic/com.c +++ b/sys/dev/ic/com.c @@ -336,7 +336,7 @@ comattach(parent, self, aux) if (ia->ia_irq != IRQUNK) sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, - comintr, sc); + comintr, sc, sc->sc_dev.dv_xname); #ifdef KGDB if (kgdb_dev == makedev(commajor, unit)) { diff --git a/sys/dev/isa/aha.c b/sys/dev/isa/aha.c index d875ed53df3..786326551f1 100644 --- a/sys/dev/isa/aha.c +++ b/sys/dev/isa/aha.c @@ -603,7 +603,7 @@ ahaattach(parent, self, aux) isa_establish(&aha->sc_id, &aha->sc_dev); #endif aha->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, ahaintr, - aha); + aha, aha->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/aha1542.c b/sys/dev/isa/aha1542.c index d875ed53df3..786326551f1 100644 --- a/sys/dev/isa/aha1542.c +++ b/sys/dev/isa/aha1542.c @@ -603,7 +603,7 @@ ahaattach(parent, self, aux) isa_establish(&aha->sc_id, &aha->sc_dev); #endif aha->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, ahaintr, - aha); + aha, aha->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/aha284x.c b/sys/dev/isa/aha284x.c index 91824287421..749f87840e0 100644 --- a/sys/dev/isa/aha284x.c +++ b/sys/dev/isa/aha284x.c @@ -180,7 +180,7 @@ ahe_attach(parent, self, aux) isa_establish(&ahc->sc_id, &ahc->sc_dev); #endif ahc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, - ahcintr, ahc); + ahcintr, ahc, ahc->sc_dev.dv_xname); /* * attach the devices on the bus diff --git a/sys/dev/isa/aic6360.c b/sys/dev/isa/aic6360.c index e26f34f36e9..c159feff414 100644 --- a/sys/dev/isa/aic6360.c +++ b/sys/dev/isa/aic6360.c @@ -767,7 +767,7 @@ aicattach(parent, self, aux) isa_establish(&sc->sc_id, &sc->sc_dev); #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, aicintr, - sc); + sc, sc->sc_dev.dv_xname); config_found(self, &sc->sc_link, aicprint); } diff --git a/sys/dev/isa/ast.c b/sys/dev/isa/ast.c index 9676c79d298..79bc9c7dc57 100644 --- a/sys/dev/isa/ast.c +++ b/sys/dev/isa/ast.c @@ -140,7 +140,7 @@ astattach(parent, self, aux) } sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, astintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/dev/isa/boca.c b/sys/dev/isa/boca.c index 350bde475ca..ca375bb6a14 100644 --- a/sys/dev/isa/boca.c +++ b/sys/dev/isa/boca.c @@ -135,7 +135,7 @@ bocaattach(parent, self, aux) } sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, bocaintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/dev/isa/bt.c b/sys/dev/isa/bt.c index abb458924f4..ceccaee8a6b 100644 --- a/sys/dev/isa/bt.c +++ b/sys/dev/isa/bt.c @@ -613,7 +613,7 @@ btattach(parent, self, aux) isa_establish(&bt->sc_id, &bt->sc_dev); #endif bt->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, btintr, - bt); + bt, bt->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/bt742a.c b/sys/dev/isa/bt742a.c index abb458924f4..ceccaee8a6b 100644 --- a/sys/dev/isa/bt742a.c +++ b/sys/dev/isa/bt742a.c @@ -613,7 +613,7 @@ btattach(parent, self, aux) isa_establish(&bt->sc_id, &bt->sc_dev); #endif bt->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, btintr, - bt); + bt, bt->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/com.c b/sys/dev/isa/com.c index c0003debb79..846d5f518f5 100644 --- a/sys/dev/isa/com.c +++ b/sys/dev/isa/com.c @@ -336,7 +336,7 @@ comattach(parent, self, aux) if (ia->ia_irq != IRQUNK) sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, - comintr, sc); + comintr, sc, sc->sc_dev.dv_xname); #ifdef KGDB if (kgdb_dev == makedev(commajor, unit)) { diff --git a/sys/dev/isa/fd.c b/sys/dev/isa/fd.c index 2f8e7ae732e..90ac3987c1d 100644 --- a/sys/dev/isa/fd.c +++ b/sys/dev/isa/fd.c @@ -308,7 +308,7 @@ fdcattach(parent, self, aux) isa_establish(&fdc->sc_id, &fdc->sc_dev); #endif fdc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, fdcintr, - fdc); + fdc, fdc->sc_dev.dv_xname); /* * The NVRAM info only tells us about the first two disks on the diff --git a/sys/dev/isa/gus.c b/sys/dev/isa/gus.c index b43fd76c6dd..231d61e7dcc 100644 --- a/sys/dev/isa/gus.c +++ b/sys/dev/isa/gus.c @@ -914,7 +914,7 @@ gusattach(parent, self, aux) * we use IPL_CLOCK. */ sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, gusintr, - sc /* sc->sc_gusdsp */); + sc /* sc->sc_gusdsp */, sc->sc_dev.dv_xname); /* * Set some default values diff --git a/sys/dev/isa/if_ed.c b/sys/dev/isa/if_ed.c index 06c0142a9ca..72898d40edd 100644 --- a/sys/dev/isa/if_ed.c +++ b/sys/dev/isa/if_ed.c @@ -1263,7 +1263,7 @@ edattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, edintr, - sc); + sc, sc->sc_dev.dv_xname); sc->sc_sh = shutdownhook_establish((void (*)(void *))edstop, sc); } diff --git a/sys/dev/isa/if_eg.c b/sys/dev/isa/if_eg.c index 50ee31aafa5..3ecd3de9390 100644 --- a/sys/dev/isa/if_eg.c +++ b/sys/dev/isa/if_eg.c @@ -413,7 +413,7 @@ egattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, egintr, - sc); + sc, sc->sc_dev.dv_xname); } void diff --git a/sys/dev/isa/if_el.c b/sys/dev/isa/if_el.c index d0064756bd2..b7313b4785b 100644 --- a/sys/dev/isa/if_el.c +++ b/sys/dev/isa/if_el.c @@ -206,7 +206,7 @@ elattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, elintr, - sc); + sc, sc->sc_dev.dv_xname); dprintf(("elattach() finished.\n")); } diff --git a/sys/dev/isa/if_ep.c b/sys/dev/isa/if_ep.c index 673e0938875..3748e4f0d18 100644 --- a/sys/dev/isa/if_ep.c +++ b/sys/dev/isa/if_ep.c @@ -567,7 +567,8 @@ epattach(parent, self, aux) PCI_COMMAND_STATUS_REG) | PCI_COMMAND_MASTER_ENABLE); - sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, epintr, sc); + sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, epintr, sc, + sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf("%s: couldn't map interrupt\n", sc->sc_dev.dv_xname); @@ -580,7 +581,7 @@ epattach(parent, self, aux) { struct isa_attach_args *ia = aux; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, - epintr, sc); + epintr, sc, sc->sc_dev.dv_xname); } } diff --git a/sys/dev/isa/if_fe.c b/sys/dev/isa/if_fe.c index 2a853fe9d36..6201923066a 100644 --- a/sys/dev/isa/if_fe.c +++ b/sys/dev/isa/if_fe.c @@ -1125,7 +1125,7 @@ feattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, feintr, - sc); + sc, sc->sc_dev.dv_xname); } /* diff --git a/sys/dev/isa/if_ie.c b/sys/dev/isa/if_ie.c index cb11e553270..fde8d97b909 100644 --- a/sys/dev/isa/if_ie.c +++ b/sys/dev/isa/if_ie.c @@ -777,7 +777,7 @@ ieattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, ieintr, - sc); + sc, sc->sc_dev.dv_xname); } /* diff --git a/sys/dev/isa/if_le.c b/sys/dev/isa/if_le.c index 1bb579ea1b3..3e5ca0ef005 100644 --- a/sys/dev/isa/if_le.c +++ b/sys/dev/isa/if_le.c @@ -398,7 +398,7 @@ leattach(parent, self, aux) isa_dmacascade(ia->ia_drq); sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NET, - leintredge, sc); + leintredge, sc, sc->sc_dev.dv_xname); } #endif @@ -410,7 +410,8 @@ leattach(parent, self, aux) pci_conf_read(pa->pa_tag, PCI_COMMAND_STATUS_REG) | PCI_COMMAND_MASTER_ENABLE); - sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, leintr, sc); + sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, leintr, sc, + sc->sc_dev.dv_xname); } #endif diff --git a/sys/dev/isa/isavar.h b/sys/dev/isa/isavar.h index 05b6b317c9a..77649082241 100644 --- a/sys/dev/isa/isavar.h +++ b/sys/dev/isa/isavar.h @@ -104,7 +104,7 @@ struct isa_softc { /* ISA interrupt sharing types */ void isascan __P((struct device *parent, void *match)); void *isa_intr_establish __P((int intr, int type, int level, - int (*ih_fun)(void *), void *ih_arg)); + int (*ih_fun)(void *), void *ih_arg, char *ih_what)); void isa_intr_disestablish __P((void *handler)); char *isa_intr_typename __P((int type)); diff --git a/sys/dev/isa/lpt.c b/sys/dev/isa/lpt.c index ffe91a14127..8759f5e2e66 100644 --- a/sys/dev/isa/lpt.c +++ b/sys/dev/isa/lpt.c @@ -239,7 +239,7 @@ lptattach(parent, self, aux) if (ia->ia_irq != IRQUNK) sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_NONE, - lptintr, sc); + lptintr, sc, sc->sc_dev.dv_xname); } /* diff --git a/sys/dev/isa/mcd.c b/sys/dev/isa/mcd.c index 6c09efb68fb..ebec3cfd4aa 100644 --- a/sys/dev/isa/mcd.c +++ b/sys/dev/isa/mcd.c @@ -228,7 +228,7 @@ mcdattach(parent, self, aux) mcd_soft_reset(sc); sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, mcdintr, - sc); + sc, sc->sc_dev.dv_xname); } /* diff --git a/sys/dev/isa/pas.c b/sys/dev/isa/pas.c index b2e95400597..389bab91fb6 100644 --- a/sys/dev/isa/pas.c +++ b/sys/dev/isa/pas.c @@ -432,7 +432,8 @@ pasattach(parent, self, aux) sc->sc_iobase = iobase; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, - sbdsp_intr, &sc->sc_sbdsp); + sbdsp_intr, &sc->sc_sbdsp, + sc->sc_dev.dv_xname); printf(" ProAudio Spectrum %s [rev %d] ", pasnames[sc->model], sc->rev); diff --git a/sys/dev/isa/pcmcia_pcic.c b/sys/dev/isa/pcmcia_pcic.c index 30e4d84707d..129eac5dd42 100644 --- a/sys/dev/isa/pcmcia_pcic.c +++ b/sys/dev/isa/pcmcia_pcic.c @@ -249,7 +249,8 @@ pcicattach(parent, self, aux) timeout((void (*)(void *))pcic_intr, pcic, pcic->sc_polltimo); } else { pcic->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, - IPL_NET, pcic_intr, pcic); + IPL_NET, pcic_intr, pcic, + pcic->sc_dev.dv_xname); pcic->sc_polltimo = 0; } } diff --git a/sys/dev/isa/pss.c b/sys/dev/isa/pss.c index 0e90c4677fe..cd8eb338b36 100644 --- a/sys/dev/isa/pss.c +++ b/sys/dev/isa/pss.c @@ -1005,7 +1005,7 @@ pssattach(parent, self, aux) /* Setup interrupt handler for PSS */ sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, pssintr, - sc); + sc, sc->sc_dev.dv_xname); vers = (inw(sc->sc_iobase+PSS_ID_VERS)&0xff) - 1; printf(": ESC614%c\n", (vers > 0)?'A'+vers:' '); @@ -1040,7 +1040,7 @@ spattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(cf->cf_irq, IST_EDGE, IPL_AUDIO, ad1848_intr, - sc); + sc, sc->sc_dev.dv_xname); /* XXX might use pssprint func ?? */ printf(" port 0x%x-0x%x irq %d drq %d", @@ -1068,7 +1068,7 @@ mpuattach(parent, self, aux) #endif sc->sc_ih = isa_intr_establish(cf->cf_irq, IST_EDGE, IPL_AUDIO, mpuintr, - sc); + sc, sc->sc_dev.dv_xname); /* XXX might use pssprint func ?? */ printf(" port 0x%x-0x%x irq %d\n", diff --git a/sys/dev/isa/rtfps.c b/sys/dev/isa/rtfps.c index adfbe3579b5..311f04ccfeb 100644 --- a/sys/dev/isa/rtfps.c +++ b/sys/dev/isa/rtfps.c @@ -147,7 +147,8 @@ rtfpsattach(parent, self, aux) } } - sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, rtfpsintr, sc); + sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_TTY, rtfpsintr, + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/dev/isa/sb.c b/sys/dev/isa/sb.c index 11ca1a4b9ed..561066e70a1 100644 --- a/sys/dev/isa/sb.c +++ b/sys/dev/isa/sb.c @@ -274,7 +274,7 @@ sbattach(parent, self, aux) int err; sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, - sbdsp_intr, sc); + sbdsp_intr, sc, sc->sc_dev.dv_xname); sbdsp_attach(sc); diff --git a/sys/dev/isa/seagate.c b/sys/dev/isa/seagate.c index 4e2ef8990cc..57eb569f4d4 100644 --- a/sys/dev/isa/seagate.c +++ b/sys/dev/isa/seagate.c @@ -439,7 +439,7 @@ seaattach(parent, self, aux) isa_establish(&sea->sc_id, &sea->sc_deV); #endif sea->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, seaintr, - sea); + sea, sea->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/ultra14f.c b/sys/dev/isa/ultra14f.c index 834ecd2ee7a..74b2d644f8a 100644 --- a/sys/dev/isa/ultra14f.c +++ b/sys/dev/isa/ultra14f.c @@ -608,7 +608,7 @@ uhaattach(parent, self, aux) isa_establish(&uha->sc_id, &uha->sc_dev); #endif uha->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, - uha->intr, uha); + uha->intr, uha, uha->sc_dev.dv_xname); /* * ask the adapter what subunits are present diff --git a/sys/dev/isa/wd.c b/sys/dev/isa/wd.c index 96023380ae0..916e1b12a40 100644 --- a/sys/dev/isa/wd.c +++ b/sys/dev/isa/wd.c @@ -249,7 +249,7 @@ wdcattach(parent, self, aux) printf("\n"); wdc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, wdcintr, - wdc); + wdc, wdc->sc_dev.dv_xname); for (wa.wa_drive = 0; wa.wa_drive < 2; wa.wa_drive++) (void)config_found(self, (void *)&wa, wdprint); diff --git a/sys/dev/isa/wss.c b/sys/dev/isa/wss.c index 2d5010e8769..3a277fcc3eb 100644 --- a/sys/dev/isa/wss.c +++ b/sys/dev/isa/wss.c @@ -249,7 +249,8 @@ wssattach(parent, self, aux) #ifdef NEWCONFIG isa_establish(&sc->sc_id, &sc->sc_dev); #endif - sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, ad1848_intr, &sc->sc_ad1848); + sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_AUDIO, ad1848_intr, + &sc->sc_ad1848, sc->sc_dev.dv_xname); ad1848_attach(&sc->sc_ad1848); diff --git a/sys/dev/isa/wt.c b/sys/dev/isa/wt.c index b714c74d4f2..1891be63584 100644 --- a/sys/dev/isa/wt.c +++ b/sys/dev/isa/wt.c @@ -250,7 +250,7 @@ wtattach(parent, self, aux) sc->dens = -1; /* unknown density */ sc->sc_ih = isa_intr_establish(ia->ia_irq, IST_EDGE, IPL_BIO, wtintr, - sc); + sc, sc->sc_dev.dv_xname); } int diff --git a/sys/dev/pci/aic7870.c b/sys/dev/pci/aic7870.c index 43751c34770..3108496bc46 100644 --- a/sys/dev/pci/aic7870.c +++ b/sys/dev/pci/aic7870.c @@ -19,7 +19,7 @@ * 4. Modifications may be freely made to this file if the above conditions * are met. * - * $Id: aic7870.c,v 1.3 1995/12/27 22:06:44 deraadt Exp $ + * $Id: aic7870.c,v 1.4 1996/02/20 04:36:13 tholo Exp $ */ #include @@ -106,5 +106,6 @@ aic7870_attach(parent, self, aux) ahcattach(ahc); - ahc->sc_ih = pci_map_int(pa->pa_tag, IPL_BIO, ahcintr, ahc); + ahc->sc_ih = pci_map_int(pa->pa_tag, IPL_BIO, ahcintr, ahc, + ahc->sc_dev.dv_xname); } diff --git a/sys/dev/pci/if_de.c b/sys/dev/pci/if_de.c index 57d4059775d..80976f71517 100644 --- a/sys/dev/pci/if_de.c +++ b/sys/dev/pci/if_de.c @@ -2569,7 +2569,8 @@ tulip_pci_attach( bit longer anyways) */ #if defined(__NetBSD__) if (sc->tulip_boardsw->bd_type != TULIP_DC21040_ZX314_SLAVE) { - sc->tulip_ih = pci_map_int(pa->pa_tag, IPL_NET, tulip_intr, sc); + sc->tulip_ih = pci_map_int(pa->pa_tag, IPL_NET, tulip_intr, sc, + sc->sc_dev.dv_xname); if (sc->tulip_ih == NULL) { printf("%s%d: couldn't map interrupt\n", sc->tulip_name, sc->tulip_unit); diff --git a/sys/dev/pci/if_fpa.c b/sys/dev/pci/if_fpa.c index 6f1e243f435..6bd8b562181 100644 --- a/sys/dev/pci/if_fpa.c +++ b/sys/dev/pci/if_fpa.c @@ -389,7 +389,8 @@ pdq_pci_attach( bcopy((caddr_t) sc->sc_pdq->pdq_hwaddr.lanaddr_bytes, sc->sc_ac.ac_enaddr, 6); pdq_ifattach(sc, pdq_pci_ifinit, pdq_pci_ifwatchdog); - sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, pdq_pci_ifintr, sc); + sc->sc_ih = pci_map_int(pa->pa_tag, IPL_NET, pdq_pci_ifintr, sc, + sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf("fpa%d: error: couldn't map interrupt\n", sc->sc_if.if_unit); return; diff --git a/sys/dev/pci/ncr.c b/sys/dev/pci/ncr.c index 7570d5b6129..d3662abe478 100644 --- a/sys/dev/pci/ncr.c +++ b/sys/dev/pci/ncr.c @@ -1,6 +1,6 @@ /************************************************************************** ** -** $Id: ncr.c,v 1.4 1995/12/27 22:06:47 deraadt Exp $ +** $Id: ncr.c,v 1.5 1996/02/20 04:36:17 tholo Exp $ ** ** Device driver for the NCR 53C810 PCI-SCSI-Controller. ** @@ -1255,7 +1255,7 @@ static void ncr_attach (pcici_t tag, int unit); static char ident[] = - "\n$Id: ncr.c,v 1.4 1995/12/27 22:06:47 deraadt Exp $\n"; + "\n$Id: ncr.c,v 1.5 1996/02/20 04:36:17 tholo Exp $\n"; u_long ncr_version = NCR_VERSION * 11 + (u_long) sizeof (struct ncb) * 7 @@ -3261,7 +3261,8 @@ ncr_attach(parent, self, aux) if (retval) return; - np->sc_ih = pci_map_int(pa->pa_tag, IPL_BIO, ncr_intr, np); + np->sc_ih = pci_map_int(pa->pa_tag, IPL_BIO, ncr_intr, np, + np->sc_dev.dv_xname); if (np->sc_ih == NULL) return; diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index bcaa1e5ae42..d56141cc02b 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -60,7 +60,7 @@ pcireg_t pci_conf_read __P((pcitag_t, int)); void pci_conf_write __P((pcitag_t, int, pcireg_t)); void pci_devinfo __P((pcireg_t, pcireg_t, char *, int *)); pcitag_t pci_make_tag __P((int, int, int)); -void *pci_map_int __P((pcitag_t, int, int (*)(void *), void *)); +void *pci_map_int __P((pcitag_t, int, int (*)(void *), void *, char *)); int pci_map_mem __P((pcitag_t, int, vm_offset_t *, vm_offset_t *)); int pci_attach_subdev __P((struct device *, int, int)); -- cgit v1.2.3