Index: kernel/arch/arm32/include/machine.h
===================================================================
--- kernel/arch/arm32/include/machine.h	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/arm32/include/machine.h	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -103,16 +103,15 @@
 
 
-#ifdef MACHINE_GXEMUL_TESTARM 	
-#define machine_console_init(devno)           gxemul_console_init(devno)
-#define machine_grab_console                  gxemul_grab_console
-#define machine_release_console               gxemul_release_console 
-#define machine_hw_map_init                   gxemul_hw_map_init
-#define machine_timer_irq_start               gxemul_timer_irq_start
-#define machine_cpu_halt                      gxemul_cpu_halt
-#define machine_get_memory_size               gxemul_get_memory_size
-#define machine_debug_putc(ch)                gxemul_debug_putc(ch)
-#define machine_irq_exception(exc_no, istate) \
-        gxemul_irq_exception(exc_no, istate)
-#define machine_get_fb_address                gxemul_get_fb_address
+#ifdef MACHINE_GXEMUL_TESTARM
+	#define machine_console_init(devno)            gxemul_console_init(devno)
+	#define machine_grab_console                   gxemul_grab_console
+	#define machine_release_console                gxemul_release_console 
+	#define machine_hw_map_init                    gxemul_hw_map_init
+	#define machine_timer_irq_start                gxemul_timer_irq_start
+	#define machine_cpu_halt                       gxemul_cpu_halt
+	#define machine_get_memory_size                gxemul_get_memory_size
+	#define machine_debug_putc(ch)                 gxemul_debug_putc(ch)
+	#define machine_irq_exception(exc_no, istate)  gxemul_irq_exception(exc_no, istate)
+	#define machine_get_fb_address                 gxemul_get_fb_address
 #endif
 
Index: kernel/arch/arm32/src/drivers/gxemul.c
===================================================================
--- kernel/arch/arm32/src/drivers/gxemul.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/arm32/src/drivers/gxemul.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -134,7 +134,8 @@
  * @param ch Characted to be printed.
  */
-static void gxemul_write(chardev_t *dev, const char ch)
-{
-	*((char *) gxemul_hw_map.videoram) = ch;
+static void gxemul_write(chardev_t *dev, const char ch, bool silent)
+{
+	if (!silent)
+		*((char *) gxemul_hw_map.videoram) = ch;
 }
 
Index: kernel/arch/ia32xen/src/drivers/xconsole.c
===================================================================
--- kernel/arch/ia32xen/src/drivers/xconsole.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/ia32xen/src/drivers/xconsole.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -56,26 +56,28 @@
 }
 
-void xen_putchar(chardev_t *d, const char ch)
+void xen_putchar(chardev_t *d, const char ch, bool silent)
 {
-	if (start_info.console.domU.evtchn != 0) {
-		uint32_t cons = console_page.out_cons;
-		uint32_t prod = console_page.out_prod;
-		
-		memory_barrier();
-		
-		if ((prod - cons) > sizeof(console_page.out))
-			return;
-		
-		if (ch == '\n')
-			console_page.out[MASK_INDEX(prod++, console_page.out)] = '\r';
-		console_page.out[MASK_INDEX(prod++, console_page.out)] = ch;
-		
-		write_barrier();
-		
-		console_page.out_prod = prod;
-		
-		xen_notify_remote(start_info.console.domU.evtchn);
-	} else
-		xen_console_io(CONSOLE_IO_WRITE, 1, &ch);
+	if (!silent) {
+		if (start_info.console.domU.evtchn != 0) {
+			uint32_t cons = console_page.out_cons;
+			uint32_t prod = console_page.out_prod;
+			
+			memory_barrier();
+			
+			if ((prod - cons) > sizeof(console_page.out))
+				return;
+			
+			if (ch == '\n')
+				console_page.out[MASK_INDEX(prod++, console_page.out)] = '\r';
+			console_page.out[MASK_INDEX(prod++, console_page.out)] = ch;
+			
+			write_barrier();
+			
+			console_page.out_prod = prod;
+			
+			xen_notify_remote(start_info.console.domU.evtchn);
+		} else
+			xen_console_io(CONSOLE_IO_WRITE, 1, &ch);
+	}
 }
 
Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/ia64/src/ia64.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -255,6 +255,6 @@
 #else
 	i8042_grab();
-#endif	
-#endif	
+#endif
+#endif
 }
 
Index: kernel/arch/ia64/src/ski/ski.c
===================================================================
--- kernel/arch/ia64/src/ski/ski.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/ia64/src/ski/ski.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -57,7 +57,4 @@
 static bool kbd_disabled;
 
-static void ski_putchar(chardev_t *d, const char ch);
-static int32_t ski_getchar(void);
-
 /** Display character on debug console
  *
@@ -68,17 +65,19 @@
  * @param ch Character to be printed.
  */
-void ski_putchar(chardev_t *d, const char ch)
-{
-	asm volatile (
-		"mov r15 = %0\n"
-		"mov r32 = %1\n"	/* r32 is in0 */
-		"break 0x80000\n"	/* modifies r8 */
-		:
-		: "i" (SKI_PUTCHAR), "r" (ch)
-		: "r15", "in0", "r8"
-	);
-	
-	if (ch == '\n')
-		ski_putchar(d, '\r');
+static void ski_putchar(chardev_t *d, const char ch, bool silent)
+{
+	if (!silent) {
+		asm volatile (
+			"mov r15 = %0\n"
+			"mov r32 = %1\n"   /* r32 is in0 */
+			"break 0x80000\n"  /* modifies r8 */
+			:
+			: "i" (SKI_PUTCHAR), "r" (ch)
+			: "r15", "in0", "r8"
+		);
+		
+		if (ch == '\n')
+			ski_putchar(d, '\r');
+	}
 }
 
@@ -92,5 +91,5 @@
  * @return ASCII code of pressed key or 0 if no key pressed.
  */
-int32_t ski_getchar(void)
+static int32_t ski_getchar(void)
 {
 	uint64_t ch;
Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup mips32	
+/** @addtogroup mips32
  * @{
  */
@@ -59,7 +59,8 @@
 
 /** Putchar that works with MSIM & gxemul */
-void msim_write(chardev_t *dev, const char ch)
+void msim_write(chardev_t *dev, const char ch, bool silent)
 {
-	*((char *) MSIM_VIDEORAM) = ch;
+	if (!silent)
+		*((char *) MSIM_VIDEORAM) = ch;
 }
 
@@ -81,5 +82,5 @@
 {
 	char ch;
-
+	
 	while (1) {
 		ch = *((volatile char *) MSIM_KBD_ADDRESS);
@@ -102,10 +103,10 @@
 		char ch = 0;
 		
-			ch = *((char *) MSIM_KBD_ADDRESS);
-			if (ch =='\r')
-				ch = '\n';
-			if (ch == 0x7f)
-				ch = '\b';
-			chardev_push_character(&console, ch);
+		ch = *((char *) MSIM_KBD_ADDRESS);
+		if (ch =='\r')
+			ch = '\n';
+		if (ch == 0x7f)
+			ch = '\b';
+		chardev_push_character(&console, ch);
 	}
 }
Index: kernel/arch/mips32/src/drivers/serial.c
===================================================================
--- kernel/arch/mips32/src/drivers/serial.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/mips32/src/drivers/serial.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup mips32	
+/** @addtogroup mips32
  * @{
  */
@@ -47,14 +47,16 @@
 static bool kb_enabled;
 
-static void serial_write(chardev_t *d, const char ch)
+static void serial_write(chardev_t *d, const char ch, bool silent)
 {
-	serial_t *sd = (serial_t *)d->data;
-
-	if (ch == '\n')
-		serial_write(d, '\r');
-	/* Wait until transmit buffer empty */
-	while (! (SERIAL_READ_LSR(sd->port) & (1<<TRANSMIT_EMPTY_BIT)))
-		;
-	SERIAL_WRITE(sd->port, ch);
+	if (!silent) {
+		serial_t *sd = (serial_t *)d->data;
+		
+		if (ch == '\n')
+			serial_write(d, '\r');
+		
+		/* Wait until transmit buffer empty */
+		while (!(SERIAL_READ_LSR(sd->port) & (1 << TRANSMIT_EMPTY_BIT)));
+		SERIAL_WRITE(sd->port, ch);
+	}
 }
 
@@ -134,6 +136,5 @@
 {
 	serial_t *sd = &sconf[0];
-
-
+	
 	chardev_initialize("serial_console", &console, &serial_ops);
 	console.data = sd;
@@ -146,8 +147,7 @@
 	serial_irq.handler = serial_irq_handler;
 	irq_register(&serial_irq);
-
+	
 	/* I don't know why, but the serial interrupts simply
-	 * don't work on simics
-	 */
+	   don't work on simics */
 	virtual_timer_fnc = &serial_handler;
 	
Index: kernel/arch/ppc32/src/ppc32.c
===================================================================
--- kernel/arch/ppc32/src/ppc32.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/ppc32/src/ppc32.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -148,6 +148,5 @@
 	
 	/* Unreachable */
-	for (;;)
-		;
+	while (true);
 }
 
Index: kernel/arch/sparc64/src/drivers/sgcn.c
===================================================================
--- kernel/arch/sparc64/src/drivers/sgcn.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/arch/sparc64/src/drivers/sgcn.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -296,14 +296,15 @@
  * written straight away. 
  */
-static void sgcn_putchar(struct chardev * cd, const char c)
-{
-	spinlock_lock(&sgcn_output_lock);
-	
-	sgcn_do_putchar(c);
-	if (c == '\n') {
-		sgcn_do_putchar('\r');
+static void sgcn_putchar(struct chardev * cd, const char c, bool silent)
+{
+	if (!silent) {
+		spinlock_lock(&sgcn_output_lock);
+		
+		sgcn_do_putchar(c);
+		if (c == '\n')
+			sgcn_do_putchar('\r');
+		
+		spinlock_unlock(&sgcn_output_lock);
 	}
-	
-	spinlock_unlock(&sgcn_output_lock);
 }
 
