summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-10-22 05:58:45 +0000
committerbde <bde@FreeBSD.org>1998-10-22 05:58:45 +0000
commitdf88297cad3e438e774e13137af8eaff53c0fc7f (patch)
treed694ec5d94b6e29be85865e36be61cbb2bea66dc /sys/i386
parent7a07480a8f242db0c438040f3beb4ce7b2c7cde2 (diff)
downloadFreeBSD-src-df88297cad3e438e774e13137af8eaff53c0fc7f.zip
FreeBSD-src-df88297cad3e438e774e13137af8eaff53c0fc7f.tar.gz
Initialize isa_devtab entries for interrupt handlers in individual
device drivers, not in ioconf.c. Use a different hack in isa_device.h so that a new config(8) is not required yet. pc98 parts approved by: kato
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/isa/aic6360.c6
-rw-r--r--sys/i386/isa/alog.c4
-rw-r--r--sys/i386/isa/asc.c7
-rw-r--r--sys/i386/isa/bs/bsif.c4
-rw-r--r--sys/i386/isa/cy.c4
-rw-r--r--sys/i386/isa/fd.c6
-rw-r--r--sys/i386/isa/if_ar.c6
-rw-r--r--sys/i386/isa/if_cs.c6
-rw-r--r--sys/i386/isa/if_cx.c5
-rw-r--r--sys/i386/isa/if_ed.c6
-rw-r--r--sys/i386/isa/if_eg.c6
-rw-r--r--sys/i386/isa/if_el.c6
-rw-r--r--sys/i386/isa/if_ep.c6
-rw-r--r--sys/i386/isa/if_ex.c7
-rw-r--r--sys/i386/isa/if_fe.c7
-rw-r--r--sys/i386/isa/if_ie.c7
-rw-r--r--sys/i386/isa/if_le.c6
-rw-r--r--sys/i386/isa/if_lnc.c9
-rw-r--r--sys/i386/isa/if_sr.c5
-rw-r--r--sys/i386/isa/if_wl.c8
-rw-r--r--sys/i386/isa/if_ze.c7
-rw-r--r--sys/i386/isa/if_zp.c7
-rw-r--r--sys/i386/isa/isa.c9
-rw-r--r--sys/i386/isa/isa_device.h134
-rw-r--r--sys/i386/isa/labpc.c4
-rw-r--r--sys/i386/isa/loran.c7
-rw-r--r--sys/i386/isa/lpt.c6
-rw-r--r--sys/i386/isa/mcd.c6
-rw-r--r--sys/i386/isa/mse.c6
-rw-r--r--sys/i386/isa/ncr5380.c5
-rw-r--r--sys/i386/isa/npx.c5
-rw-r--r--sys/i386/isa/pcf.c6
-rw-r--r--sys/i386/isa/pcvt/pcvt_drv.c2
-rw-r--r--sys/i386/isa/pcvt/pcvt_hdr.h1
-rw-r--r--sys/i386/isa/pnp.c4
-rw-r--r--sys/i386/isa/ppc.c7
-rw-r--r--sys/i386/isa/psm.c7
-rw-r--r--sys/i386/isa/rc.c6
-rw-r--r--sys/i386/isa/seagate.c7
-rw-r--r--sys/i386/isa/sio.c6
-rw-r--r--sys/i386/isa/snd/sound.c2
-rw-r--r--sys/i386/isa/snd/sound.h2
-rw-r--r--sys/i386/isa/sound/sound_calls.h7
-rw-r--r--sys/i386/isa/sound/soundcard.c25
-rw-r--r--sys/i386/isa/spigot.c5
-rw-r--r--sys/i386/isa/stallion.c7
-rw-r--r--sys/i386/isa/syscons.c6
-rw-r--r--sys/i386/isa/tw.c4
-rw-r--r--sys/i386/isa/ultra14f.c8
-rw-r--r--sys/i386/isa/wd.c4
-rw-r--r--sys/i386/isa/wd7000.c4
-rw-r--r--sys/i386/isa/wdreg.h4
-rw-r--r--sys/i386/isa/wt.c6
53 files changed, 293 insertions, 154 deletions
diff --git a/sys/i386/isa/aic6360.c b/sys/i386/isa/aic6360.c
index 2b28abc..7b0e583 100644
--- a/sys/i386/isa/aic6360.c
+++ b/sys/i386/isa/aic6360.c
@@ -32,7 +32,7 @@
*/
/*
- * $Id: aic6360.c,v 1.40 1998/04/15 17:45:12 bde Exp $
+ * $Id: aic6360.c,v 1.41 1998/06/21 14:53:09 bde Exp $
*
* Acknowledgements: Many of the algorithms used in this driver are
* inspired by the work of Julian Elischer (julian@tfs.com) and
@@ -663,6 +663,7 @@ static int aic_find __P((struct aic_data *));
static void aic_done __P((struct acb *));
static void aic_dataout __P((struct aic_data *aic));
static void aic_datain __P((struct aic_data *aic));
+static ointhand2_t aicintr;
static int32_t aic_scsi_cmd __P((struct scsi_xfer *));
static int aic_poll __P((struct aic_data *aic, struct acb *));
void aic_add_timeout __P((struct acb *, int));
@@ -967,6 +968,7 @@ aicattach(dev)
struct scsibus_data *scbus;
AIC_TRACE(("aicattach\n"));
+ dev->id_ointr = aicintr;
aic->state = 0;
aic_scsi_reset(aic);
aic_init(aic); /* Init chip and driver */
@@ -2135,7 +2137,7 @@ aic_datain(aic)
* 2) doesn't support synchronous transfers properly (yet)
*/
-void
+static void
aicintr(int unit)
{
struct aic_data *aic = aicdata[unit];
diff --git a/sys/i386/isa/alog.c b/sys/i386/isa/alog.c
index 8fbe576..b01d2dc 100644
--- a/sys/i386/isa/alog.c
+++ b/sys/i386/isa/alog.c
@@ -189,6 +189,7 @@ typedef struct
static int alog_probe (struct isa_device *idp); /* Check for alog board */
static int alog_attach (struct isa_device *idp); /* Take alog board */
+static ointhand2_t alogintr;
static int sync_clock2 (int unit, long period); /* setup clock 2 period */
static int putfifo (talog_chan *pchan, u_short fifoent);
static int alog_open (dev_t dev, int oflags, int devtype, struct proc *p);
@@ -525,6 +526,7 @@ static int alog_attach (struct isa_device *idp)
talog_unit *info; /* pointer to driver specific info for unit */
int chan; /* the channel used for creating devfs nodes */
+ idp->id_ointr = alogintr;
if (!(info = malloc(sizeof(*info), M_DEVBUF, M_NOWAIT)))
{
printf ("alog%d: cannot allocate driver storage\n", unit);
@@ -555,7 +557,7 @@ static int alog_attach (struct isa_device *idp)
/* Unit interrupt handling routine (interrupts generated by clock 2) */
-void alogintr (int unit)
+static void alogintr (int unit)
{
talog_unit *info = alog_unit[unit];
int iobase = info->isaunit->id_iobase;
diff --git a/sys/i386/isa/asc.c b/sys/i386/isa/asc.c
index fe8dba6..1a801b0 100644
--- a/sys/i386/isa/asc.c
+++ b/sys/i386/isa/asc.c
@@ -34,7 +34,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
- * $Id: asc.c,v 1.30 1998/06/07 17:10:13 dfr Exp $
+ * $Id: asc.c,v 1.31 1998/08/12 18:16:38 bde Exp $
*/
#include "asc.h"
@@ -188,6 +188,8 @@ static int ascprobe (struct isa_device *isdp);
static int ascattach(struct isa_device *isdp);
struct isa_driver ascdriver = { ascprobe, ascattach, "asc" };
+static ointhand2_t ascintr;
+
static d_open_t ascopen;
static d_close_t ascclose;
static d_read_t ascread;
@@ -448,6 +450,7 @@ ascattach(struct isa_device *isdp)
int unit = isdp->id_unit;
struct asc_unit *scu = unittab + unit;
+ isdp->id_ointr = ascintr;
scu->flags |= FLAG_DEBUG;
printf("asc%d: [GI1904/Trust Ami-Scan Grey/Color]\n", unit);
@@ -497,7 +500,7 @@ ascattach(struct isa_device *isdp)
*** ascintr
*** the interrupt routine, at the end of DMA...
***/
-void
+static void
ascintr(int unit)
{
struct asc_unit *scu = unittab + unit;
diff --git a/sys/i386/isa/bs/bsif.c b/sys/i386/isa/bs/bsif.c
index d9a8210..58e7203 100644
--- a/sys/i386/isa/bs/bsif.c
+++ b/sys/i386/isa/bs/bsif.c
@@ -70,6 +70,7 @@ struct scsi_adapter pc98texa55bs = {
#ifdef __FreeBSD__
static int bsprobe __P((struct isa_device *));
static int bsattach __P((struct isa_device *));
+static inthand2_t bsintr;
static int bsprint __P((void *, const char *));
static void bs_scsi_minphys __P((struct buf *));
static int bs_dmarangecheck __P((caddr_t, unsigned));
@@ -220,6 +221,7 @@ bsattach(dev)
struct bs_softc *bsc = bscdata[unit];
struct scsibus_data *scbus;
+ dev->id_ointr = bsintr;
bsc->sc_link.adapter_unit = unit;
bsc->sc_link.adapter_targ = bsc->sc_hostid;
bsc->sc_link.flags = SDEV_BOUNCE;
@@ -256,7 +258,7 @@ bsintr(arg)
#endif /* __NetBSD__ */
#ifdef __FreeBSD__
-void
+static void
bsintr(unit)
int unit;
{
diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c
index 3f76567..f6388b1 100644
--- a/sys/i386/isa/cy.c
+++ b/sys/i386/isa/cy.c
@@ -27,7 +27,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: cy.c,v 1.70 1998/08/20 05:21:50 bde Exp $
+ * $Id: cy.c,v 1.71 1998/08/23 08:26:40 bde Exp $
*/
#include "opt_compat.h"
@@ -335,6 +335,7 @@ struct com_s {
/* PCI driver entry point. */
int cyattach_common __P((cy_addr cy_iobase, int cy_align));
+ointhand2_t siointr;
static int cy_units __P((cy_addr cy_iobase, int cy_align));
static int sioattach __P((struct isa_device *dev));
@@ -506,6 +507,7 @@ sioattach(isdp)
printf("cy%d: attached as cy%d\n", isdp->id_unit, adapter);
isdp->id_unit = adapter; /* XXX */
}
+ isdp->id_ointr = siointr;
isdp->id_ri_flags |= RI_FAST;
return (1);
}
diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c
index d04f98a..d6a7659 100644
--- a/sys/i386/isa/fd.c
+++ b/sys/i386/isa/fd.c
@@ -43,7 +43,7 @@
* SUCH DAMAGE.
*
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
- * $Id: fd.c,v 1.122 1998/09/15 08:15:28 gibbs Exp $
+ * $Id: fd.c,v 1.123 1998/09/15 22:07:24 gibbs Exp $
*
*/
@@ -221,6 +221,7 @@ static int fd_in(fdcu_t, int *);
static void fdstart(fdcu_t);
static timeout_t fd_iotimeout;
static timeout_t fd_pseudointr;
+static ointhand2_t fdintr;
static int fdstate(fdcu_t, fdc_p);
static int retrier(fdcu_t);
static int fdformat(dev_t, struct fd_formb *, struct proc *);
@@ -540,6 +541,7 @@ fdattach(struct isa_device *dev)
int typesize;
#endif
+ dev->id_ointr = fdintr;
fdc->fdcu = fdcu;
fdc->flags |= FDC_ATTACHED;
fdc->dmachan = dev->id_drq;
@@ -1275,7 +1277,7 @@ fd_pseudointr(void *arg1)
* keep calling the state machine until it returns a 0 *
* ALWAYS called at SPLBIO *
\***********************************************************************/
-void
+static void
fdintr(fdcu_t fdcu)
{
fdc_p fdc = fdc_data + fdcu;
diff --git a/sys/i386/isa/if_ar.c b/sys/i386/isa/if_ar.c
index adebd22..374aed9 100644
--- a/sys/i386/isa/if_ar.c
+++ b/sys/i386/isa/if_ar.c
@@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_ar.c,v 1.21 1998/06/21 14:53:10 bde Exp $
+ * $Id: if_ar.c,v 1.22 1998/08/24 02:28:15 bde Exp $
*/
/*
@@ -178,6 +178,7 @@ static int irqtable[16] = {
struct isa_driver ardriver = {arprobe, arattach, "arc"};
+static ointhand2_t arintr;
static void ar_xmit(struct ar_softc *sc);
static void arstart(struct ifnet *ifp);
static int arioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
@@ -296,6 +297,7 @@ arattach(struct isa_device *id)
int unit;
char *iface;
+ id->id_ointr = arintr;
switch(hc->interface) {
default: iface = "UNKNOWN"; break;
case AR_IFACE_EIA_232: iface = "EIA-232"; break;
@@ -378,7 +380,7 @@ arattach(struct isa_device *id)
* See if there is other interrupts pending.
* Repeat until there is no more interrupts.
*/
-void
+static void
arintr(int unit)
{
struct ar_hardc *hc = &ar_hardc[unit];
diff --git a/sys/i386/isa/if_cs.c b/sys/i386/isa/if_cs.c
index 1d044de..3b63f4d 100644
--- a/sys/i386/isa/if_cs.c
+++ b/sys/i386/isa/if_cs.c
@@ -27,7 +27,7 @@
*/
/*
- * $Id: if_cs.c,v 1.4 1998/08/27 22:41:18 msmith Exp $
+ * $Id: if_cs.c,v 1.5 1998/10/04 02:11:15 msmith Exp $
*
* Device driver for Crystal Semiconductor CS8920 based ethernet
* adapters. By Maxim Bolotin and Oleg Sharoiko, 27-April-1997
@@ -108,6 +108,7 @@ SYSCTL_INT(_machdep, OID_AUTO, cs_recv_delay, CTLFLAG_RW, &cs_recv_delay, 0, "")
static int cs_attach __P((struct cs_softc *, int, int));
static int cs_attach_isa __P((struct isa_device *));
static void cs_init __P((void *));
+static ointhand2_t csintr;
static int cs_ioctl __P((struct ifnet *, u_long, caddr_t));
static int cs_probe __P((struct isa_device *));
static int cs_cs89x0_probe __P((struct cs_softc *,
@@ -633,6 +634,7 @@ cs_attach_isa(struct isa_device *dev)
struct cs_softc *sc=&cs_softc[unit];
int flags=dev->id_flags;
+ dev->id_ointr = csintr;
return cs_attach(sc, unit, flags);
}
@@ -871,7 +873,7 @@ csintr_sc(struct cs_softc *sc, int unit)
/*
* Handle interrupts
*/
-void
+static void
csintr(int unit)
{
struct cs_softc *sc = &cs_softc[unit];
diff --git a/sys/i386/isa/if_cx.c b/sys/i386/isa/if_cx.c
index ded05ec..26ff1bc 100644
--- a/sys/i386/isa/if_cx.c
+++ b/sys/i386/isa/if_cx.c
@@ -62,6 +62,7 @@ static int cxattach __P((struct isa_device *id));
static void cxput __P((cx_chan_t *c, char b));
static void cxsend __P((cx_chan_t *c));
static void cxrinth __P((cx_chan_t *c));
+static ointhand2_t cxintr;
static int cxtinth __P((cx_chan_t *c));
#ifdef DEBUG
@@ -230,6 +231,8 @@ cxattach (struct isa_device *id)
int i;
struct sppp *sp;
+ id->id_ointr = cxintr;
+
/* Initialize the board structure. */
cx_init (b, unit, iobase, ffs(irq)-1, drq);
@@ -707,7 +710,7 @@ cxtinth (cx_chan_t *c)
return (teoir);
}
-void
+static void
cxintr (int bnum)
{
cx_board_t *b = cxboard + bnum;
diff --git a/sys/i386/isa/if_ed.c b/sys/i386/isa/if_ed.c
index 0fed19a..5309327 100644
--- a/sys/i386/isa/if_ed.c
+++ b/sys/i386/isa/if_ed.c
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_ed.c,v 1.144 1998/08/24 02:28:15 bde Exp $
+ * $Id: if_ed.c,v 1.145 1998/09/13 22:15:44 eivind Exp $
*/
/*
@@ -138,6 +138,7 @@ static int ed_attach __P((struct ed_softc *, int, int));
static int ed_attach_isa __P((struct isa_device *));
static void ed_init __P((void *));
+static ointhand2_t edintr;
static int ed_ioctl __P((struct ifnet *, u_long, caddr_t));
static int ed_probe __P((struct isa_device *));
static void ed_start __P((struct ifnet *));
@@ -1739,6 +1740,7 @@ ed_attach_isa(isa_dev)
struct ed_softc *sc = &ed_softc[unit];
int flags = isa_dev->id_flags;
+ isa_dev->id_ointr = edintr;
return ed_attach(sc, unit, flags);
}
@@ -2567,7 +2569,7 @@ edintr_sc(sc)
}
}
-void
+static void
edintr(unit)
int unit;
{
diff --git a/sys/i386/isa/if_eg.c b/sys/i386/isa/if_eg.c
index 7f68aa6..f0ee1a2 100644
--- a/sys/i386/isa/if_eg.c
+++ b/sys/i386/isa/if_eg.c
@@ -27,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: if_eg.c,v 1.27 1998/03/28 13:23:56 bde Exp $
+ * $Id: if_eg.c,v 1.28 1998/06/07 17:10:27 dfr Exp $
*
* Support for 3Com 3c505 Etherlink+ card.
*/
@@ -107,6 +107,7 @@ static void eginit __P((struct eg_softc *sc));
static int egioctl (struct ifnet *, u_long, caddr_t);
static void egrecv(struct eg_softc *);
static void egstart(struct ifnet *);
+static ointhand2_t egintr;
static void egread __P((struct eg_softc *, caddr_t, int));
static void egstop __P((struct eg_softc *));
@@ -326,6 +327,7 @@ egattach(struct isa_device *id)
struct eg_softc *sc = &eg_softc[id->id_unit];
struct ifnet *ifp = &sc->sc_arpcom.ac_if;
+ id->id_ointr = egintr;
egstop(sc);
sc->eg_pcb[0] = EG_CMD_GETEADDR; /* Get Station address */
@@ -526,7 +528,7 @@ loop:
m_freem(m0);
}
-void
+static void
egintr(int unit)
{
register struct eg_softc *sc = &eg_softc[unit];
diff --git a/sys/i386/isa/if_el.c b/sys/i386/isa/if_el.c
index 6a3c32d..a7520d7 100644
--- a/sys/i386/isa/if_el.c
+++ b/sys/i386/isa/if_el.c
@@ -6,7 +6,7 @@
*
* Questions, comments, bug reports and fixes to kimmel@cs.umass.edu.
*
- * $Id: if_el.c,v 1.36 1998/06/07 17:10:28 dfr Exp $
+ * $Id: if_el.c,v 1.37 1998/06/21 15:54:11 bde Exp $
*/
/* Except of course for the portions of code lifted from other FreeBSD
* drivers (mainly elread, elget and el_ioctl)
@@ -82,6 +82,7 @@ static void el_watchdog(struct ifnet *);
static void el_stop(int);
static int el_xmit(struct el_softc *,int);
+static ointhand2_t elintr;
static __inline void elread(struct el_softc *,caddr_t,int);
static struct mbuf *elget(caddr_t,int,int,struct ifnet *);
static __inline void el_hardreset(int);
@@ -161,6 +162,7 @@ el_attach(struct isa_device *idev)
dprintf(("Attaching el%d...\n",idev->id_unit));
/* Get things pointing to the right places. */
+ idev->id_ointr = elintr;
sc = &el_softc[idev->id_unit];
ifp = &sc->arpcom.ac_if;
base = sc->el_base;
@@ -428,7 +430,7 @@ static int el_xmit(struct el_softc *sc,int len)
}
/* controller interrupt */
-void elintr(int unit)
+static void elintr(int unit)
{
register struct el_softc *sc;
register int base;
diff --git a/sys/i386/isa/if_ep.c b/sys/i386/isa/if_ep.c
index 80b8db4..8ca0272 100644
--- a/sys/i386/isa/if_ep.c
+++ b/sys/i386/isa/if_ep.c
@@ -38,7 +38,7 @@
*/
/*
- * $Id: if_ep.c,v 1.75 1998/06/07 17:10:28 dfr Exp $
+ * $Id: if_ep.c,v 1.76 1998/06/21 18:02:38 bde Exp $
*
* Promiscuous mode added and interrupt logic slightly changed
* to reduce the number of adapter failures. Transceiver select
@@ -118,6 +118,7 @@ static int ep_isa_attach __P((struct isa_device *));
static int epioctl __P((struct ifnet * ifp, u_long, caddr_t));
static void epinit __P((struct ep_softc *));
+static ointhand2_t epintr;
static void epread __P((struct ep_softc *));
void epreset __P((int));
static void epstart __P((struct ifnet *));
@@ -538,6 +539,7 @@ ep_isa_attach(is)
u_short config;
int irq;
+ is->id_ointr = epintr;
sc->ep_connectors = 0;
config = inw(IS_BASE + EP_W0_CONFIG_CTRL);
if (config & IS_AUI) {
@@ -900,7 +902,7 @@ readcheck:
goto startagain;
}
-void
+static void
epintr(unit)
int unit;
{
diff --git a/sys/i386/isa/if_ex.c b/sys/i386/isa/if_ex.c
index f64ef74..2508bd7 100644
--- a/sys/i386/isa/if_ex.c
+++ b/sys/i386/isa/if_ex.c
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_ex.c,v 1.11 1998/03/28 13:24:06 bde Exp $
+ * $Id: if_ex.c,v 1.12 1998/06/07 17:10:30 dfr Exp $
*/
/*
@@ -119,6 +119,7 @@ static int ex_attach __P((struct isa_device *));
static void ex_init __P((void *));
static void ex_start __P((struct ifnet *));
static void ex_stop __P((int));
+static ointhand2_t exintr;
static int ex_ioctl __P((struct ifnet *, u_long, caddr_t));
static void ex_reset __P((int));
static void ex_watchdog __P((struct ifnet *));
@@ -254,6 +255,8 @@ int ex_attach(struct isa_device *dev)
DODEBUG(Start_End, printf("ex_attach%d: start\n", unit););
+ dev->id_ointr = exintr;
+
/*
* Initialize the ifnet structure.
*/
@@ -565,7 +568,7 @@ void ex_stop(int unit)
}
-void exintr(int unit)
+static void exintr(int unit)
{
struct ex_softc *sc = &ex_sc[unit];
struct ifnet *ifp = &sc->arpcom.ac_if;
diff --git a/sys/i386/isa/if_fe.c b/sys/i386/isa/if_fe.c
index 85e948d..ae8613a 100644
--- a/sys/i386/isa/if_fe.c
+++ b/sys/i386/isa/if_fe.c
@@ -21,7 +21,7 @@
*/
/*
- * $Id: if_fe.c,v 1.41 1998/06/07 17:10:31 dfr Exp $
+ * $Id: if_fe.c,v 1.42 1998/06/21 16:51:06 bde Exp $
*
* Device driver for Fujitsu MB86960A/MB86965A based Ethernet cards.
* To be used with FreeBSD 2.x
@@ -236,6 +236,7 @@ static struct fe_softc {
static int fe_probe ( struct isa_device * );
static int fe_attach ( struct isa_device * );
static void fe_init ( int );
+static ointhand2_t feintr;
static int fe_ioctl ( struct ifnet *, u_long, caddr_t );
static void fe_start ( struct ifnet * );
static void fe_reset ( int );
@@ -1447,6 +1448,8 @@ fe_attach ( DEVICE * dev )
#endif
struct fe_softc *sc = &fe_softc[dev->id_unit];
+ dev->id_ointr = feintr;
+
/*
* Initialize ifnet structure
*/
@@ -2365,7 +2368,7 @@ fe_rint ( struct fe_softc * sc, u_char rstat )
/*
* Ethernet interface interrupt processor
*/
-void
+static void
feintr ( int unit )
{
struct fe_softc *sc = &fe_softc[unit];
diff --git a/sys/i386/isa/if_ie.c b/sys/i386/isa/if_ie.c
index f894dc5..3f1ed13 100644
--- a/sys/i386/isa/if_ie.c
+++ b/sys/i386/isa/if_ie.c
@@ -47,7 +47,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_ie.c,v 1.55 1998/08/10 14:27:32 bde Exp $
+ * $Id: if_ie.c,v 1.56 1998/08/10 17:21:48 bde Exp $
*/
/*
@@ -176,6 +176,7 @@ static struct mbuf *last_not_for_us;
static int ieprobe(struct isa_device * dvp);
static int ieattach(struct isa_device * dvp);
+static ointhand2_t ieintr;
static int sl_probe(struct isa_device * dvp);
static int el_probe(struct isa_device * dvp);
static int ni_probe(struct isa_device * dvp);
@@ -789,6 +790,8 @@ ieattach(struct isa_device *dvp)
struct ifnet *ifp = &ie->arpcom.ac_if;
size_t allocsize;
+ dvp->id_ointr = ieintr;
+
/*
* based on the amount of memory we have, allocate our tx and rx
* resources.
@@ -851,7 +854,7 @@ ieattach(struct isa_device *dvp)
/*
* What to do upon receipt of an interrupt.
*/
-void
+static void
ieintr(int unit)
{
register struct ie_softc *ie = &ie_softc[unit];
diff --git a/sys/i386/isa/if_le.c b/sys/i386/isa/if_le.c
index f6b89ed..667b710 100644
--- a/sys/i386/isa/if_le.c
+++ b/sys/i386/isa/if_le.c
@@ -21,7 +21,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: if_le.c,v 1.46 1998/07/15 09:38:09 bde Exp $
+ * $Id: if_le.c,v 1.47 1998/08/12 18:32:42 bde Exp $
*/
/*
@@ -236,6 +236,7 @@ struct le_softc {
static int le_probe(struct isa_device *dvp);
static int le_attach(struct isa_device *dvp);
+static ointhand2_t le_intr;
static int le_ioctl(struct ifnet *ifp, u_long command, caddr_t data);
static void le_input(le_softc_t *sc, caddr_t seg1, size_t total_len,
size_t len2, caddr_t seg2);
@@ -354,6 +355,7 @@ le_attach(
le_softc_t *sc = &le_softc[dvp->id_unit];
struct ifnet *ifp = &sc->le_if;
+ dvp->id_ointr = le_intr;
ifp->if_softc = sc;
ifp->if_mtu = ETHERMTU;
printf("%s%d: %s ethernet address %6D\n",
@@ -378,7 +380,7 @@ le_attach(
return 1;
}
-void
+static void
le_intr(
int unit)
{
diff --git a/sys/i386/isa/if_lnc.c b/sys/i386/isa/if_lnc.c
index e31c600..e5f6c73 100644
--- a/sys/i386/isa/if_lnc.c
+++ b/sys/i386/isa/if_lnc.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_lnc.c,v 1.45 1998/08/24 02:28:15 bde Exp $
+ * $Id: if_lnc.c,v 1.46 1998/09/17 13:09:16 jkh Exp $
*/
/*
@@ -177,6 +177,7 @@ static int pcnet_probe __P((struct lnc_softc *sc));
static int lnc_attach_sc __P((struct lnc_softc *sc, int unit));
static int lnc_attach __P((struct isa_device *isa_dev));
static void lnc_init __P((struct lnc_softc *sc));
+static ointhand2_t lncintr;
static __inline int mbuf_to_buffer __P((struct mbuf *m, char *buffer));
static __inline struct mbuf *chain_to_cluster __P((struct mbuf *m));
static void lnc_start __P((struct ifnet *ifp));
@@ -1273,8 +1274,10 @@ lnc_attach(struct isa_device * isa_dev)
{
int unit = isa_dev->id_unit;
struct lnc_softc *sc = &lnc_softc[unit];
+ int result;
- int result = lnc_attach_sc (sc, unit);
+ isa_dev->id_ointr = lncintr;
+ result = lnc_attach_sc (sc, unit);
if (result == 0)
return (0);
@@ -1592,7 +1595,7 @@ lncintr_sc(struct lnc_softc *sc)
}
}
-void
+static void
lncintr(int unit)
{
struct lnc_softc *sc = &lnc_softc[unit];
diff --git a/sys/i386/isa/if_sr.c b/sys/i386/isa/if_sr.c
index 236bb42..85cbb70 100644
--- a/sys/i386/isa/if_sr.c
+++ b/sys/i386/isa/if_sr.c
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: if_sr.c,v 1.14 1998/06/17 13:54:56 bde Exp $
+ * $Id: if_sr.c,v 1.15 1998/06/21 14:53:12 bde Exp $
*/
/*
@@ -270,6 +270,7 @@ struct sr_hardc *srattach_pci(int unit, vm_offset_t plx_vaddr,
void srintr_hc(struct sr_hardc *hc);
static int srattach(struct sr_hardc *hc);
+static ointhand2_t srintr;
static void sr_xmit(struct sr_softc *sc);
static void srstart(struct ifnet *ifp);
static int srioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
@@ -864,7 +865,7 @@ srattach(struct sr_hardc *hc)
* See if there is other interrupts pending.
* Repeat until there no interrupts remain.
*/
-void
+static void
srintr(int unit)
{
struct sr_hardc *hc;
diff --git a/sys/i386/isa/if_wl.c b/sys/i386/isa/if_wl.c
index 66dbffd..31f7c31 100644
--- a/sys/i386/isa/if_wl.c
+++ b/sys/i386/isa/if_wl.c
@@ -1,4 +1,4 @@
-/* $Id: if_wl.c,v 1.14 1998/08/20 05:49:59 msmith Exp $ */
+/* $Id: if_wl.c,v 1.15 1998/08/24 02:28:15 bde Exp $ */
/*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -81,7 +81,7 @@
*
* sample config:
*
- * device wl0 at isa? port 0x300 net irq ? vector wlintr
+ * device wl0 at isa? port 0x300 net irq ?
*
* Ifdefs:
* 1. WLDEBUG. (off) - if turned on enables IFF_DEBUG set via ifconfig debug
@@ -302,6 +302,7 @@ static void wlstart(struct ifnet *ifp);
static void wlinit(void *xsc);
static int wlioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
static timeout_t wlwatchdog;
+static ointhand2_t wlintr;
static void wlxmt(int unt, struct mbuf *m);
static int wldiag(int unt);
static int wlconfig(int unit);
@@ -443,6 +444,7 @@ wlattach(struct isa_device *id)
#ifdef WLDEBUG
printf("wlattach: base %x, unit %d\n", base, unit);
#endif
+ id->id_ointr = wlintr;
sc->base = base;
sc->unit = unit;
sc->flags = 0;
@@ -1472,7 +1474,7 @@ wlwatchdog(void *vsc)
* output : either a packet is received, or a packet is transfered
*
*/
-void
+static void
wlintr(unit)
int unit;
{
diff --git a/sys/i386/isa/if_ze.c b/sys/i386/isa/if_ze.c
index 2821470..4900804 100644
--- a/sys/i386/isa/if_ze.c
+++ b/sys/i386/isa/if_ze.c
@@ -47,7 +47,7 @@
*/
/*
- * $Id: if_ze.c,v 1.53 1998/06/07 17:10:39 dfr Exp $
+ * $Id: if_ze.c,v 1.54 1998/06/21 17:08:08 bde Exp $
*/
/* XXX don't mix different PCCARD support code. */
@@ -168,6 +168,7 @@ static void ze_init __P((int unit));
static __inline void ze_xmit __P((struct ifnet *ifp));
static void ze_start __P((struct ifnet *ifp));
static __inline void ze_rint __P((int unit));
+static ointhand2_t zeintr;
static int ze_ioctl __P((struct ifnet *ifp, u_long command, caddr_t data));
static void ze_get_packet __P((struct ze_softc *sc, char *buf, int len));
static __inline char *ze_ring_copy __P((struct ze_softc *sc, char *src,
@@ -586,6 +587,8 @@ ze_attach(isa_dev)
struct ifnet *ifp = &sc->arpcom.ac_if;
int pl;
+ isa_dev->id_ointr = zeintr;
+
/* PCMCIA card can be offlined. Reconfiguration is required */
if (isa_dev->id_reconfig) {
ze_reset(isa_dev->id_unit);
@@ -1145,7 +1148,7 @@ ze_rint(unit)
/*
* Ethernet interface interrupt processor
*/
-void
+static void
zeintr(unit)
int unit;
{
diff --git a/sys/i386/isa/if_zp.c b/sys/i386/isa/if_zp.c
index b2e9ad8..11e562c 100644
--- a/sys/i386/isa/if_zp.c
+++ b/sys/i386/isa/if_zp.c
@@ -34,7 +34,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* From: if_ep.c,v 1.9 1994/01/25 10:46:29 deraadt Exp $
- * $Id: if_zp.c,v 1.47 1998/05/26 02:28:18 jmb Exp $
+ * $Id: if_zp.c,v 1.48 1998/06/07 17:10:40 dfr Exp $
*/
/*-
* TODO:
@@ -198,6 +198,7 @@ static int zpioctl __P((struct ifnet * ifp, u_long, caddr_t));
static u_short read_eeprom_data __P((int, int));
static void zpinit __P((int));
+static ointhand2_t zpintr;
static void zpmbuffill __P((void *));
static void zpmbufempty __P((struct zp_softc *));
static void zpread __P((struct zp_softc *));
@@ -484,6 +485,8 @@ zpattach(isa_dev)
u_short i;
int pl;
+ isa_dev->id_ointr = zpintr;
+
/* PCMCIA card can be offlined. Reconfiguration is required */
if (isa_dev->id_reconfig) {
if (!isa_dev->id_alive && sc->last_alive) {
@@ -774,7 +777,7 @@ readcheck:
}
goto startagain;
}
-void
+static void
zpintr(unit)
int unit;
{
diff --git a/sys/i386/isa/isa.c b/sys/i386/isa/isa.c
index eb28093..fe686e1 100644
--- a/sys/i386/isa/isa.c
+++ b/sys/i386/isa/isa.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)isa.c 7.2 (Berkeley) 5/13/91
- * $Id: isa.c,v 1.114 1998/10/12 13:12:45 bde Exp $
+ * $Id: isa.c,v 1.115 1998/10/13 08:24:38 dg Exp $
*/
/*
@@ -557,7 +557,10 @@ config_isadev_c(isdp, mp, reconfig)
isdp->id_alive = id_alive;
}
(*dp->attach)(isdp);
- if (isdp->id_irq) {
+ if (isdp->id_irq != 0 && isdp->id_intr == NULL)
+ printf("%s%d: irq with no handler\n",
+ dp->name, isdp->id_unit);
+ if (isdp->id_irq != 0 && isdp->id_intr != NULL) {
#ifdef APIC_IO
/*
* Some motherboards use upper IRQs for traditional
@@ -594,7 +597,7 @@ config_isadev_c(isdp, mp, reconfig)
} else {
#if 0
/* This code has not been tested.... */
- if (isdp->id_irq) {
+ if (isdp->id_irq != 0 && isdp->id_intr != NULL) {
icu_unset(ffs(isdp->id_irq) - 1,
isdp->id_intr);
if (mp)
diff --git a/sys/i386/isa/isa_device.h b/sys/i386/isa/isa_device.h
index 17aad1d..7092a3f 100644
--- a/sys/i386/isa/isa_device.h
+++ b/sys/i386/isa/isa_device.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)isa_device.h 7.1 (Berkeley) 5/9/91
- * $Id: isa_device.h,v 1.54 1998/09/15 10:04:08 gibbs Exp $
+ * $Id: isa_device.h,v 1.55 1998/10/12 11:32:35 bde Exp $
*/
#ifndef _I386_ISA_ISA_DEVICE_H_
@@ -41,6 +41,8 @@
* ISA Bus Autoconfiguration
*/
+typedef void ointhand2_t __P((int unit));
+
/*
* Per device structure.
*
@@ -57,7 +59,12 @@ struct isa_device {
int id_drq; /* DMA request */
caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/
int id_msize; /* size of i/o memory */
- inthand2_t *id_intr; /* interrupt interface routine */
+ union {
+ inthand2_t *id_i;
+ ointhand2_t *id_oi;
+ } id_iu; /* interrupt interface routine */
+#define id_intr id_iu.id_i
+#define id_ointr id_iu.id_oi
int id_unit; /* unit number */
int id_flags; /* flags */
int id_scsiid; /* scsi id if needed */
@@ -123,75 +130,64 @@ int isa_dmastatus __P((int chan));
int isa_dmastop __P((int chan));
void reconfig_isadev __P((struct isa_device *isdp, u_int *mp));
-typedef void ointhand2_t __P((int unit));
-
-/*
- * The "old" interrupt handlers really have type ointhand2_t although they
- * appear to be declared as having type inthand2_t. However, if this
- * header is included by ioconf.c, pretend that the handlers really have
- * type inthand_t. Assume that `C' is defined only by ioconf.c.
- */
-#ifndef C
-#define inthand2_t ointhand2_t
-#endif
-
-inthand2_t adintr;
-inthand2_t ahaintr;
-inthand2_t aicintr;
-inthand2_t alogintr;
-inthand2_t arintr;
-inthand2_t ascintr;
+/* XXX temporary hack for old config files. */
+#ifdef C
+#define adintr NULL
+#define ahaintr NULL
+#define aicintr NULL
+#define alogintr NULL
+#define arintr NULL
+#define ascintr NULL
#ifdef PC98
-inthand2_t bsintr;
+#define bsintr NULL
#endif
-inthand2_t csintr;
-inthand2_t cxintr;
-inthand2_t cyintr;
-inthand2_t edintr;
-inthand2_t egintr;
-inthand2_t elintr;
-inthand2_t epintr;
-inthand2_t exintr;
-inthand2_t fdintr;
-inthand2_t feintr;
-inthand2_t gusintr;
-inthand2_t ieintr;
-inthand2_t labpcintr;
-inthand2_t le_intr;
-inthand2_t lncintr;
-inthand2_t loranintr;
-inthand2_t lptintr;
-inthand2_t m6850intr;
-inthand2_t mcdintr;
-inthand2_t mseintr;
-inthand2_t ncaintr;
-inthand2_t npxintr;
-inthand2_t pasintr;
-inthand2_t pcmintr;
-inthand2_t pcrint;
-inthand2_t ppcintr;
-inthand2_t pcfintr;
-inthand2_t psmintr;
-inthand2_t rcintr;
-inthand2_t sbintr;
-inthand2_t scintr;
-inthand2_t seaintr;
-inthand2_t siointr;
-inthand2_t sndintr;
-inthand2_t spigintr;
-inthand2_t srintr;
-inthand2_t sscapeintr;
-inthand2_t stlintr;
-inthand2_t twintr;
-inthand2_t uhaintr;
-inthand2_t wdintr;
-inthand2_t wdsintr;
-inthand2_t wlintr;
-inthand2_t wtintr;
-inthand2_t zeintr;
-inthand2_t zpintr;
-
-#undef inthand2_t
+#define csintr NULL
+#define cxintr NULL
+#define cyintr NULL
+#define edintr NULL
+#define egintr NULL
+#define elintr NULL
+#define epintr NULL
+#define exintr NULL
+#define fdintr NULL
+#define feintr NULL
+#define gusintr NULL
+#define ieintr NULL
+#define labpcintr NULL
+#define le_intr NULL
+#define lncintr NULL
+#define loranintr NULL
+#define lptintr NULL
+#define m6850intr NULL
+#define mcdintr NULL
+#define mseintr NULL
+#define ncaintr NULL
+#define npxintr NULL
+#define pasintr NULL
+#define pcmintr NULL
+#define pcrint NULL
+#define ppcintr NULL
+#define pcfintr NULL
+#define psmintr NULL
+#define rcintr NULL
+#define sbintr NULL
+#define scintr NULL
+#define seaintr NULL
+#define siointr NULL
+#define sndintr NULL
+#define spigintr NULL
+#define srintr NULL
+#define sscapeintr NULL
+#define stlintr NULL
+#define twintr NULL
+#define uhaintr NULL
+#define wdintr NULL
+#define wdsintr NULL
+#define wlintr NULL
+#define wtintr NULL
+#define zeintr NULL
+#define zpintr NULL
+#endif /* C */
#endif /* KERNEL */
diff --git a/sys/i386/isa/labpc.c b/sys/i386/isa/labpc.c
index 4e19b64..aa2adce 100644
--- a/sys/i386/isa/labpc.c
+++ b/sys/i386/isa/labpc.c
@@ -296,6 +296,7 @@ static struct cdevsw labpc_cdevsw =
labpcioctl, nostop, nullreset, nodevtotty,
seltrue, nommap, labpcstrategy, "labpc", NULL, -1 };
+static ointhand2_t labpcintr;
static void start(struct ctlr *ctlr);
static void
@@ -473,6 +474,7 @@ labpcattach(struct isa_device *dev)
{
struct ctlr *ctlr = labpcs[dev->id_unit];
+ dev->id_ointr = labpcintr;
callout_handle_init(&ctlr->ch);
ctlr->sample_us = (1000000.0 / (double)LABPC_DEFAULT_HERZ) + .50;
reset(ctlr);
@@ -692,7 +694,7 @@ static void ad_intr(struct ctlr *ctlr)
}
}
-void labpcintr(int unit)
+static void labpcintr(int unit)
{
struct ctlr *ctlr = labpcs[unit];
(*ctlr->intr)(ctlr);
diff --git a/sys/i386/isa/loran.c b/sys/i386/isa/loran.c
index e92d793..ee34511 100644
--- a/sys/i386/isa/loran.c
+++ b/sys/i386/isa/loran.c
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $Id: loran.c,v 1.7 1998/08/17 18:47:36 bde Exp $
+ * $Id: loran.c,v 1.8 1998/08/17 19:09:36 bde Exp $
*
* This device-driver helps the userland controlprogram for a LORAN-C
* receiver avoid monopolizing the CPU.
@@ -213,6 +213,7 @@ static d_open_t loranopen;
static d_close_t loranclose;
static d_read_t loranread;
static d_write_t loranwrite;
+static ointhand2_t loranintr;
extern struct timecounter loran_timecounter[];
/**********************************************************************/
@@ -257,6 +258,8 @@ loranattach(struct isa_device *isdp)
{
int i;
+ isdp->id_ointr = loranintr;
+
/* We need to be a "fast-intr" */
isdp->id_ri_flags |= RI_FAST;
@@ -403,7 +406,7 @@ loranwrite(dev_t dev, struct uio * uio, int ioflag)
return(err);
}
-void
+static void
loranintr(int unit)
{
u_long ef;
diff --git a/sys/i386/isa/lpt.c b/sys/i386/isa/lpt.c
index d9e1592..a2907cf 100644
--- a/sys/i386/isa/lpt.c
+++ b/sys/i386/isa/lpt.c
@@ -46,7 +46,7 @@
* SUCH DAMAGE.
*
* from: unknown origin, 386BSD 0.1
- * $Id: lpt.c,v 1.69 1998/06/07 17:10:44 dfr Exp $
+ * $Id: lpt.c,v 1.70 1998/08/17 01:05:23 bde Exp $
*/
/*
@@ -259,6 +259,7 @@ static struct lpt_softc {
static timeout_t lptout;
static int lptprobe (struct isa_device *dvp);
static int lptattach (struct isa_device *isdp);
+static ointhand2_t lptintr;
#ifdef INET
@@ -422,6 +423,7 @@ lptattach(struct isa_device *isdp)
struct lpt_softc *sc;
int unit;
+ isdp->id_ointr = lptintr;
unit = isdp->id_unit;
sc = lpt_sc + unit;
sc->sc_port = isdp->id_iobase;
@@ -749,7 +751,7 @@ lptwrite(dev_t dev, struct uio * uio, int ioflag)
* do checking for interrupted write call.
*/
-void
+static void
lptintr(int unit)
{
struct lpt_softc *sc = lpt_sc + unit;
diff --git a/sys/i386/isa/mcd.c b/sys/i386/isa/mcd.c
index 0e3bd17..a24a79f 100644
--- a/sys/i386/isa/mcd.c
+++ b/sys/i386/isa/mcd.c
@@ -40,7 +40,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: mcd.c,v 1.99 1998/07/04 22:30:17 julian Exp $
+ * $Id: mcd.c,v 1.100 1998/07/13 09:53:01 bde Exp $
*/
static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
@@ -178,6 +178,7 @@ static int mcd_send(int unit, int cmd,int nretrys);
static void hsg2msf(int hsg, bcd_t *msf);
static int msf2hsg(bcd_t *msf, int relative);
static int mcd_volinfo(int unit);
+static ointhand2_t mcdintr;
static int mcd_waitrdy(int port,int dly);
static timeout_t mcd_timeout;
static void mcd_doread(int state, struct mcd_mbx *mbxin);
@@ -249,6 +250,7 @@ int mcd_attach(struct isa_device *dev)
int unit = dev->id_unit;
struct mcd_data *cd = mcd_data + unit;
+ dev->id_ointr = mcdintr;
cd->iobase = dev->id_iobase;
cd->flags |= MCDINIT;
mcd_soft_reset(unit);
@@ -977,7 +979,7 @@ mcd_volinfo(int unit)
return EINVAL;
}
-void
+static void
mcdintr(unit)
int unit;
{
diff --git a/sys/i386/isa/mse.c b/sys/i386/isa/mse.c
index d907e4c..6579de2 100644
--- a/sys/i386/isa/mse.c
+++ b/sys/i386/isa/mse.c
@@ -11,7 +11,7 @@
* this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
- * $Id: mse.c,v 1.37 1998/01/24 02:54:22 eivind Exp $
+ * $Id: mse.c,v 1.38 1998/06/07 17:10:47 dfr Exp $
*/
/*
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
@@ -87,6 +87,7 @@ static struct cdevsw mse_cdevsw =
mseioctl, nostop, nullreset, nodevtotty,/* mse */
msepoll, nommap, NULL, "mse", NULL, -1 };
+static ointhand2_t mseintr;
/*
* Software control structure for mouse. The sc_enablemouse(),
@@ -257,6 +258,7 @@ mseattach(idp)
int unit = idp->id_unit;
struct mse_softc *sc = &mse_sc[unit];
+ idp->id_ointr = mseintr;
sc->sc_port = idp->id_iobase;
sc->mode.accelfactor = (idp->id_flags & MSE_CONFIG_ACCEL) >> 4;
#ifdef DEVFS
@@ -546,7 +548,7 @@ msepoll(dev, events, p)
/*
* mseintr: update mouse status. sc_deltax and sc_deltay are accumulative.
*/
-void
+static void
mseintr(unit)
int unit;
{
diff --git a/sys/i386/isa/ncr5380.c b/sys/i386/isa/ncr5380.c
index e897837..cb01305 100644
--- a/sys/i386/isa/ncr5380.c
+++ b/sys/i386/isa/ncr5380.c
@@ -217,6 +217,7 @@ static void nca_start (adapter_t *z);
static void nca_information_transfer (adapter_t *z, scb_t *scb);
static int nca_poll (adapter_t *z, scb_t *scb);
static int nca_init (adapter_t *z);
+static ointhand2_t ncaintr;
static int nca_reselect (adapter_t *z);
static int nca_select (adapter_t *z, scb_t *scb);
static int nca_abort (adapter_t *z, scb_t *scb);
@@ -476,6 +477,8 @@ int nca_attach (struct isa_device *dev)
printf ("nca%d: type %s%s\n", unit, z->name,
(dev->id_flags & FLAG_NOPARITY) ? ", no parity" : "");
+ dev->id_ointr = ncaintr;
+
/* fill in the prototype scsi_link */
z->sc_link.adapter_unit = unit;
z->sc_link.adapter_targ = z->scsi_addr;
@@ -514,7 +517,7 @@ void ncaminphys (struct buf *bp)
/*
* Catch an interrupt from the adaptor.
*/
-void ncaintr (int unit)
+static void ncaintr (int unit)
{
adapter_t *z = &ncadata[unit];
diff --git a/sys/i386/isa/npx.c b/sys/i386/isa/npx.c
index 869111f..2ec330a 100644
--- a/sys/i386/isa/npx.c
+++ b/sys/i386/isa/npx.c
@@ -32,7 +32,7 @@
* SUCH DAMAGE.
*
* from: @(#)npx.c 7.2 (Berkeley) 5/12/91
- * $Id: npx.c,v 1.60 1998/04/19 15:39:26 bde Exp $
+ * $Id: npx.c,v 1.61 1998/06/21 18:02:39 bde Exp $
*/
#include "npx.h"
@@ -95,6 +95,7 @@ void i586_bcopy __P((const void *from, void *to, size_t len));
void i586_bzero __P((void *buf, size_t len));
int i586_copyin __P((const void *udaddr, void *kaddr, size_t len));
int i586_copyout __P((const void *kaddr, void *udaddr, size_t len));
+ointhand2_t npxintr;
#ifdef __GNUC__
@@ -384,6 +385,8 @@ int
npxattach(dvp)
struct isa_device *dvp;
{
+ dvp->id_ointr = npxintr;
+
/* The caller has printed "irq 13" for the npx_irq13 case. */
if (!npx_irq13) {
printf("npx%d: ", dvp->id_unit);
diff --git a/sys/i386/isa/pcf.c b/sys/i386/isa/pcf.c
index 7b498d7..bee0e15 100644
--- a/sys/i386/isa/pcf.c
+++ b/sys/i386/isa/pcf.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: pcf.c,v 1.1.1.17 1998/08/29 17:04:23 son Exp $
+ * $Id: pcf.c,v 1.1 1998/09/03 21:01:22 nsouch Exp $
*
*/
#include <sys/param.h>
@@ -108,6 +108,7 @@ static int pcf_start(device_t, u_char);
static int pcf_stop(device_t);
static int pcf_write(device_t, char *, int, int *);
static int pcf_read(device_t, char *, int, int *);
+static ointhand2_t pcfintr;
static int pcf_rst_card(device_t, u_char);
static device_method_t pcf_methods[] = {
@@ -179,6 +180,7 @@ error:
static int
pcfattach_isa(struct isa_device *isdp)
{
+ isdp->id_ointr = pcfintr;
return (1); /* ok */
}
@@ -358,7 +360,7 @@ error:
return (error);
}
-void
+static void
pcfintr(unit)
{
struct pcf_softc *pcf =
diff --git a/sys/i386/isa/pcvt/pcvt_drv.c b/sys/i386/isa/pcvt/pcvt_drv.c
index 90758b2..0fd7e84 100644
--- a/sys/i386/isa/pcvt/pcvt_drv.c
+++ b/sys/i386/isa/pcvt/pcvt_drv.c
@@ -384,6 +384,8 @@ pcattach(struct isa_device *dev)
#else /* PCVT_NETBSD > 9 */
+ dev->id_ointr = pcrint;
+
return 1;
#endif /* PCVT_NETBSD > 9 */
diff --git a/sys/i386/isa/pcvt/pcvt_hdr.h b/sys/i386/isa/pcvt/pcvt_hdr.h
index 70c2891..11adc9c 100644
--- a/sys/i386/isa/pcvt/pcvt_hdr.h
+++ b/sys/i386/isa/pcvt/pcvt_hdr.h
@@ -1223,6 +1223,7 @@ int pccncheckc ( Dev_t dev );
int pccnputc ( Dev_t dev, U_char c );
#endif
+ointhand2_t pcrint;
void pcstart ( struct tty *tp );
void pcstop ( struct tty *tp, int flag );
diff --git a/sys/i386/isa/pnp.c b/sys/i386/isa/pnp.c
index 9b4bb55..70be3c8 100644
--- a/sys/i386/isa/pnp.c
+++ b/sys/i386/isa/pnp.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: pnp.c,v 1.5 1998/02/09 06:08:38 eivind Exp $
+ * $Id: pnp.c,v 1.6 1998/09/13 22:15:44 eivind Exp $
*/
#include <sys/param.h>
@@ -456,7 +456,7 @@ config_pnp_device(pnp_id *p, int csn)
nod->dev.id_driver->name ? nod->dev.id_driver->name : "unknown",
unit, dvp->pd_name, name, p->serial);
if (nod->dev.id_alive) {
- if (nod->dev.id_irq) {
+ if (nod->dev.id_irq != 0 && nod->dev.id_intr != NULL) {
/* the board uses interrupts. Register it. */
if (dvp->imask)
INTRMASK( *(dvp->imask), nod->dev.id_irq );
diff --git a/sys/i386/isa/ppc.c b/sys/i386/isa/ppc.c
index 4dc6a44..39f4b4e 100644
--- a/sys/i386/isa/ppc.c
+++ b/sys/i386/isa/ppc.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppc.c,v 1.8 1998/09/13 20:57:06 nsouch Exp $
+ * $Id: ppc.c,v 1.9 1998/09/20 14:47:01 nsouch Exp $
*
*/
#include "ppc.h"
@@ -124,6 +124,7 @@ static void ppc_wfifo(int unit, char byte) { w_fifo(ppcdata[unit], byte); }
static void ppc_reset_epp_timeout(int);
static void ppc_ecp_sync(int);
+static ointhand2_t ppcintr;
static int ppc_exec_microseq(int, struct ppb_microseq **);
static int ppc_generic_setmode(int, int);
@@ -189,7 +190,7 @@ ppc_ecp_sync(int unit) {
return;
}
-void
+static void
ppcintr(int unit)
{
/* call directly upper code */
@@ -1276,6 +1277,8 @@ ppcattach(struct isa_device *isdp)
ppc_modes[ppc->ppc_mode], (PPB_IS_EPP(ppc->ppc_mode)) ?
ppc_epp_protocol[ppc->ppc_epp] : "");
+ isdp->id_ointr = ppcintr;
+
/*
* Prepare ppbus data area for upper level code.
*/
diff --git a/sys/i386/isa/psm.c b/sys/i386/isa/psm.c
index 389b1b8..6f7f6ab 100644
--- a/sys/i386/isa/psm.c
+++ b/sys/i386/isa/psm.c
@@ -20,7 +20,7 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: psm.c,v 1.54 1998/07/06 16:10:06 eivind Exp $
+ * $Id: psm.c,v 1.55 1998/10/13 07:56:38 yokota Exp $
*/
/*
@@ -246,6 +246,7 @@ static int restore_controller __P((KBDC, int));
static int reinitialize __P((int, mousemode_t *));
static int doopen __P((int, int));
static char *model_name(int);
+static ointhand2_t psmintr;
/* vendor specific features */
typedef int probefunc_t __P((struct psm_softc *));
@@ -977,6 +978,8 @@ psmattach(struct isa_device *dvp)
int unit = dvp->id_unit;
struct psm_softc *sc = psm_softc[unit];
+ dvp->id_ointr = psmintr;
+
if (sc == NULL) /* shouldn't happen */
return (0);
@@ -1662,7 +1665,7 @@ psmioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
return error;
}
-void
+static void
psmintr(int unit)
{
/*
diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c
index e946c58..ae1108a 100644
--- a/sys/i386/isa/rc.c
+++ b/sys/i386/isa/rc.c
@@ -172,6 +172,7 @@ static int rc_rcsrt[16] = {
};
/* Static prototypes */
+static ointhand2_t rcintr;
static void rc_hwreset __P((int, int, unsigned int));
static int rc_test __P((int, int));
static void rc_discard_output __P((struct rc_chans *));
@@ -231,6 +232,8 @@ rcattach(dvp)
static int rc_started = 0;
struct tty *tp;
+ dvp->id_ointr = rcintr;
+
/* Thorooughly test the device */
if (rcb->rcb_probed != RC_PROBED)
return 0;
@@ -278,7 +281,8 @@ rcattach(dvp)
}
/* RC interrupt handling */
-void rcintr(unit)
+static void
+rcintr(unit)
int unit;
{
register struct rc_softc *rcb = &rc_softc[unit];
diff --git a/sys/i386/isa/seagate.c b/sys/i386/isa/seagate.c
index 8b2be3f..30ca28c 100644
--- a/sys/i386/isa/seagate.c
+++ b/sys/i386/isa/seagate.c
@@ -60,7 +60,7 @@
* that category, with the possible exception of scanners and
* some of the older MO drives.
*
- * $Id: seagate.c,v 1.30 1998/07/15 09:38:10 bde Exp $
+ * $Id: seagate.c,v 1.31 1998/08/11 17:22:42 bde Exp $
*/
/*
@@ -337,6 +337,7 @@ static void sea_start (adapter_t *z);
static void sea_information_transfer (adapter_t *z, scb_t *scb);
static int sea_poll (adapter_t *z, scb_t *scb);
static int sea_init (adapter_t *z);
+static ointhand2_t seaintr;
static int sea_reselect (adapter_t *z);
static int sea_select (volatile adapter_t *z, scb_t *scb);
static int sea_abort (adapter_t *z, scb_t *scb);
@@ -532,6 +533,8 @@ int sea_attach (struct isa_device *dev)
printf ("\nsea%d: type %s%s\n", unit, z->name,
(dev->id_flags & FLAG_NOPARITY) ? ", no parity" : "");
+ dev->id_ointr = seaintr;
+
/* fill in the prototype scsi_link */
z->sc_link.adapter_unit = unit;
z->sc_link.adapter_targ = z->scsi_addr;
@@ -570,7 +573,7 @@ void seaminphys (struct buf *bp)
/*
* Catch an interrupt from the adaptor.
*/
-void seaintr (int unit)
+static void seaintr (int unit)
{
adapter_t *z = &seadata[unit];
diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c
index b0ad5fc..8a6f603 100644
--- a/sys/i386/isa/sio.c
+++ b/sys/i386/isa/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.214 1998/08/23 10:16:26 bde Exp $
+ * $Id: sio.c,v 1.215 1998/09/13 22:15:44 eivind Exp $
*/
#include "opt_comconsole.h"
@@ -310,6 +310,7 @@ static int sioattach __P((struct isa_device *dev));
static timeout_t siobusycheck;
static timeout_t siodtrwakeup;
static void comhardclose __P((struct com_s *com));
+static ointhand2_t siointr;
static void siointr1 __P((struct com_s *com));
static int commctl __P((struct com_s *com, int bits, int how));
static int comparam __P((struct tty *tp, struct termios *t));
@@ -881,6 +882,7 @@ sioattach(isdp)
int s;
int unit;
+ isdp->id_ointr = siointr;
isdp->id_ri_flags |= RI_FAST;
iobase = isdp->id_iobase;
unit = isdp->id_unit;
@@ -1469,7 +1471,7 @@ siodtrwakeup(chan)
wakeup(&com->dtr_wait);
}
-void
+static void
siointr(unit)
int unit;
{
diff --git a/sys/i386/isa/snd/sound.c b/sys/i386/isa/snd/sound.c
index ef724cd..58b4b08 100644
--- a/sys/i386/isa/snd/sound.c
+++ b/sys/i386/isa/snd/sound.c
@@ -241,6 +241,8 @@ pcmattach(struct isa_device * dev)
dev_t isadev;
void *cookie;
+ dev->id_ointr = pcmintr;
+
if ( (dev->id_unit >= NPCM_MAX) || /* too many devs */
(snddev_last_probed == NULL) || /* last probe failed */
(snddev_last_probed->attach==NULL) ) /* no attach routine */
diff --git a/sys/i386/isa/snd/sound.h b/sys/i386/isa/snd/sound.h
index eea64c6..e6d1eb9 100644
--- a/sys/i386/isa/snd/sound.h
+++ b/sys/i386/isa/snd/sound.h
@@ -434,6 +434,8 @@ int pcmattach(struct isa_device * dev);
int midiattach(struct isa_device * dev);
int synthattach(struct isa_device * dev);
+ointhand2_t pcmintr;
+
/*
* DMA buffer calls
*/
diff --git a/sys/i386/isa/sound/sound_calls.h b/sys/i386/isa/sound/sound_calls.h
index 62d9548..cb00e30 100644
--- a/sys/i386/isa/sound/sound_calls.h
+++ b/sys/i386/isa/sound/sound_calls.h
@@ -99,6 +99,7 @@ int sb_dsp_detect (struct address_info *hw_config);
void sb_dsp_init (struct address_info *hw_config);
void sb_dsp_disable_midi(void);
int sb_dsp_command (u_char val);
+ointhand2_t sbintr;
int sb_reset_dsp (void);
/* From sb16_dsp.c */
@@ -140,6 +141,7 @@ int probe_adlib(struct address_info *hw_config);
/* From pas_card.c */
void attach_pas_card(struct address_info *hw_config);
int probe_pas(struct address_info *hw_config);
+ointhand2_t pasintr;
int pas_set_intr(int mask);
int pas_remove_intr(int mask);
u_char pas_read(int ioaddr);
@@ -160,7 +162,7 @@ void pas_midi_interrupt(void);
void attach_gus_card(struct address_info * hw_config);
int probe_gus(struct address_info *hw_config);
int gus_set_midi_irq(int num);
-/*void gusintr(int irq); */
+ointhand2_t gusintr;
void attach_gus_db16(struct address_info * hw_config);
int probe_gus_db16(struct address_info *hw_config);
@@ -186,6 +188,7 @@ void mpuintr(int irq);
/* From uart6850.c */
void attach_uart6850(struct address_info * hw_config);
+ointhand2_t m6850intr;
int probe_uart6850(struct address_info *hw_config);
/* From opl3.c */
@@ -209,6 +212,7 @@ void sound_timer_syncinterval(u_int new_usecs);
/* From ad1848.c */
void ad1848_init (char *name, int io_base, int irq, int dma_playback, int dma_capture, int share_dma, sound_os_info *osp);
+ointhand2_t adintr;
int ad1848_detect (int io_base, int *flags, sound_os_info *osp);
#define AD_F_CS4231 0x0001 /* Returned if a CS4232 (or compatible) detected */
@@ -233,6 +237,7 @@ int probe_sscape (struct address_info *hw_config);
void attach_sscape (struct address_info *hw_config);
int probe_ss_mss(struct address_info *hw_config);
void attach_ss_mss(struct address_info * hw_config);
+ointhand2_t sscapeintr;
int pss_read (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
int pss_write (int dev, struct fileinfo *file, snd_rw_buf *buf, int count);
diff --git a/sys/i386/isa/sound/soundcard.c b/sys/i386/isa/sound/soundcard.c
index 52428b4..43649c0 100644
--- a/sys/i386/isa/sound/soundcard.c
+++ b/sys/i386/isa/sound/soundcard.c
@@ -130,6 +130,8 @@ struct isa_driver sscape_mssdriver = {sndprobe, sndattach, "sscape_mss"};
short ipri_to_irq(u_short ipri);
+static ointhand2_t sndintr;
+
u_long
get_time(void)
{
@@ -396,8 +398,27 @@ sndattach(struct isa_device * dev)
static int midi_initialized = 0;
static int seq_initialized = 0;
struct address_info hw_config;
+ char *dname;
void *tmp;
-
+
+ /* XXX this is probably incomplete. */
+ dname = dev->id_driver->name;
+ if (strcmp(dname, "css") == 0 || strcmp(dname, "gusxvi") == 0 ||
+ strcmp(dname, "mss") == 0)
+ dev->id_ointr = adintr;
+ if (strcmp(dname, "gus") == 0)
+ dev->id_ointr = gusintr;
+ if (strcmp(dname, "pas") == 0)
+ dev->id_ointr = pasintr;
+ if (strcmp(dname, "sb") == 0)
+ dev->id_ointr = sbintr;
+ if (strcmp(dname, "sscape_mss") == 0)
+ dev->id_ointr = sndintr;
+ if (strcmp(dname, "sscape") == 0 || strcmp(dname, "trix") == 0)
+ dev->id_ointr = sscapeintr;
+ if (strcmp(dname, "uart0") == 0)
+ dev->id_ointr = m6850intr;
+
unit = driver_to_voxunit(dev->id_driver);
hw_config.io_base = dev->id_iobase;
hw_config.irq = ipri_to_irq(dev->id_irq);
@@ -576,7 +597,7 @@ snd_set_irq_handler(int int_lvl, void (*hndlr) (int), sound_os_info * osp)
return 1;
}
-void
+static void
sndintr(int unit)
{
if ( (unit >= MAX_UNIT) || (irq_proc[unit] == NULL) )
diff --git a/sys/i386/isa/spigot.c b/sys/i386/isa/spigot.c
index 50aebba..2f7c4ab 100644
--- a/sys/i386/isa/spigot.c
+++ b/sys/i386/isa/spigot.c
@@ -107,6 +107,8 @@ static struct cdevsw spigot_cdevsw =
spigot_ioctl, nostop, nullreset, nodevtotty,/* Spigot */
seltrue, spigot_mmap, NULL, "spigot", NULL, -1 };
+static ointhand2_t spigintr;
+
static int
spigot_probe(struct isa_device *devp)
{
@@ -133,6 +135,7 @@ spigot_attach(struct isa_device *devp)
int unit;
struct spigot_softc *ss= &spigot_softc[unit = devp->id_unit];
+ devp->id_ointr = spigintr;
ss->maddr = kvtop(devp->id_maddr);
ss->irq = devp->id_irq;
#ifdef DEVFS
@@ -246,7 +249,7 @@ struct spigot_info *info;
* Interrupt procedure.
* Just call a user level interrupt routine.
*/
-void
+static void
spigintr(int unit)
{
struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[unit];
diff --git a/sys/i386/isa/stallion.c b/sys/i386/isa/stallion.c
index f85ae2e..3fde903 100644
--- a/sys/i386/isa/stallion.c
+++ b/sys/i386/isa/stallion.c
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: stallion.c,v 1.21 1998/08/23 08:26:41 bde Exp $
+ * $Id: stallion.c,v 1.22 1998/08/23 09:57:09 bde Exp $
*/
/*****************************************************************************/
@@ -467,6 +467,7 @@ static int stl_brdinit(stlbrd_t *brdp);
static int stl_initeio(stlbrd_t *brdp);
static int stl_initech(stlbrd_t *brdp);
static int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp);
+static ointhand2_t stlintr;
static __inline void stl_txisr(stlpanel_t *panelp, int ioaddr);
static __inline void stl_rxisr(stlpanel_t *panelp, int ioaddr);
static __inline void stl_mdmisr(stlpanel_t *panelp, int ioaddr);
@@ -634,6 +635,8 @@ static int stlattach(struct isa_device *idp)
idp->id_unit, idp->id_iobase);
#endif
+ idp->id_ointr = stlintr;
+
brdp = (stlbrd_t *) malloc(sizeof(stlbrd_t), M_TTYS, M_NOWAIT);
if (brdp == (stlbrd_t *) NULL) {
printf("STALLION: failed to allocate memory (size=%d)\n",
@@ -1758,7 +1761,7 @@ static __inline void stl_mdmisr(stlpanel_t *panelp, int ioaddr)
* io register.
*/
-void stlintr(int unit)
+static void stlintr(int unit)
{
stlbrd_t *brdp;
stlpanel_t *panelp;
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c
index eba0d36..caf072a 100644
--- a/sys/i386/isa/syscons.c
+++ b/sys/i386/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.283 1998/10/01 11:39:18 yokota Exp $
+ * $Id: syscons.c,v 1.284 1998/10/01 21:04:52 ache Exp $
*/
#include "sc.h"
@@ -239,6 +239,7 @@ static const int nsccons = MAXCONS+2;
/* prototypes */
static int scattach(struct isa_device *dev);
+static ointhand2_t scintr;
static int scparam(struct tty *tp, struct termios *t);
static int scprobe(struct isa_device *dev);
static int scvidprobe(int unit, int flags);
@@ -645,6 +646,7 @@ scattach(struct isa_device *dev)
int vc;
#endif
+ dev->id_ointr = scintr;
scinit();
sc_flags = dev->id_flags;
if (!ISFONTAVAIL(adp_flags))
@@ -851,7 +853,7 @@ scwrite(dev_t dev, struct uio *uio, int flag)
return((*linesw[tp->t_line].l_write)(tp, uio, flag));
}
-void
+static void
scintr(int unit)
{
static struct tty *cur_tty;
diff --git a/sys/i386/isa/tw.c b/sys/i386/isa/tw.c
index 5c2a661..07d4023 100644
--- a/sys/i386/isa/tw.c
+++ b/sys/i386/isa/tw.c
@@ -274,6 +274,7 @@ static void twdelayn(int n);
static void twsetuptimes(int *a);
static int wait_for_zero(struct tw_sc *sc);
static int twputpkt(struct tw_sc *sc, u_char *p);
+static ointhand2_t twintr;
static int twgetbytes(struct tw_sc *sc, u_char *p, int cnt);
static timeout_t twabortrcv;
static int twsend(struct tw_sc *sc, int h, int k, int cnt);
@@ -391,6 +392,7 @@ static int twattach(idp)
struct tw_sc *sc;
int unit;
+ idp->id_ointr = twintr;
sc = &tw_sc[unit = idp->id_unit];
sc->sc_port = idp->id_iobase;
sc->sc_state = 0;
@@ -918,7 +920,7 @@ tw_is_within(int value, int expected, int tolerance)
* reconstruct the transmission without having to poll.
*/
-void twintr(unit)
+static void twintr(unit)
int unit;
{
struct tw_sc *sc = &tw_sc[unit];
diff --git a/sys/i386/isa/ultra14f.c b/sys/i386/isa/ultra14f.c
index 8d01bef..1687811 100644
--- a/sys/i386/isa/ultra14f.c
+++ b/sys/i386/isa/ultra14f.c
@@ -22,7 +22,7 @@
* today: Fri Jun 2 17:21:03 EST 1994
* added 24F support ++sg
*
- * $Id: ultra14f.c,v 1.60 1998/06/08 09:47:37 bde Exp $
+ * $Id: ultra14f.c,v 1.61 1998/06/21 15:49:39 bde Exp $
*/
#ifdef KERNEL /* don't laugh.. this compiles to a program too.. look */
@@ -271,6 +271,8 @@ static struct mscp *
uha_get_mscp __P((struct uha_data *uha, int flags));
static int uha_init __P((struct uha_data *uha));
static int uha24_init __P((struct uha_data *uha));
+static ointhand2_t
+ uhaintr;
static void uhaminphys __P((struct buf *bp));
static struct mscp *
uha_mscp_phys_kv __P((struct uha_data *uha, long mscp_phys));
@@ -520,6 +522,8 @@ uha_attach(dev)
struct uha_data *uha = uhadata[unit];
struct scsibus_data *scbus;
+ dev->id_ointr = uhaintr;
+
/*
* fill in the prototype scsi_link.
*/
@@ -561,7 +565,7 @@ uha_adapter_info(unit)
/*
* Catch an interrupt from the adaptor
*/
-void
+static void
uhaintr(unit)
int unit;
{
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c
index 6a5f730..5c17abf 100644
--- a/sys/i386/isa/wd.c
+++ b/sys/i386/isa/wd.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wd.c 7.2 (Berkeley) 5/9/91
- * $Id: wd.c,v 1.176 1998/09/15 08:15:30 gibbs Exp $
+ * $Id: wd.c,v 1.177 1998/10/13 08:24:39 dg Exp $
*/
/* TODO:
@@ -422,6 +422,8 @@ wdattach(struct isa_device *dvp)
struct disk *du;
struct wdparams *wp;
+ dvp->id_ointr = wdintr;
+
if (dvp->id_unit >= NWDC)
return (0);
diff --git a/sys/i386/isa/wd7000.c b/sys/i386/isa/wd7000.c
index 5722aee..3da995f 100644
--- a/sys/i386/isa/wd7000.c
+++ b/sys/i386/isa/wd7000.c
@@ -210,6 +210,7 @@ static void wds_minphys(struct buf *);
static struct wds_req *wdsr_alloc(int);
static int32_t wds_scsi_cmd(struct scsi_xfer *);
static u_int32_t wds_adapter_info(int);
+static ointhand2_t wdsintr;
static int wds_done(int, struct wds_cmd *, u_char);
static int wdsattach(struct isa_device *);
static int wds_init(struct isa_device *);
@@ -420,7 +421,7 @@ wds_adapter_info(int unit)
return 1;
}
-void
+static void
wdsintr(int unit)
{
struct wds_cmd *pc, *vc;
@@ -589,6 +590,7 @@ wdsattach(struct isa_device *dev)
int unit = dev->id_unit;
struct scsibus_data *scbus;
+ dev->id_ointr = wdsintr;
masunit = dev->id_unit;
if( !(versprobe & (1<<masunit)))
diff --git a/sys/i386/isa/wdreg.h b/sys/i386/isa/wdreg.h
index f8520bf..31b4027 100644
--- a/sys/i386/isa/wdreg.h
+++ b/sys/i386/isa/wdreg.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)wdreg.h 7.1 (Berkeley) 5/9/91
- * $Id: wdreg.h,v 1.21 1998/01/14 08:08:42 kato Exp $
+ * $Id: wdreg.h,v 1.22 1998/04/08 20:04:39 sos Exp $
*/
/*
@@ -312,4 +312,6 @@ struct wddma {
extern struct wddma wddma[];
+void wdintr __P((int unit));
+
#endif /* KERNEL */
diff --git a/sys/i386/isa/wt.c b/sys/i386/isa/wt.c
index 481397e..36fb934 100644
--- a/sys/i386/isa/wt.c
+++ b/sys/i386/isa/wt.c
@@ -20,7 +20,7 @@
* the original CMU copyright notice.
*
* Version 1.3, Thu Nov 11 12:09:13 MSK 1993
- * $Id: wt.c,v 1.44 1998/06/07 17:11:07 dfr Exp $
+ * $Id: wt.c,v 1.45 1998/07/04 22:30:19 julian Exp $
*
*/
@@ -178,6 +178,7 @@ static void wtclock (wtinfo_t *t);
static int wtreset (wtinfo_t *t);
static int wtsense (wtinfo_t *t, int verb, int ignor);
static int wtstatus (wtinfo_t *t);
+static ointhand2_t wtintr;
static void wtrewind (wtinfo_t *t);
static int wtreadfm (wtinfo_t *t);
static int wtwritefm (wtinfo_t *t);
@@ -256,6 +257,7 @@ wtattach (struct isa_device *id)
{
wtinfo_t *t = wttab + id->id_unit;
+ id->id_ointr = wtintr;
if (t->type == ARCHIVE) {
printf ("wt%d: type <Archive>\n", t->unit);
outb (t->RDMAPORT, 0); /* reset dma */
@@ -603,7 +605,7 @@ xit: biodone (bp);
/*
* Interrupt routine.
*/
-void
+static void
wtintr (int u)
{
wtinfo_t *t = wttab + u;
OpenPOWER on IntegriCloud