Index: generic/src/console/chardev.c
===================================================================
--- generic/src/console/chardev.c	(revision 2d93f1f9242c39f6e8a125f6fc3f2297727f4f04)
+++ generic/src/console/chardev.c	(revision aace66246817c8294c86afeed5614d6d999892dd)
@@ -37,6 +37,9 @@
  * @param op Implementation of character device operations.
  */
-void chardev_initialize(chardev_t *chardev, chardev_operations_t *op)
+void chardev_initialize(char *name,chardev_t *chardev, 
+			chardev_operations_t *op)
 {
+	chardev->name = name;
+
 	waitq_initialize(&chardev->wq);
 	spinlock_initialize(&chardev->lock, "chardev");
@@ -57,5 +60,5 @@
 	if (chardev->counter == CHARDEV_BUFLEN - 1) {
 		/* buffer full => disable device interrupt */
-		chardev->op->suspend();
+		chardev->op->suspend(chardev);
 	}
 
Index: generic/src/console/console.c
===================================================================
--- generic/src/console/console.c	(revision 2d93f1f9242c39f6e8a125f6fc3f2297727f4f04)
+++ generic/src/console/console.c	(revision aace66246817c8294c86afeed5614d6d999892dd)
@@ -38,4 +38,5 @@
 /** Standard input character device. */
 chardev_t *stdin = NULL;
+chardev_t *stdout = NULL;
 
 /** Get string from character device.
@@ -85,6 +86,11 @@
 	interrupts_restore(ipl);
 
-	chardev->op->resume();
+	chardev->op->resume(chardev);
 
 	return ch;
 }
+
+void putchar(char c)
+{
+	stdout->op->write(stdout, c);
+}
