diff options
author | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
---|---|---|
committer | piso <piso@FreeBSD.org> | 2007-02-23 12:19:07 +0000 |
commit | 6a2ffa86e5b748ba71e36d37462a936eb9101be7 (patch) | |
tree | 10833d4edb6c0d0a5efcf7762d842a4c378404b0 /sys/dev/aac | |
parent | 7b48c9d78377cdb9fc6e8bcc5406e28819aef6e3 (diff) | |
download | FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.zip FreeBSD-src-6a2ffa86e5b748ba71e36d37462a936eb9101be7.tar.gz |
o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many
Approved by: re@
Diffstat (limited to 'sys/dev/aac')
-rw-r--r-- | sys/dev/aac/aac.c | 12 | ||||
-rw-r--r-- | sys/dev/aac/aacvar.h | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/sys/dev/aac/aac.c b/sys/dev/aac/aac.c index 3b6ad54..078f809 100644 --- a/sys/dev/aac/aac.c +++ b/sys/dev/aac/aac.c @@ -305,20 +305,21 @@ aac_attach(struct aac_softc *sc) } if (sc->flags & AAC_FLAGS_NEW_COMM) { if (bus_setup_intr(sc->aac_dev, sc->aac_irq, - INTR_MPSAFE|INTR_TYPE_BIO, aac_new_intr, - sc, &sc->aac_intr)) { + INTR_MPSAFE|INTR_TYPE_BIO, NULL, + aac_new_intr, sc, &sc->aac_intr)) { device_printf(sc->aac_dev, "can't set up interrupt\n"); return (EINVAL); } } else { if (bus_setup_intr(sc->aac_dev, sc->aac_irq, - INTR_FAST|INTR_TYPE_BIO, aac_fast_intr, + INTR_TYPE_BIO, aac_fast_intr, NULL, sc, &sc->aac_intr)) { device_printf(sc->aac_dev, "can't set up FAST interrupt\n"); if (bus_setup_intr(sc->aac_dev, sc->aac_irq, INTR_MPSAFE|INTR_TYPE_BIO, - aac_fast_intr, sc, &sc->aac_intr)) { + NULL, (driver_intr_t *)aac_fast_intr, + sc, &sc->aac_intr)) { device_printf(sc->aac_dev, "can't set up MPSAFE interrupt\n"); return (EINVAL); @@ -780,7 +781,7 @@ aac_new_intr(void *arg) mtx_unlock(&sc->aac_io_lock); } -void +int aac_fast_intr(void *arg) { struct aac_softc *sc; @@ -822,6 +823,7 @@ aac_fast_intr(void *arg) */ wakeup(sc->aifthread); } + return (FILTER_HANDLED); } /* diff --git a/sys/dev/aac/aacvar.h b/sys/dev/aac/aacvar.h index a5ae32b..de3425b 100644 --- a/sys/dev/aac/aacvar.h +++ b/sys/dev/aac/aacvar.h @@ -425,7 +425,7 @@ extern int aac_shutdown(device_t dev); extern int aac_suspend(device_t dev); extern int aac_resume(device_t dev); extern void aac_new_intr(void *arg); -extern void aac_fast_intr(void *arg); +extern int aac_fast_intr(void *arg); extern void aac_submit_bio(struct bio *bp); extern void aac_biodone(struct bio *bp); extern void aac_startio(struct aac_softc *sc); |