Index: kernel/generic/include/console/chardev.h
===================================================================
--- kernel/generic/include/console/chardev.h	(revision b366a6f4b86cb7fe82fcf415965c5a7de1a59638)
+++ kernel/generic/include/console/chardev.h	(revision 58775d300aa95ded242da9557f2f452dc913e8f5)
@@ -43,10 +43,19 @@
 #define INDEV_BUFLEN  512
 
+/** Input character device out-of-band signal type. */
+typedef enum {
+	INDEV_SIGNAL_SCROLL_UP = 0,
+	INDEV_SIGNAL_SCROLL_DOWN
+} indev_signal_t;
+
 struct indev;
 
-/* Input character device operations interface. */
+/** Input character device operations interface. */
 typedef struct {
 	/** Read character directly from device, assume interrupts disabled. */
 	wchar_t (* poll)(struct indev *);
+	
+	/** Signal out-of-band condition. */
+	void (* signal)(struct indev *, indev_signal_t);
 } indev_operations_t;
 
@@ -67,8 +76,7 @@
 } indev_t;
 
-
 struct outdev;
 
-/* Output character device operations interface. */
+/** Output character device operations interface. */
 typedef struct {
 	/** Write character to output. */
@@ -77,4 +85,10 @@
 	/** Redraw any previously cached characters. */
 	void (* redraw)(struct outdev *);
+	
+	/** Scroll up in the device cache. */
+	void (* scroll_up)(struct outdev *);
+	
+	/** Scroll down in the device cache. */
+	void (* scroll_down)(struct outdev *);
 } outdev_operations_t;
 
@@ -99,4 +113,5 @@
 extern void indev_push_character(indev_t *, wchar_t);
 extern wchar_t indev_pop_character(indev_t *);
+extern void indev_signal(indev_t *, indev_signal_t);
 
 extern void outdev_initialize(const char *, outdev_t *,
