diff options
author | gibbs <gibbs@FreeBSD.org> | 1997-09-21 21:35:24 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1997-09-21 21:35:24 +0000 |
commit | 51fbeeacb49c374db82570f339949c62d1198558 (patch) | |
tree | 8338fb3c4dad4e9a1bde40a5249f7a7f410d64ba /sys/dev/vx | |
parent | 00881143430fb92b08e80ea8c74e6b8f07b840a4 (diff) | |
download | FreeBSD-src-51fbeeacb49c374db82570f339949c62d1198558.zip FreeBSD-src-51fbeeacb49c374db82570f339949c62d1198558.tar.gz |
Add shared EISA interrupt support.
Clean up the match routines so that they return const char *
Diffstat (limited to 'sys/dev/vx')
-rw-r--r-- | sys/dev/vx/if_vx_eisa.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/vx/if_vx_eisa.c b/sys/dev/vx/if_vx_eisa.c index 73735f5..924cf81 100644 --- a/sys/dev/vx/if_vx_eisa.c +++ b/sys/dev/vx/if_vx_eisa.c @@ -66,7 +66,7 @@ #define VX_RESOURCE_CONFIG 0x0008 -static char *vx_match __P((eisa_id_t type)); +static const char *vx_match __P((eisa_id_t type)); static int vx_eisa_probe __P((void)); static int vx_eisa_attach __P((struct eisa_device *)); @@ -80,7 +80,7 @@ struct eisa_driver vx_eisa_driver = { DATA_SET(eisadriver_set, vx_eisa_driver); -static char* +static const char* vx_match(type) eisa_id_t type; { @@ -134,11 +134,16 @@ vx_eisa_attach(e_dev) { struct vx_softc *sc; int unit = e_dev->unit; - int irq = ffs(e_dev->ioconf.irq) - 1; + int irq; resvaddr_t *ioport; resvaddr_t *eisa_ioport; u_char level_intr; + if (TAILQ_FIRST(&e_dev->ioconf.irqs) == NULL) + return (-1); + + irq = TAILQ_FIRST(&e_dev->ioconf.irqs)->irq_no; + ioport = e_dev->ioconf.ioaddrs.lh_first; if (!ioport) |