From 8a526a6847c6f243029bab971abe3d75c659122e Mon Sep 17 00:00:00 2001 From: Liu Aleaxander Date: Wed, 13 Oct 2010 10:27:11 +0800 Subject: [PATCH] kbd: use a better get_key method And this method will record what all the user pressed Signed-off-by: Liu Aleaxander --- kernel/kb.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kernel/kb.c b/kernel/kb.c index 9fcbcf3..8f9b304 100644 --- a/kernel/kb.c +++ b/kernel/kb.c @@ -225,6 +225,9 @@ static void pln(void) static int key_left = 0; +#define RECORD_ALL 0 + +#if RECORD_ALL == 0 static void do_get_key(void) { ri = wi; @@ -247,6 +250,19 @@ unsigned char get_key(void) do_get_key(); } } +#else +unsigned char get_key(void) +{ + unsigned char key; + + while (ri >= wi) + ; /* Wait for press */ + key = kbd_ring_buffer[ri]; + ri = (ri + 1) % KBD_BUF_SIZE; + + return key; +} +#endif static void unp(void) -- 2.11.4.GIT