From patchwork Tue Nov 2 16:26:25 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 69910 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A28E8B6EEE for ; Wed, 3 Nov 2010 03:37:02 +1100 (EST) Received: from localhost ([127.0.0.1]:39684 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PDJr1-0001Lm-Rd for incoming@patchwork.ozlabs.org; Tue, 02 Nov 2010 12:36:59 -0400 Received: from [140.186.70.92] (port=44861 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PDJgp-0001Hv-8G for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PDJgo-00007C-4h for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:27 -0400 Received: from cantor.suse.de ([195.135.220.2]:49901 helo=mx1.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PDJgn-000070-SC for qemu-devel@nongnu.org; Tue, 02 Nov 2010 12:26:26 -0400 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 43A4194608; Tue, 2 Nov 2010 17:26:25 +0100 (CET) From: Alexander Graf To: qemu-devel Developers Date: Tue, 2 Nov 2010 17:26:25 +0100 Message-Id: <1288715185-28657-1-git-send-email-agraf@suse.de> X-Mailer: git-send-email 1.6.0.2 In-Reply-To: <1288623713-28062-1-git-send-email-agraf@suse.de> References: <1288623713-28062-1-git-send-email-agraf@suse.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 Cc: Gerd Hoffmann Subject: [Qemu-devel] [PATCH 39/40] xenner: integrate into xen pv machine X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org For native Xen support, we already have a xen machine description. This one doesn't really know too much about xenner yet though, so we need to teach it. This patch adds support for xenner in the xen pv machine description. Signed-off-by: Alexander Graf --- hw/xen_backend.h | 1 + hw/xen_machine_pv.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/hw/xen_backend.h b/hw/xen_backend.h index f53a742..f6fc5f3 100644 --- a/hw/xen_backend.h +++ b/hw/xen_backend.h @@ -2,6 +2,7 @@ #define QEMU_HW_XEN_BACKEND_H 1 #include "xen_common.h" +#include "xen_redirect.h" #include "sysemu.h" #include "net.h" #include "qdev.h" diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index 6f2666d..6611011 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -29,6 +29,7 @@ #include "xen_backend.h" #include "xen_domainbuild.h" #include "blockdev.h" +#include "xenner.h" static void create_dummy_env(const char *cpu_model) { @@ -57,12 +58,14 @@ static void xen_init_pv(ram_addr_t ram_size, int i; /* Initialize backend core & drivers */ + xen_interfaces_init(); if (xen_be_init() != 0) { fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__); exit(1); } switch (xen_mode) { +#ifdef CONFIG_XEN case XEN_ATTACH: create_dummy_env(cpu_model); /* nothing to do, xend handles everything */ @@ -75,9 +78,18 @@ static void xen_init_pv(ram_addr_t ram_size, exit(1); } break; +#endif +#ifdef CONFIG_XENNER case XEN_EMULATE: - fprintf(stderr, "xen emulation not implemented (yet)\n"); - exit(1); + if (xenner_init_pv(kernel_filename, kernel_cmdline, + initrd_filename) < 0) { + fprintf(stderr, "xenner pv domain creation failed\n"); + exit(1); + } + break; +#endif + default: + /* not reached, xen_interfaces_init() catches this already */ break; }