summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorHenric Jungheim <henric@cvs.openbsd.org>2003-06-24 21:54:40 +0000
committerHenric Jungheim <henric@cvs.openbsd.org>2003-06-24 21:54:40 +0000
commit355b8560084501d10eae7686c8385754bc6c7072 (patch)
treed3bc0a5b778c1c6b51beb7fedae743f3fc436c13 /sys/dev
parent02503c73b4a809f21312fef8bf66cfe5d0f1a50f (diff)
Add a "where" argument to the sparc64 interrupt code. This lets us
associate a name with each interrupt handler. This is not visible outside the kernel (yet). ok jason@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/sbus/apio.c4
-rw-r--r--sys/dev/sbus/asio.c4
-rw-r--r--sys/dev/sbus/be.c4
-rw-r--r--sys/dev/sbus/cgsix.c4
-rw-r--r--sys/dev/sbus/cs4231.c4
-rw-r--r--sys/dev/sbus/dma_sbus.c12
-rw-r--r--sys/dev/sbus/esp_sbus.c4
-rw-r--r--sys/dev/sbus/if_hme_sbus.c4
-rw-r--r--sys/dev/sbus/if_le.c4
-rw-r--r--sys/dev/sbus/if_le_lebuffer.c4
-rw-r--r--sys/dev/sbus/if_le_ledma.c4
-rw-r--r--sys/dev/sbus/isp_sbus.c4
-rw-r--r--sys/dev/sbus/magma.c4
-rw-r--r--sys/dev/sbus/qe.c6
-rw-r--r--sys/dev/sbus/qec.c22
-rw-r--r--sys/dev/sbus/spif.c8
16 files changed, 52 insertions, 44 deletions
diff --git a/sys/dev/sbus/apio.c b/sys/dev/sbus/apio.c
index b2e65a7d780..808fd3d62e0 100644
--- a/sys/dev/sbus/apio.c
+++ b/sys/dev/sbus/apio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: apio.c,v 1.4 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: apio.c,v 1.5 2003/06/24 21:54:38 henric Exp $ */
/*
* Copyright (c) 2002 Jason L. Wright (jason@thought.net)
@@ -228,7 +228,7 @@ lpt_apio_attach(parent, self, aux)
sc->sc_lpt.sc_ioh = aaa->aaa_ioh;
sc->sc_clk_h = aaa->aaa_clkh;
sc->sc_ih = bus_intr_establish(aaa->aaa_iot, aaa->aaa_pri,
- IPL_TTY, 0, lpt_apio_intr, sc);
+ IPL_TTY, 0, lpt_apio_intr, sc, self->dv_xname);
if (sc->sc_ih == NULL) {
printf(": cannot allocate intr\n");
return;
diff --git a/sys/dev/sbus/asio.c b/sys/dev/sbus/asio.c
index c2394929b6a..1c7b9eb29c1 100644
--- a/sys/dev/sbus/asio.c
+++ b/sys/dev/sbus/asio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asio.c,v 1.7 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: asio.c,v 1.8 2003/06/24 21:54:38 henric Exp $ */
/*
* Copyright (c) 2002 Jason L. Wright (jason@thought.net)
@@ -232,7 +232,7 @@ com_asio_attach(parent, self, aux)
sc->sc_frequency = BAUD_BASE;
sc->sc_ih = bus_intr_establish(aaa->aaa_iot, aaa->aaa_pri,
- IPL_TTY, 0, comintr, sc);
+ IPL_TTY, 0, comintr, sc, self->dv_xname);
if (sc->sc_ih == NULL) {
printf(": cannot allocate intr\n");
return;
diff --git a/sys/dev/sbus/be.c b/sys/dev/sbus/be.c
index 8d120d24635..c4019da229f 100644
--- a/sys/dev/sbus/be.c
+++ b/sys/dev/sbus/be.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: be.c,v 1.11 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: be.c,v 1.12 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: be.c,v 1.26 2001/03/20 15:39:20 pk Exp $ */
/*-
@@ -297,7 +297,7 @@ beattach(parent, self, aux)
/* Establish interrupt handler */
if (sa->sa_nintr == 0 || bus_intr_establish(sa->sa_bustag, sa->sa_pri,
- IPL_NET, 0, beintr, sc) == NULL) {
+ IPL_NET, 0, beintr, sc, self->dv_xname) == NULL) {
printf(": no interrupt established\n");
return;
}
diff --git a/sys/dev/sbus/cgsix.c b/sys/dev/sbus/cgsix.c
index d737489d7c2..93d78cd4588 100644
--- a/sys/dev/sbus/cgsix.c
+++ b/sys/dev/sbus/cgsix.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cgsix.c,v 1.42 2003/06/18 17:35:30 miod Exp $ */
+/* $OpenBSD: cgsix.c,v 1.43 2003/06/24 21:54:38 henric Exp $ */
/*
* Copyright (c) 2001 Jason L. Wright (jason@thought.net)
@@ -195,7 +195,7 @@ cgsixattach(parent, self, aux)
}
if ((sc->sc_ih = bus_intr_establish(sa->sa_bustag, sa->sa_pri,
- IPL_TTY, 0, cgsix_intr, sc)) == NULL) {
+ IPL_TTY, 0, cgsix_intr, sc, self->dv_xname)) == NULL) {
printf(": couldn't establish interrupt, pri %d\n", sa->sa_pri);
goto fail_intr;
}
diff --git a/sys/dev/sbus/cs4231.c b/sys/dev/sbus/cs4231.c
index ff093244ad7..af2abf21fd2 100644
--- a/sys/dev/sbus/cs4231.c
+++ b/sys/dev/sbus/cs4231.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cs4231.c,v 1.19 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: cs4231.c,v 1.20 2003/06/24 21:54:38 henric Exp $ */
/*
* Copyright (c) 1999 Jason L. Wright (jason@thought.net)
@@ -239,7 +239,7 @@ cs4231_attach(parent, self, aux)
}
if (bus_intr_establish(sa->sa_bustag, sa->sa_pri, IPL_AUDIO, 0,
- cs4231_intr, sc) == NULL) {
+ cs4231_intr, sc, self->dv_xname) == NULL) {
printf(": couldn't establish interrupt, pri %d\n", sa->sa_pri);
return;
}
diff --git a/sys/dev/sbus/dma_sbus.c b/sys/dev/sbus/dma_sbus.c
index c884d43a0f7..3d61c25ffca 100644
--- a/sys/dev/sbus/dma_sbus.c
+++ b/sys/dev/sbus/dma_sbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dma_sbus.c,v 1.9 2003/06/05 12:27:03 deraadt Exp $ */
+/* $OpenBSD: dma_sbus.c,v 1.10 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: dma_sbus.c,v 1.5 2000/07/09 20:57:42 pk Exp $ */
/*-
@@ -101,7 +101,8 @@ void *dmabus_intr_establish(
int, /*`device class' level*/
int, /*flags*/
int (*)(void *), /*handler*/
- void *); /*handler arg*/
+ void *, /*handler arg*/
+ const char *); /*what*/
static bus_space_tag_t dma_alloc_bustag(struct dma_softc *sc);
@@ -254,7 +255,8 @@ dmabus_intr_establish(
int level,
int flags,
int (*handler)(void *),
- void *arg)
+ void *arg,
+ const char *what)
{
struct lsi64854_softc *sc = t->cookie;
@@ -269,10 +271,12 @@ dmabus_intr_establish(
for (t = t->parent; t; t = t->parent) {
if (t->sparc_intr_establish != NULL)
return ((*t->sparc_intr_establish)
- (t, t0, pri, level, flags, handler, arg));
+ (t, t0, pri, level, flags, handler, arg, what));
}
+ panic("dmabus_intr_establish: no handler found");
+
return (NULL);
}
diff --git a/sys/dev/sbus/esp_sbus.c b/sys/dev/sbus/esp_sbus.c
index 4ff890a7e6f..92df84fa857 100644
--- a/sys/dev/sbus/esp_sbus.c
+++ b/sys/dev/sbus/esp_sbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: esp_sbus.c,v 1.12 2003/03/27 16:43:28 jason Exp $ */
+/* $OpenBSD: esp_sbus.c,v 1.13 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: esp_sbus.c,v 1.14 2001/04/25 17:53:37 bouyer Exp $ */
/*-
@@ -537,7 +537,7 @@ espattach(esc, gluep)
/* Establish interrupt channel */
icookie = bus_intr_establish(esc->sc_bustag, esc->sc_pri, IPL_BIO, 0,
- ncr53c9x_intr, sc);
+ ncr53c9x_intr, sc, sc->sc_dev.dv_xname);
/* register interrupt stats */
evcnt_attach(&sc->sc_dev, "intr", &sc->sc_intrcnt);
diff --git a/sys/dev/sbus/if_hme_sbus.c b/sys/dev/sbus/if_hme_sbus.c
index 7d0cb7375d4..a262f0a2307 100644
--- a/sys/dev/sbus/if_hme_sbus.c
+++ b/sys/dev/sbus/if_hme_sbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_hme_sbus.c,v 1.4 2003/02/17 01:29:20 henric Exp $ */
+/* $OpenBSD: if_hme_sbus.c,v 1.5 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: if_hme_sbus.c,v 1.6 2001/02/28 14:52:48 mrg Exp $ */
/*-
@@ -207,5 +207,5 @@ hmeattach_sbus(parent, self, aux)
/* Establish interrupt handler */
if (sa->sa_nintr != 0)
(void)bus_intr_establish(sa->sa_bustag, sa->sa_pri, IPL_NET, 0,
- hme_intr, sc);
+ hme_intr, sc, self->dv_xname);
}
diff --git a/sys/dev/sbus/if_le.c b/sys/dev/sbus/if_le.c
index d1b863f5621..02699192cb7 100644
--- a/sys/dev/sbus/if_le.c
+++ b/sys/dev/sbus/if_le.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_le.c,v 1.7 2002/05/13 19:45:51 jason Exp $ */
+/* $OpenBSD: if_le.c,v 1.8 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: if_le.c,v 1.17 2001/05/30 11:46:35 mrg Exp $ */
/*-
@@ -263,5 +263,5 @@ leattach_sbus(parent, self, aux)
/* Establish interrupt handler */
if (sa->sa_nintr != 0)
(void)bus_intr_establish(lesc->sc_bustag, sa->sa_pri,
- IPL_NET, 0, am7990_intr, sc);
+ IPL_NET, 0, am7990_intr, sc, self->dv_xname);
}
diff --git a/sys/dev/sbus/if_le_lebuffer.c b/sys/dev/sbus/if_le_lebuffer.c
index d4fcadce659..11f04c30f9e 100644
--- a/sys/dev/sbus/if_le_lebuffer.c
+++ b/sys/dev/sbus/if_le_lebuffer.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_le_lebuffer.c,v 1.2 2002/05/13 18:16:38 jason Exp $ */
+/* $OpenBSD: if_le_lebuffer.c,v 1.3 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: if_le_lebuffer.c,v 1.10 2002/03/11 16:00:56 pk Exp $ */
/*-
@@ -197,5 +197,5 @@ leattach_lebuffer(parent, self, aux)
/* Establish interrupt handler */
if (sa->sa_nintr != 0)
(void)bus_intr_establish(lesc->sc_bustag, sa->sa_pri,
- IPL_NET, 0, am7990_intr, sc);
+ IPL_NET, 0, am7990_intr, sc, self->dv_xname);
}
diff --git a/sys/dev/sbus/if_le_ledma.c b/sys/dev/sbus/if_le_ledma.c
index b0168411f2d..c376aa14bed 100644
--- a/sys/dev/sbus/if_le_ledma.c
+++ b/sys/dev/sbus/if_le_ledma.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_le_ledma.c,v 1.8 2003/05/14 23:35:31 miod Exp $ */
+/* $OpenBSD: if_le_ledma.c,v 1.9 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: if_le_ledma.c,v 1.14 2001/05/30 11:46:35 mrg Exp $ */
/*-
@@ -434,7 +434,7 @@ leattach_ledma(parent, self, aux)
/* Establish interrupt handler */
if (sa->sa_nintr != 0)
(void)bus_intr_establish(sa->sa_bustag, sa->sa_pri, IPL_NET, 0,
- am7990_intr, sc);
+ am7990_intr, sc, self->dv_xname);
am7990_config(&lesc->sc_am7990);
diff --git a/sys/dev/sbus/isp_sbus.c b/sys/dev/sbus/isp_sbus.c
index d1183f8fa76..d996af57688 100644
--- a/sys/dev/sbus/isp_sbus.c
+++ b/sys/dev/sbus/isp_sbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isp_sbus.c,v 1.5 2003/02/17 01:29:21 henric Exp $ */
+/* $OpenBSD: isp_sbus.c,v 1.6 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: isp_sbus.c,v 1.46 2001/09/26 20:53:14 eeh Exp $ */
/*
@@ -252,7 +252,7 @@ isp_sbus_attach(struct device *parent, struct device *self, void *aux)
/* Establish interrupt channel */
bus_intr_establish(sbc->sbus_bustag, sbc->sbus_pri, IPL_BIO, 0,
- isp_sbus_intr, sbc);
+ isp_sbus_intr, sbc, self->dv_xname);
sbus_establish(&sbc->sbus_sd, &sbc->sbus_isp.isp_osinfo._dev);
/*
diff --git a/sys/dev/sbus/magma.c b/sys/dev/sbus/magma.c
index 33b3ba90856..6ca73ea9deb 100644
--- a/sys/dev/sbus/magma.c
+++ b/sys/dev/sbus/magma.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: magma.c,v 1.7 2003/03/27 17:39:05 jason Exp $ */
+/* $OpenBSD: magma.c,v 1.8 2003/06/24 21:54:38 henric Exp $ */
/*
* magma.c
*
@@ -366,7 +366,7 @@ magma_attach(parent, dev, aux)
return;
}
sc->sc_ih = bus_intr_establish(sa->sa_bustag, sa->sa_pri, IPL_TTY, 0,
- magma_hard, sc);
+ magma_hard, sc, dev->dv_xname);
if (sc->sc_ih == NULL) {
printf(": failed to establish interrupt\n");
bus_space_unmap(sc->sc_bustag, sc->sc_iohandle,
diff --git a/sys/dev/sbus/qe.c b/sys/dev/sbus/qe.c
index f269db1417f..2dc9a75177e 100644
--- a/sys/dev/sbus/qe.c
+++ b/sys/dev/sbus/qe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: qe.c,v 1.12 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: qe.c,v 1.13 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: qe.c,v 1.16 2001/03/30 17:30:18 christos Exp $ */
/*-
@@ -246,8 +246,8 @@ qeattach(parent, self, aux)
qestop(sc);
/* Note: no interrupt level passed */
- if (bus_intr_establish(sa->sa_bustag, 0, IPL_NET, 0, qeintr, sc) ==
- NULL) {
+ if (bus_intr_establish(sa->sa_bustag, 0, IPL_NET, 0, qeintr, sc,
+ self->dv_xname) == NULL) {
printf(": no interrupt established\n");
return;
}
diff --git a/sys/dev/sbus/qec.c b/sys/dev/sbus/qec.c
index 4a9d7213468..69da81a219b 100644
--- a/sys/dev/sbus/qec.c
+++ b/sys/dev/sbus/qec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: qec.c,v 1.6 2003/03/27 17:39:05 jason Exp $ */
+/* $OpenBSD: qec.c,v 1.7 2003/06/24 21:54:38 henric Exp $ */
/* $NetBSD: qec.c,v 1.12 2000/12/04 20:12:55 fvdl Exp $ */
/*-
@@ -72,7 +72,8 @@ void * qec_intr_establish(
int, /*`device class' interrupt level*/
int, /*flags*/
int (*)(void *), /*handler*/
- void *); /*arg*/
+ void *, /*arg*/
+ const char *); /*what*/
struct cfattach qec_ca = {
sizeof(struct qec_softc), qecmatch, qecattach
@@ -286,7 +287,7 @@ qec_bus_map(t, t0, addr, size, flags, hp)
}
void *
-qec_intr_establish(t, t0, pri, level, flags, handler, arg)
+qec_intr_establish(t, t0, pri, level, flags, handler, arg, what)
bus_space_tag_t t;
bus_space_tag_t t0;
int pri;
@@ -294,6 +295,7 @@ qec_intr_establish(t, t0, pri, level, flags, handler, arg)
int flags;
int (*handler)(void *);
void *arg;
+ const char *what;
{
struct qec_softc *sc = t->cookie;
@@ -310,15 +312,15 @@ qec_intr_establish(t, t0, pri, level, flags, handler, arg)
pri = sc->sc_intr->sbi_pri;
}
- if (t->parent == 0 || t->parent->sparc_bus_mmap == 0) {
- printf("\nebus_bus_mmap: invalid parent");
- return (NULL);
- }
+ for (t = t->parent; t; t = t->parent) {
+ if (t->sparc_intr_establish != NULL)
+ return ((*t->sparc_intr_establish)
+ (t, t0, pri, level, flags, handler, arg, what));
+ }
- t = t->parent;
+ panic("qec_intr_extablish): no handler found");
- return ((*t->sparc_intr_establish)(t, t0, pri, level, flags,
- handler, arg));
+ return (NULL);
}
void
diff --git a/sys/dev/sbus/spif.c b/sys/dev/sbus/spif.c
index e88f1f2b823..b843270d029 100644
--- a/sys/dev/sbus/spif.c
+++ b/sys/dev/sbus/spif.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: spif.c,v 1.7 2003/06/02 18:32:41 jason Exp $ */
+/* $OpenBSD: spif.c,v 1.8 2003/06/24 21:54:38 henric Exp $ */
/*
* Copyright (c) 1999-2002 Jason L. Wright (jason@thought.net)
@@ -216,14 +216,16 @@ spifattach(parent, self, aux)
}
sc->sc_ppcih = bus_intr_establish(sa->sa_bustag,
- sa->sa_intr[PARALLEL_INTR].sbi_pri, IPL_TTY, 0, spifppcintr, sc);
+ sa->sa_intr[PARALLEL_INTR].sbi_pri, IPL_TTY, 0, spifppcintr, sc,
+ self->dv_xname);
if (sc->sc_ppcih == NULL) {
printf(": failed to establish ppc interrupt\n");
goto fail_unmapregs;
}
sc->sc_stcih = bus_intr_establish(sa->sa_bustag,
- sa->sa_intr[SERIAL_INTR].sbi_pri, IPL_TTY, 0, spifstcintr, sc);
+ sa->sa_intr[SERIAL_INTR].sbi_pri, IPL_TTY, 0, spifstcintr, sc,
+ self->dv_xname);
if (sc->sc_stcih == NULL) {
printf(": failed to establish stc interrupt\n");
goto fail_unmapregs;