Index: kernel/genarch/include/kbrd/kbrd.h
===================================================================
--- kernel/genarch/include/kbrd/kbrd.h	(revision c8bf88d737f715dd3bf256ec6f8bf31e0d3be7e1)
+++ kernel/genarch/include/kbrd/kbrd.h	(revision d797054cdc54aa797b379a8dad9eefeafc99acf6)
@@ -38,6 +38,20 @@
 
 #include <console/chardev.h>
+#include <proc/thread.h>
+#include <synch/spinlock.h>
 
-extern void kbrd_init(indev_t *devin);
+typedef struct {
+	thread_t *thread;
+	
+	indev_t *sink;
+	indev_t raw;
+	
+	SPINLOCK_DECLARE(keylock);        /**< keylock protects keyflags and lockflags. */
+	volatile unsigned int keyflags;   /**< Tracking of multiple keypresses. */
+	volatile unsigned int lockflags;  /**< Tracking of multiple keys lockings. */
+} kbrd_instance_t;
+
+extern kbrd_instance_t *kbrd_init(void);
+extern indev_t *kbrd_wire(kbrd_instance_t *, indev_t *);
 
 #endif
