--- p4_head/sys/pc98/cbus/clock.c Sun Jan 21 15:20:29 2007 +++ p4_head_intr/sys/pc98/cbus/clock.c Fri Jan 26 13:54:09 2007 @@ -139,7 +139,7 @@ 0 /* quality */ }; -static void +static int clkintr(struct trapframe *frame) { @@ -156,6 +156,7 @@ } KASSERT(!using_lapic_timer, ("clk interrupt enabled with lapic timer")); hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + return (FILTER_HANDLED); } int @@ -703,8 +704,8 @@ * 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 = --- p4_head/sys/pc98/cbus/fdc.c Sun Jan 21 15:20:29 2007 +++ p4_head_intr/sys/pc98/cbus/fdc.c Fri Jan 26 13:54:09 2007 @@ -822,7 +822,7 @@ 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"); --- p4_head/sys/pc98/cbus/pckbd.c Sun Jan 21 15:20:30 2007 +++ p4_head_intr/sys/pc98/cbus/pckbd.c Fri Jan 26 13:54:09 2007 @@ -137,7 +137,7 @@ 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; } --- p4_head/sys/pc98/cbus/sio.c Sun Jan 21 15:20:30 2007 +++ p4_head_intr/sys/pc98/cbus/sio.c Fri Jan 26 13:54:09 2007 @@ -350,7 +350,7 @@ 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 @@ 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 @@ #endif } -static void +static int siointr(arg) void *arg; { @@ -2221,6 +2222,7 @@ } while (possibly_more_intrs); mtx_unlock_spin(&sio_lock); #endif /* COM_MULTIPORT */ + return (FILTER_HANDLED); } static struct timespec siots[8];