From 9306acb50991b7c78510ff4ffe19a190f2fc89c0 Mon Sep 17 00:00:00 2001 From: aliguori Date: Wed, 22 Apr 2009 15:19:44 +0000 Subject: xen: pv domain builder. (Gerd Hoffmann) This adds domain building support for paravirtual domains to qemu. This allows booting xen guests directly with qemu, without Xend and the management stack. Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7226 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/xen_machine_pv.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'hw/xen_machine_pv.c') diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index 154cf71584..56b01aa99f 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -27,6 +27,7 @@ #include "sysemu.h" #include "boards.h" #include "xen_backend.h" +#include "xen_domainbuild.h" uint32_t xen_domid; enum xen_mode xen_mode = XEN_EMULATE; @@ -57,6 +58,24 @@ static void xen_init_pv(ram_addr_t ram_size, int vga_ram_size, fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__); exit(1); } + + switch (xen_mode) { + case XEN_ATTACH: + /* nothing to do, xend handles everything */ + break; + case XEN_CREATE: + if (xen_domain_build_pv(kernel_filename, initrd_filename, + kernel_cmdline) < 0) { + fprintf(stderr, "xen pv domain creation failed\n"); + exit(1); + } + break; + case XEN_EMULATE: + fprintf(stderr, "xen emulation not implemented (yet)\n"); + exit(1); + break; + } + xen_be_register("console", &xen_console_ops); xen_be_register("vkbd", &xen_kbdmouse_ops); xen_be_register("vfb", &xen_framebuffer_ops); -- cgit v1.2.3-55-g7522