Index: generic/include/console/chardev.h
===================================================================
--- generic/include/console/chardev.h	(revision 26777587cc06315d26b419e506af97ae2163613a)
+++ generic/include/console/chardev.h	(revision 914913505848dfc79d3580738e7a94b7f8ce9787)
@@ -35,7 +35,13 @@
 #include <synch/spinlock.h>
 
-#define CHARDEV_BUFLEN 10
+#define CHARDEV_BUFLEN 512
 
-typedef void (* ready_func_t)(void);
+/* Character device operations interface. */
+struct chardev_operations {
+	void (* suspend)(void);		/**< Suspend pushing characters. */
+	void (* resume)(void);		/**< Resume pushing characters. */
+};
+
+typedef struct chardev_operations chardev_operations_t;
 
 /** Character input device. */
@@ -46,8 +52,9 @@
 	count_t counter;
 	index_t index;
-	ready_func_t ready_func;	/**< Function to re-enable input from the device. */
+	chardev_operations_t *op;	/**< Implementation of chardev operations. */
 };
 
-extern void chardev_initialize(chardev_t *chardev, ready_func_t r);
+extern void chardev_initialize(chardev_t *chardev, chardev_operations_t *op);
+void chardev_push_character(chardev_t *chardev, __u8 ch);
 
 #endif /* __CHARDEV_H__ */
