aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-05-26 23:30:59 +0100
committerThomas Gleixner <tglx@linutronix.de>2008-05-27 10:11:35 +0200
commit0acf10d8fbd52926217d3933d196b33fe2468f18 (patch)
tree938555cc132ffb6ad3bc242e09dc7497a6040007 /drivers/char
parent3843fc2575e3389f4f0ad0420a720240a5746a5d (diff)
downloadkernel_samsung_smdk4412-0acf10d8fbd52926217d3933d196b33fe2468f18.zip
kernel_samsung_smdk4412-0acf10d8fbd52926217d3933d196b33fe2468f18.tar.gz
kernel_samsung_smdk4412-0acf10d8fbd52926217d3933d196b33fe2468f18.tar.bz2
xen: add raw console write functions for debug
Add a couple of functions which can write directly to the Xen console for debugging. This output ends up on the host's dom0 console (assuming it allows the domain to write there). Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/hvc_xen.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/char/hvc_xen.c b/drivers/char/hvc_xen.c
index dd68f85..e97d9d1 100644
--- a/drivers/char/hvc_xen.c
+++ b/drivers/char/hvc_xen.c
@@ -157,3 +157,29 @@ struct console xenboot_console = {
.write = xenboot_write_console,
.flags = CON_PRINTBUFFER | CON_BOOT,
};
+
+void xen_raw_console_write(const char *str)
+{
+ int len = strlen(str);
+
+ while(len > 0) {
+ int rc = HYPERVISOR_console_io(CONSOLEIO_write, len, (char *)str);
+ if (rc <= 0)
+ break;
+
+ str += rc;
+ len -= rc;
+ }
+}
+
+void xen_raw_printk(const char *fmt, ...)
+{
+ static char buf[512];
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+
+ xen_raw_console_write(buf);
+}