demo: make the GUI preemptive-safe.
[bertos.git] / bertos / drv / kbd.c
index d592f069df8731a3739d721fdaccc382ea86eb98..3334deb216f280df623f8c48aef2fc8790ad904b 100644 (file)
@@ -27,7 +27,7 @@
  * the GNU General Public License.
  *
  * Copyright 2003, 2004, 2005 Develer S.r.l. (http://www.develer.com/)
- * Copyright 1999, 2003 Bernardo Innocenti
+ * Copyright 1999, 2003 Bernie Innocenti
  *
  * -->
  *
@@ -35,7 +35,7 @@
  *
  * \version $Id$
  *
- * \author Bernardo Innocenti <bernie@develer.com>
+ * \author Bernie Innocenti <bernie@codewiz.org>
  * \author Stefano Fedrigo <aleph@develer.com>
  * \author Francesco Sacchi <batt@develer.com>
  *
@@ -154,7 +154,7 @@ static void kbd_softint(UNUSED_ARG(iptr_t, arg))
        timer_add(&kbd_timer);
 }
 
-#else 
+#else
        #error "Define keyboard poll method"
 
 #endif /* CONFIG_KBD_POLL */
@@ -177,10 +177,9 @@ keymask_t kbd_peek(void)
 {
        keymask_t key = 0;
 
-// FIXME: make it optional
-       /* Let other tasks run for a while */
-       extern void schedule(void);
-       schedule();
+#if CONFIG_KBD_SCHED
+       timer_delay(1);
+#endif
 
        /* Extract an event from the keyboard buffer */
        IRQ_DISABLE;
@@ -236,7 +235,7 @@ void kbd_addHandler(struct KbdHandler *handler)
        KbdHandler *node;
        List *list;
 
-       cpuflags_t flags;
+       cpu_flags_t flags;
        IRQ_SAVE_DISABLE(flags);
 
        /* Choose between raw and coocked handlers list */
@@ -473,7 +472,7 @@ void kbd_init(void)
        MOD_CHECK(timer);
 
        /* Add kbd handler to soft timers list */
-       event_initSoftInt(&kbd_timer.expire, kbd_softint, NULL);
+       event_initSoftint(&kbd_timer.expire, kbd_softint, NULL);
        timer_setDelay(&kbd_timer, ms_to_ticks(KBD_CHECK_INTERVAL));
        timer_add(&kbd_timer);