From 50c88402ca599e577f025e78a4380431be2b3f6d Mon Sep 17 00:00:00 2001 From: Joao Martins Date: Wed, 13 Feb 2019 12:29:47 -0500 Subject: include: import Xen public headers to hw/xen/interface There's already a partial set here; update them and pull in a more complete set. To start with, define __XEN_TOOLS__ in hw/xen/xen.h to ensure that any internal definitions needed by Xen toolstack libraries are present regardless of the order in which the headers are included. A reckoning will come later, once we make the PV backends work in emulation and untangle the headers for Xen-native vs. generic parts. Signed-off-by: Joao Martins [dwmw2: Update to Xen public headers from 4.16.2 release, add some in io/, define __XEN_TOOLS__ in hw/xen/xen.h, move to hw/xen/interface/] Signed-off-by: David Woodhouse Reviewed-by: Paul Durrant --- include/hw/xen/xen.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'include/hw/xen/xen.h') diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h index afdf9c436a..4d412fd4b2 100644 --- a/include/hw/xen/xen.h +++ b/include/hw/xen/xen.h @@ -1,12 +1,22 @@ -#ifndef QEMU_HW_XEN_H -#define QEMU_HW_XEN_H - /* * public xen header * stuff needed outside xen-*.c, i.e. interfaces to qemu. * must not depend on any xen headers being present in * /usr/include/xen, so it can be included unconditionally. */ +#ifndef QEMU_HW_XEN_H +#define QEMU_HW_XEN_H + +/* + * As a temporary measure while the headers are being untangled, define + * __XEN_TOOLS__ here before any Xen headers are included. Otherwise, if + * the Xen toolstack library headers are later included, they will find + * some of the "internal" definitions missing and the build will fail. In + * later commits, we'll end up with a rule that the native libraries have + * to be included first, which will ensure that the libraries get the + * version of Xen libraries that they expect. + */ +#define __XEN_TOOLS__ 1 #include "exec/cpu-common.h" -- cgit 1.4.1 From faa4e80071f5114f8113263b5303ac18e7df0a9d Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 12 Dec 2022 22:32:54 +0000 Subject: xen: Add XEN_DISABLED mode and make it default Also set XEN_ATTACH mode in xen_init() to reflect the truth; not that anyone ever cared before. It was *only* ever checked in xen_init_pv() before. Suggested-by: Paolo Bonzini Signed-off-by: David Woodhouse Reviewed-by: Paul Durrant --- accel/xen/xen-all.c | 2 ++ include/hw/xen/xen.h | 5 +++-- softmmu/globals.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'include/hw/xen/xen.h') diff --git a/accel/xen/xen-all.c b/accel/xen/xen-all.c index c1b697a8bd..e85e4aeba5 100644 --- a/accel/xen/xen-all.c +++ b/accel/xen/xen-all.c @@ -171,6 +171,8 @@ static int xen_init(MachineState *ms) * opt out of system RAM being allocated by generic code */ mc->default_ram_id = NULL; + + xen_mode = XEN_ATTACH; return 0; } diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h index 4d412fd4b2..03983939f9 100644 --- a/include/hw/xen/xen.h +++ b/include/hw/xen/xen.h @@ -22,8 +22,9 @@ /* xen-machine.c */ enum xen_mode { - XEN_EMULATE = 0, // xen emulation, using xenner (default) - XEN_ATTACH // attach to xen domain created by libxl + XEN_DISABLED = 0, /* xen support disabled (default) */ + XEN_ATTACH, /* attach to xen domain created by libxl */ + XEN_EMULATE, /* emulate Xen within QEMU */ }; extern uint32_t xen_domid; diff --git a/softmmu/globals.c b/softmmu/globals.c index 527edbefdd..0a4405614e 100644 --- a/softmmu/globals.c +++ b/softmmu/globals.c @@ -63,5 +63,5 @@ QemuUUID qemu_uuid; bool qemu_uuid_set; uint32_t xen_domid; -enum xen_mode xen_mode = XEN_EMULATE; +enum xen_mode xen_mode = XEN_DISABLED; bool xen_domid_restrict; -- cgit 1.4.1