svn commit: r237403 - in projects/amd64_xen_pv/sys:
amd64/include/xen amd64/xen kern
Attilio Rao
attilio at FreeBSD.org
Thu Jun 21 16:21:32 UTC 2012
Author: attilio
Date: Thu Jun 21 16:21:31 2012
New Revision: 237403
URL: http://svn.freebsd.org/changeset/base/237403
Log:
Until console is not working, redirect the output of panic on the
emergency console.
This is a bit hackish as it uses an MD interface on MI directly, but this
code is thought to be removed soon anyway.
Reviewed by: cherry
Modified:
projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h
projects/amd64_xen_pv/sys/amd64/xen/machdep.c
projects/amd64_xen_pv/sys/kern/kern_shutdown.c
Modified: projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h Thu Jun 21 15:47:06 2012 (r237402)
+++ projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h Thu Jun 21 16:21:31 2012 (r237403)
@@ -75,6 +75,7 @@ void bootmem_free(void *ptr, unsigned in
#include <sys/types.h>
void printk(const char *fmt, ...);
+void vprintk(const char *fmt, __va_list ap);
/* some function prototypes */
void trap_init(void);
Modified: projects/amd64_xen_pv/sys/amd64/xen/machdep.c
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/xen/machdep.c Thu Jun 21 15:47:06 2012 (r237402)
+++ projects/amd64_xen_pv/sys/amd64/xen/machdep.c Thu Jun 21 16:21:31 2012 (r237403)
@@ -1037,12 +1037,19 @@ void
printk(const char *fmt, ...)
{
__va_list ap;
+
+ va_start(ap, fmt);
+ vprintk(fmt, ap);
+ va_end(ap);
+}
+
+void
+vprintk(const char *fmt, __va_list ap)
+{
int retval;
static char buf[PRINTK_BUFSIZE];
- va_start(ap, fmt);
retval = vsnprintf(buf, PRINTK_BUFSIZE - 1, fmt, ap);
- va_end(ap);
buf[retval] = 0;
(void)HYPERVISOR_console_write(buf, retval);
}
Modified: projects/amd64_xen_pv/sys/kern/kern_shutdown.c
==============================================================================
--- projects/amd64_xen_pv/sys/kern/kern_shutdown.c Thu Jun 21 15:47:06 2012 (r237402)
+++ projects/amd64_xen_pv/sys/kern/kern_shutdown.c Thu Jun 21 16:21:31 2012 (r237403)
@@ -616,10 +616,18 @@ panic(const char *fmt, ...)
panicstr = buf;
cngrab();
printf("panic: %s\n", buf);
+#ifdef XEN
+ printk("panic: %s\n", buf);
+#endif
} else {
printf("panic: ");
vprintf(fmt, ap);
printf("\n");
+#ifdef XEN
+ printk("panic: ");
+ vprintk(fmt, ap);
+ printk("\n");
+#endif
}
va_end(ap);
#ifdef SMP
More information about the svn-src-projects
mailing list