From patchwork Wed Aug 22 12:30:16 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 179364 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id AD2802C00A5 for ; Thu, 23 Aug 2012 04:54:25 +1000 (EST) Received: from localhost ([::1]:35465 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4G4N-0008Lq-RE for incoming@patchwork.ozlabs.org; Wed, 22 Aug 2012 14:54:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39888) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4G4C-0008H6-I7 for qemu-devel@nongnu.org; Wed, 22 Aug 2012 14:54:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T4G4B-0006mI-AV for qemu-devel@nongnu.org; Wed, 22 Aug 2012 14:54:12 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:64243) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4G4A-0006lT-Nf for qemu-devel@nongnu.org; Wed, 22 Aug 2012 14:54:11 -0400 X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205942907" Received: from ftlpmailmx01.citrite.net ([10.13.107.65]) by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5; 22 Aug 2012 14:54:03 -0400 Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Wed, 22 Aug 2012 14:54:02 -0400 From: Julien Grall To: qemu-devel@nongnu.org Date: Wed, 22 Aug 2012 13:30:16 +0100 Message-ID: <60e94dfc4ce6ebcd07e3256e314b9d0c99a13d1d.1345637459.git.julien.grall@citrix.com> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: References: MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 66.165.176.63 Cc: Julien Grall , christian.limpach@gmail.com, Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org Subject: [Qemu-devel] [QEMU][RFC V2 03/10] xen: add wrappers for new Xen disaggregation hypercalls X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org QEMU disaggregation is not supported on old Xen versions. Signed-off-by: Julien Grall --- hw/xen_common.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 58 insertions(+), 0 deletions(-) diff --git a/hw/xen_common.h b/hw/xen_common.h index 727757a..b2525ad 100644 --- a/hw/xen_common.h +++ b/hw/xen_common.h @@ -152,6 +152,64 @@ static inline int xen_xc_hvm_inject_msi(XenXC xen_xc, domid_t dom, } #endif +/* Xen before 4.3 */ +#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 430 +static inline int xen_xc_hvm_register_pcidev(XenXC xen_xc, domid_t dom, + unsigned int serverid, uint8_t domain, + uint8_t bus, uint8_t device, uint8_t function) +{ + return 0; +} + +static inline int xen_xc_hvm_map_io_range_to_ioreq_server(XenXC xen_xc, + domid_t dom, unsigned int serverid, int is_mmio, + uint64_t start, uint64_t end) +{ + return 1; +} + +static inline int xen_xc_hvm_unmap_io_range_from_ioreq_server(XenXC xen_xc, + domid_t dom, unsigned int serverid, int is_mmio, uint64_t start) +{ + return 1; +} + +static inline int xen_xc_hvm_register_ioreq_server(XenXC xen_xc, domid_t dom) +{ + return 0; +} + +#else +static inline int xen_xc_hvm_register_pcidev(XenXC xen_xc, domid_t dom, + unsigned int serverid, uint8_t domain, + uint8_t bus, uint8_t device, uint8_t function) +{ + return xc_hvm_register_pcidev(xen_xc, dom, serverid, domain, + bus, device, function); +} + +static inline int xen_xc_hvm_map_io_range_to_ioreq_server(XenXC xen_xc, + domid_t dom, unsigned int serverid, int is_mmio, + uint64_t start, uint64_t end) +{ + return xc_hvm_map_io_range_to_ioreq_server(xen_xc, dom, serverid, is_mmio, + start, end); +} + +static inline int xen_xc_hvm_unmap_io_range_from_ioreq_server(XenXC xen_xc, + domid_t dom, unsigned int serverid, int is_mmio, uint64_t start) +{ + return xc_hvm_unmap_io_range_from_ioreq_server(xen_xc, dom, serverid, + is_mmio, start); +} + +static inline int xen_xc_hvm_register_ioreq_server(XenXC xen_xc, domid_t dom) +{ + return xc_hvm_register_ioreq_server(xen_xc, dom); +} + +#endif + void destroy_hvm_domain(bool reboot); /* shutdown/destroy current domain because of an error */