Module Name: src Committed By: tsutsui Date: Fri Jul 3 14:00:41 UTC 2009
Modified Files: src/sys/arch/atari/dev: kbd.c kbdvar.h Log Message: Replace one traditional MD si_callback() with MI softint(9). To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/atari/dev/kbd.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/atari/dev/kbdvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/atari/dev/kbd.c diff -u src/sys/arch/atari/dev/kbd.c:1.38 src/sys/arch/atari/dev/kbd.c:1.39 --- src/sys/arch/atari/dev/kbd.c:1.38 Fri Jul 3 13:49:39 2009 +++ src/sys/arch/atari/dev/kbd.c Fri Jul 3 14:00:41 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kbd.c,v 1.38 2009/07/03 13:49:39 tsutsui Exp $ */ +/* $NetBSD: kbd.c,v 1.39 2009/07/03 14:00:41 tsutsui Exp $ */ /* * Copyright (c) 1995 Leo Weppelman @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kbd.c,v 1.38 2009/07/03 13:49:39 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kbd.c,v 1.39 2009/07/03 14:00:41 tsutsui Exp $"); #include "mouse.h" #include "ite.h" @@ -102,7 +102,6 @@ static uint8_t kbd_ring[KBD_RING_SIZE]; static volatile u_int kbd_rbput = 0; /* 'put' index */ static u_int kbd_rbget = 0; /* 'get' index */ -static uint8_t kbd_soft = 0; /* 1: Softint has been scheduled*/ static struct kbd_softc kbd_softc; @@ -117,7 +116,7 @@ /* Interrupt handler */ void kbdintr(int); -static void kbdsoft(void *, void *); +static void kbdsoft(void *); static void kbdattach(struct device *, struct device *, void *); static int kbdmatch(struct device *, struct cfdata *, void *); #if NITE>0 @@ -220,6 +219,8 @@ printf("\n"); + kbd_softc.k_sicookie = softint_establish(SOFTINT_SERIAL, kbdsoft, NULL); + #if NWSKBD>0 if (dp != NULL) { /* @@ -413,22 +414,15 @@ /* * Activate software-level to handle possible input. */ - if (got_char) { - if (!BASEPRI(sr)) { - if (!kbd_soft++) - add_sicallback(kbdsoft, 0, 0); - } else { - spl1(); - kbdsoft(NULL, NULL); - } - } + if (got_char) + softint_schedule(kbd_softc.k_sicookie); } /* * Keyboard soft interrupt handler */ -void -kbdsoft(void *junk1, void *junk2) +static void +kbdsoft(void *junk1) { int s; uint8_t code; @@ -436,7 +430,6 @@ struct firm_event *fe; int put, get, n; - kbd_soft = 0; get = kbd_rbget; for (;;) { Index: src/sys/arch/atari/dev/kbdvar.h diff -u src/sys/arch/atari/dev/kbdvar.h:1.7 src/sys/arch/atari/dev/kbdvar.h:1.8 --- src/sys/arch/atari/dev/kbdvar.h:1.7 Fri Jul 3 13:49:39 2009 +++ src/sys/arch/atari/dev/kbdvar.h Fri Jul 3 14:00:41 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: kbdvar.h,v 1.7 2009/07/03 13:49:39 tsutsui Exp $ */ +/* $NetBSD: kbdvar.h,v 1.8 2009/07/03 14:00:41 tsutsui Exp $ */ /* * Copyright (c) 1996 Leo Weppelman. @@ -55,6 +55,7 @@ struct device *k_wskbddev; /* pointer to wskbd for sending strokes */ int k_pollingmode; /* polling mode on? whatever it isss... */ #endif + void *k_sicookie; /* softint(9) cookie */ }; /*