From 6a2ffa86e5b748ba71e36d37462a936eb9101be7 Mon Sep 17 00:00:00 2001 From: piso Date: Fri, 23 Feb 2007 12:19:07 +0000 Subject: 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@ --- sys/pc98/cbus/clock.c | 7 ++++--- sys/pc98/cbus/fdc.c | 2 +- sys/pc98/cbus/pckbd.c | 2 +- sys/pc98/cbus/pcrtc.c | 7 ++++--- sys/pc98/cbus/sio.c | 12 +++++++----- 5 files changed, 17 insertions(+), 13 deletions(-) (limited to 'sys/pc98/cbus') diff --git a/sys/pc98/cbus/clock.c b/sys/pc98/cbus/clock.c index 1570572..0ebd31a 100644 --- a/sys/pc98/cbus/clock.c +++ b/sys/pc98/cbus/clock.c @@ -139,7 +139,7 @@ static struct timecounter i8254_timecounter = { 0 /* quality */ }; -static void +static int clkintr(struct trapframe *frame) { @@ -156,6 +156,7 @@ clkintr(struct trapframe *frame) } KASSERT(!using_lapic_timer, ("clk interrupt enabled with lapic timer")); hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + return (FILTER_HANDLED); } int @@ -700,8 +701,8 @@ cpu_initclocks() * timecounter to user a simpler algorithm. */ if (!using_lapic_timer) { - intr_add_handler("clk", 0, (driver_intr_t *)clkintr, NULL, - INTR_TYPE_CLK | INTR_FAST, NULL); + intr_add_handler("clk", 0, (driver_filter_t *)clkintr, NULL, + NULL, INTR_TYPE_CLK | INTR_FAST, NULL); i8254_intsrc = intr_lookup_source(0); if (i8254_intsrc != NULL) i8254_pending = diff --git a/sys/pc98/cbus/fdc.c b/sys/pc98/cbus/fdc.c index b653a52..980622e 100644 --- a/sys/pc98/cbus/fdc.c +++ b/sys/pc98/cbus/fdc.c @@ -822,7 +822,7 @@ fdc_attach(device_t dev) fdc = device_get_softc(dev); fdc->fdc_dev = dev; error = bus_setup_intr(dev, fdc->res_irq, - INTR_TYPE_BIO | INTR_ENTROPY, fdc_intr, fdc, + INTR_TYPE_BIO | INTR_ENTROPY, NULL, fdc_intr, fdc, &fdc->fdc_intr); if (error) { device_printf(dev, "cannot setup interrupt\n"); diff --git a/sys/pc98/cbus/pckbd.c b/sys/pc98/cbus/pckbd.c index b22ced3..0b3d1d7 100644 --- a/sys/pc98/cbus/pckbd.c +++ b/sys/pc98/cbus/pckbd.c @@ -137,7 +137,7 @@ pckbdattach(device_t dev) res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (res == NULL) return ENXIO; - bus_setup_intr(dev, res, INTR_TYPE_TTY, pckbd_isa_intr, kbd, &ih); + bus_setup_intr(dev, res, INTR_TYPE_TTY, NULL, pckbd_isa_intr, kbd, &ih); return 0; } diff --git a/sys/pc98/cbus/pcrtc.c b/sys/pc98/cbus/pcrtc.c index 1570572..0ebd31a 100644 --- a/sys/pc98/cbus/pcrtc.c +++ b/sys/pc98/cbus/pcrtc.c @@ -139,7 +139,7 @@ static struct timecounter i8254_timecounter = { 0 /* quality */ }; -static void +static int clkintr(struct trapframe *frame) { @@ -156,6 +156,7 @@ clkintr(struct trapframe *frame) } KASSERT(!using_lapic_timer, ("clk interrupt enabled with lapic timer")); hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + return (FILTER_HANDLED); } int @@ -700,8 +701,8 @@ cpu_initclocks() * timecounter to user a simpler algorithm. */ if (!using_lapic_timer) { - intr_add_handler("clk", 0, (driver_intr_t *)clkintr, NULL, - INTR_TYPE_CLK | INTR_FAST, NULL); + intr_add_handler("clk", 0, (driver_filter_t *)clkintr, NULL, + NULL, INTR_TYPE_CLK | INTR_FAST, NULL); i8254_intsrc = intr_lookup_source(0); if (i8254_intsrc != NULL) i8254_pending = diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c index d2b78da..fcab170 100644 --- a/sys/pc98/cbus/sio.c +++ b/sys/pc98/cbus/sio.c @@ -350,7 +350,7 @@ static void comclose(struct tty *tp); static int comopen(struct tty *tp, struct cdev *dev); static void sioinput(struct com_s *com); static void siointr1(struct com_s *com); -static void siointr(void *arg); +static int siointr(void *arg); static int commodem(struct tty *tp, int sigon, int sigoff); static int comparam(struct tty *tp, struct termios *t); static void siopoll(void *); @@ -1739,12 +1739,13 @@ determined_type: ; com->irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (com->irqres) { ret = bus_setup_intr(dev, com->irqres, - INTR_TYPE_TTY | INTR_FAST, - siointr, com, &com->cookie); + INTR_TYPE_TTY, + siointr, NULL, com, &com->cookie); if (ret) { ret = bus_setup_intr(dev, com->irqres, INTR_TYPE_TTY, - siointr, com, &com->cookie); + NULL, (driver_intr_t *)siointr, + com, &com->cookie); if (ret == 0) device_printf(dev, "unable to activate interrupt in fast mode - using normal mode\n"); } @@ -2155,7 +2156,7 @@ sioinput(com) #endif } -static void +static int siointr(arg) void *arg; { @@ -2221,6 +2222,7 @@ siointr(arg) } while (possibly_more_intrs); mtx_unlock_spin(&sio_lock); #endif /* COM_MULTIPORT */ + return (FILTER_HANDLED); } static struct timespec siots[8]; -- cgit v1.1