From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=44743 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PDJgf-00017S-G4 for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PDJge-0008WF-92 for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:17 -0400 Received: from cantor.suse.de ([195.135.220.2]:49896 helo=mx1.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PDJge-0008W6-45 for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:16 -0400 From: Alexander Graf Date: Tue, 2 Nov 2010 17:26:14 +0100 Message-Id: <1288715174-28495-1-git-send-email-agraf@suse.de> In-Reply-To: <1288623713-28062-1-git-send-email-agraf@suse.de> References: <1288623713-28062-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 36/40] xen: only create dummy env when necessary List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Developers Cc: Gerd Hoffmann For native Xen machines, we need to create a dummy env so qemu always has something to work on. When using xenner however, we don't want that dummy env but create real envs instead. Signed-off-by: Alexander Graf --- hw/xen_machine_pv.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index b94d6e9..6f2666d 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -30,16 +30,9 @@ #include "xen_domainbuild.h" #include "blockdev.h" -static void xen_init_pv(ram_addr_t ram_size, - const char *boot_device, - const char *kernel_filename, - const char *kernel_cmdline, - const char *initrd_filename, - const char *cpu_model) +static void create_dummy_env(const char *cpu_model) { CPUState *env; - DriveInfo *dinfo; - int i; /* Initialize a dummy CPU */ if (cpu_model == NULL) { @@ -51,6 +44,17 @@ static void xen_init_pv(ram_addr_t ram_size, } env = cpu_init(cpu_model); env->halted = 1; +} + +static void xen_init_pv(ram_addr_t ram_size, + const char *boot_device, + const char *kernel_filename, + const char *kernel_cmdline, + const char *initrd_filename, + const char *cpu_model) +{ + DriveInfo *dinfo; + int i; /* Initialize backend core & drivers */ if (xen_be_init() != 0) { @@ -60,9 +64,11 @@ static void xen_init_pv(ram_addr_t ram_size, switch (xen_mode) { case XEN_ATTACH: + create_dummy_env(cpu_model); /* nothing to do, xend handles everything */ break; case XEN_CREATE: + create_dummy_env(cpu_model); if (xen_domain_build_pv(kernel_filename, initrd_filename, kernel_cmdline) < 0) { fprintf(stderr, "xen pv domain creation failed\n"); -- 1.6.0.2