summaryrefslogtreecommitdiffstats
path: root/sys/xen
diff options
context:
space:
mode:
authorroyger <royger@FreeBSD.org>2014-03-11 10:09:23 +0000
committerroyger <royger@FreeBSD.org>2014-03-11 10:09:23 +0000
commit3c7c289c4650f5f61980f1e10778d931bebb2755 (patch)
tree030377424ef21e9085fc03f2d6204dd25d2d42a1 /sys/xen
parent57a42c756398e8543cdfb5f911e9e1a9a54145ec (diff)
downloadFreeBSD-src-3c7c289c4650f5f61980f1e10778d931bebb2755.zip
FreeBSD-src-3c7c289c4650f5f61980f1e10778d931bebb2755.tar.gz
xen: add and enable Xen console for PVH guests
This adds and enables the PV console used on XEN kernels to GENERIC/XENHVM kernels in order for it to be used on PVH. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/console/console.c: - Define console_page. - Move xc_printf debug function from i386 XEN code to generic console code. - Rework xc_printf. - Use xen_initial_domain instead of open-coded checks for Dom0. - Gate the attach of the PV console to PV(H) guests. dev/xen/console/xencons_ring.c: - Allow the PV Xen console to output earlier by directly signaling the event channel in start_info if the event channel is not yet initialized. - Use HYPERVISOR_start_info instead of xen_start_info. i386/include/xen/xen-os.h: - Remove prototype for xc_printf since it's now declared in global xen-os.h i386/xen/xen_machdep.c: - Remove previous version of xc_printf. - Remove definition of console_page (now it's defined in the console itself). - Fix some printf formatting errors. x86/xen/pv.c: - Add some early boot debug messages using xc_printf. - Set console_page based on the value passed in start_info. xen/xen-os.h: - Declare console_page and add prototype for xc_printf.
Diffstat (limited to 'sys/xen')
-rw-r--r--sys/xen/xen-os.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/xen/xen-os.h b/sys/xen/xen-os.h
index 62b5bf6..7dd9c7e 100644
--- a/sys/xen/xen-os.h
+++ b/sys/xen/xen-os.h
@@ -55,6 +55,7 @@ extern start_info_t *HYPERVISOR_start_info;
/* XXX: we need to get rid of this and use HYPERVISOR_start_info directly */
extern struct xenstore_domain_interface *xen_store;
+extern char *console_page;
enum xen_domain_type {
XEN_NATIVE, /* running on bare hardware */
@@ -89,6 +90,9 @@ xen_initial_domain(void)
(HYPERVISOR_start_info->flags & SIF_INITDOMAIN) != 0);
}
+/* Debug/emergency function, prints directly to hypervisor console */
+void xc_printf(const char *, ...) __printflike(1, 2);
+
#ifndef xen_mb
#define xen_mb() mb()
#endif
OpenPOWER on IntegriCloud