aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/hvc_xen.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/hvc_xen.c')
-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 dd68f8541c2d..e97d9d168325 100644
--- a/drivers/char/hvc_xen.c
+++ b/drivers/char/hvc_xen.c
@@ -157,3 +157,29 @@ struct console xenboot_console = {
157 .write = xenboot_write_console, 157 .write = xenboot_write_console,
158 .flags = CON_PRINTBUFFER | CON_BOOT, 158 .flags = CON_PRINTBUFFER | CON_BOOT,
159}; 159};
160
161void xen_raw_console_write(const char *str)
162{
163 int len = strlen(str);
164
165 while(len > 0) {
166 int rc = HYPERVISOR_console_io(CONSOLEIO_write, len, (char *)str);
167 if (rc <= 0)
168 break;
169
170 str += rc;
171 len -= rc;
172 }
173}
174
175void xen_raw_printk(const char *fmt, ...)
176{
177 static char buf[512];
178 va_list ap;
179
180 va_start(ap, fmt);
181 vsnprintf(buf, sizeof(buf), fmt, ap);
182 va_end(ap);
183
184 xen_raw_console_write(buf);
185}