This patch removes most of the #ifdefs in libc/console.c, and
replaces it with two queues (input, output) where drivers (serial,
keyboard, video, usb) can attach.

The only things left with #ifdefs are initialization (at some point
the drivers must get a chance to register)


Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3679 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
diff --git a/payloads/libpayload/drivers/keyboard.c b/payloads/libpayload/drivers/keyboard.c
index 9582746..0d8f72b 100644
--- a/payloads/libpayload/drivers/keyboard.c
+++ b/payloads/libpayload/drivers/keyboard.c
@@ -326,6 +326,11 @@
 	return 0;
 }
 
+static struct console_input_driver cons = {
+	.havekey = keyboard_havechar,
+	.getchar = keyboard_getchar
+};
+
 void keyboard_init(void)
 {
 	u8 mode;
@@ -350,5 +355,7 @@
 
 	/* Write the new mode */
 	keyboard_set_mode(mode);
+
+	console_add_input_driver(&cons);
 }