Index: arch/ia32/src/drivers/ega.c
===================================================================
--- arch/ia32/src/drivers/ega.c	(revision 9d5e23cc7bc9f1f8f9799b82cd567c045c657dd3)
+++ arch/ia32/src/drivers/ega.c	(revision 973be64e8e922f2fbbbb92f7f7cddc8125f9e36b)
@@ -35,4 +35,6 @@
 #include <arch/asm.h>
 #include <memstr.h>
+#include <console/chardev.h>
+#include <console/console.h>
 
 /*
@@ -43,4 +45,11 @@
 static spinlock_t egalock;
 static __u32 ega_cursor;
+
+static void ega_putchar(chardev_t *d, const char ch);
+
+chardev_t ega_console;
+static chardev_operations_t ega_ops = {
+	.write = ega_putchar
+};
 
 void ega_move_cursor(void);
@@ -56,5 +65,9 @@
 	lo = inb(0x3d5);
 	ega_cursor = (hi<<8)|lo;
-	ega_putchar('\n');
+
+	chardev_initialize("ega_out", &ega_console, &ega_ops);
+	stdout = &ega_console;
+
+	putchar('\n');
 }
 
@@ -79,5 +92,5 @@
 }
 
-void ega_putchar(const char ch)
+void ega_putchar(chardev_t *d, const char ch)
 {
 	ipl_t ipl;
@@ -112,7 +125,2 @@
 	outb(0x3d5,ega_cursor&0xff);	
 }
-
-void putchar(const char ch)
-{
-	ega_putchar(ch);
-}
Index: arch/ia32/src/drivers/i8042.c
===================================================================
--- arch/ia32/src/drivers/i8042.c	(revision 9d5e23cc7bc9f1f8f9799b82cd567c045c657dd3)
+++ arch/ia32/src/drivers/i8042.c	(revision 973be64e8e922f2fbbbb92f7f7cddc8125f9e36b)
@@ -67,6 +67,6 @@
 static volatile int lockflags;		/**< Tracking of multiple keys lockings. */
 
-static void i8042_suspend(void);
-static void i8042_resume(void);
+static void i8042_suspend(chardev_t *);
+static void i8042_resume(chardev_t *);
 
 static chardev_t kbrd;
@@ -242,5 +242,5 @@
 	trap_virtual_enable_irqs(1<<IRQ_KBD);
 	spinlock_initialize(&keylock, "i8042_lock");
-	chardev_initialize(&kbrd, &ops);
+	chardev_initialize("i8042_kbd", &kbrd, &ops);
 	stdin = &kbrd;
 }
@@ -323,10 +323,10 @@
 
 /* Called from getc(). */
-void i8042_resume(void)
+void i8042_resume(chardev_t *d)
 {
 }
 
 /* Called from getc(). */
-void i8042_suspend(void)
-{
-}
+void i8042_suspend(chardev_t *d)
+{
+}
