diff options
author | Thorsten Lockert <tholo@cvs.openbsd.org> | 1996-02-20 04:36:20 +0000 |
---|---|---|
committer | Thorsten Lockert <tholo@cvs.openbsd.org> | 1996-02-20 04:36:20 +0000 |
commit | e1db5c4a473d067a236a9deb6aaf0d4b49037ab0 (patch) | |
tree | d99a015cd4bf0a19ed04cd028e4c95a554f20949 | |
parent | 5de6545ee7bb75bb0895f89e1e1086f2d570db11 (diff) |
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 <machine/psl.h> so vmstat can
get at it (i386)
Remove hack to count interrupts the old way (i386)
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 @@ -78,21 +78,6 @@ /* - * 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 <sys/param.h> @@ -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)); |