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
This commit is contained in:
@@ -111,6 +111,11 @@ void video_console_putc(u8 row, u8 col, unsigned int ch)
|
||||
|
||||
void video_console_putchar(unsigned int ch)
|
||||
{
|
||||
/* replace black-on-black with light-gray-on-black.
|
||||
do it here, instead of in libc/console.c */
|
||||
if ((ch & 0xFF00) == 0) {
|
||||
ch |= 0x0700;
|
||||
}
|
||||
switch(ch & 0xFF) {
|
||||
case '\r':
|
||||
cursorx = 0;
|
||||
@@ -165,6 +170,10 @@ void video_console_set_cursor(unsigned int x, unsigned int y)
|
||||
video_console_fixup_cursor();
|
||||
}
|
||||
|
||||
static struct console_output_driver cons = {
|
||||
.putchar = video_console_putchar
|
||||
};
|
||||
|
||||
int video_console_init(void)
|
||||
{
|
||||
int i;
|
||||
@@ -187,6 +196,8 @@ int video_console_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
console_add_output_driver(&cons);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user