aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/console
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-16 16:34:27 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-05-16 16:34:27 +0100
commit53f14393388c8228ea9ef88b3a698c24054b8db4 (patch)
tree08302bd7d1bf1e5b8b7ffd7e80f9d6346cefbb00 /extras/mini-os/console
parenteca207adce3e1b0f7aadb9caf1751c93adcaa1ca (diff)
downloadxen-53f14393388c8228ea9ef88b3a698c24054b8db4.tar.gz
xen-53f14393388c8228ea9ef88b3a698c24054b8db4.tar.bz2
xen-53f14393388c8228ea9ef88b3a698c24054b8db4.zip
[MINIOS] Fix the pagefault handler to detect recursive faults.
Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk>
Diffstat (limited to 'extras/mini-os/console')
-rw-r--r--extras/mini-os/console/console.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/extras/mini-os/console/console.c b/extras/mini-os/console/console.c
index 342a1edd45..29fdd99f3b 100644
--- a/extras/mini-os/console/console.c
+++ b/extras/mini-os/console/console.c
@@ -45,6 +45,10 @@
#include <xen/io/console.h>
+/* Copies all print output to the Xen emergency console apart
+ of standard dom0 handled console */
+#define USE_XEN_CONSOLE
+
/* Low level functions defined in xencons_ring.c */
extern int xencons_ring_init(void);
extern int xencons_ring_send(const char *data, unsigned len);
@@ -117,7 +121,9 @@ void print(int direct, const char *fmt, va_list args)
(void)HYPERVISOR_console_io(CONSOLEIO_write, strlen(buf), buf);
return;
} else {
- if(!console_initialised)
+#ifndef USE_XEN_CONSOLE
+ if(!console_initialised)
+#endif
(void)HYPERVISOR_console_io(CONSOLEIO_write, strlen(buf), buf);
console_print(buf, strlen(buf));
@@ -128,7 +134,7 @@ void printk(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
- print(1, fmt, args);
+ print(0, fmt, args);
va_end(args);
}