Pass all required toolchain parts to SeaBIOS correctly
[coreboot.git] / payloads / libpayload / drivers / keyboard.c
index 95827463ca2b3827fd0ac47c265413857a4175b7..2b2ac2685db259bd735ac9a5a2d3c23d659e92cb 100644 (file)
@@ -27,8 +27,8 @@
  * SUCH DAMAGE.
  */
 
+#include <libpayload-config.h>
 #include <libpayload.h>
-#include <config.h>
 #include <curses.h>
 
 #define I8042_CMD_READ_MODE  0x20
 
 #define I8042_MODE_XLATE     0x40
 
-static void (*reset_handler)(void) = NULL;
-
 struct layout_maps {
        char *country;
        unsigned short map[4][0x57];
 };
 
-struct layout_maps *map;
+static struct layout_maps *map;
 
-struct layout_maps keyboard_layouts[] = {
+static struct layout_maps keyboard_layouts[] = {
 #ifdef CONFIG_PC_KEYBOARD_LAYOUT_US
 { .country = "us", .map = {
        { /* No modifier */
@@ -297,7 +295,7 @@ static void keyboard_set_mode(unsigned char mode)
 
 /**
  * Set keyboard layout
- * @param country string describing the keyboard layout language. 
+ * @param country string describing the keyboard layout language.
  * Valid values are "us", "de".
  */
 
@@ -319,12 +317,10 @@ int keyboard_set_layout(char *country)
        return -1;
 }
 
-int keyboard_add_reset_handler(void (*new_handler)(void))
-{
-       reset_handler = new_handler;
-
-       return 0;
-}
+static struct console_input_driver cons = {
+       .havekey = keyboard_havechar,
+       .getchar = keyboard_getchar
+};
 
 void keyboard_init(void)
 {
@@ -350,5 +346,7 @@ void keyboard_init(void)
 
        /* Write the new mode */
        keyboard_set_mode(mode);
+
+       console_add_input_driver(&cons);
 }