From patchwork Wed Sep 26 14:47:11 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Wang X-Patchwork-Id: 187092 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 B8EF92C0093 for ; Thu, 27 Sep 2012 00:45:32 +1000 (EST) Received: from localhost ([::1]:40029 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGsri-0005fL-Sn for incoming@patchwork.ozlabs.org; Wed, 26 Sep 2012 10:45:30 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48928) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGsrT-0005fC-Ps for qemu-devel@nongnu.org; Wed, 26 Sep 2012 10:45:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TGsrN-0006Uk-Hf for qemu-devel@nongnu.org; Wed, 26 Sep 2012 10:45:15 -0400 Received: from va3ehsobe010.messaging.microsoft.com ([216.32.180.30]:30429 helo=va3outboundpool.messaging.microsoft.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGsrN-0006UA-DI for qemu-devel@nongnu.org; Wed, 26 Sep 2012 10:45:09 -0400 Received: from mail205-va3-R.bigfish.com (10.7.14.237) by VA3EHSOBE010.bigfish.com (10.7.40.12) with Microsoft SMTP Server id 14.1.225.23; Wed, 26 Sep 2012 14:45:08 +0000 Received: from mail205-va3 (localhost [127.0.0.1]) by mail205-va3-R.bigfish.com (Postfix) with ESMTP id 82056360209; Wed, 26 Sep 2012 14:45:08 +0000 (UTC) X-Forefront-Antispam-Report: CIP:163.181.249.108; KIP:(null); UIP:(null); IPV:NLI; H:ausb3twp01.amd.com; RD:none; EFVD:NLI X-SpamScore: 0 X-BigFish: VPS0(zzc857hzz1202h1d1ah1d2ahzzz2dh668h839hd25he5bhf0ah107ah1288h12a5h12bdh137ah34h1155h) Received: from mail205-va3 (localhost.localdomain [127.0.0.1]) by mail205-va3 (MessageSwitch) id 1348670706844547_30968; Wed, 26 Sep 2012 14:45:06 +0000 (UTC) Received: from VA3EHSMHS029.bigfish.com (unknown [10.7.14.240]) by mail205-va3.bigfish.com (Postfix) with ESMTP id C1543DC00BC; Wed, 26 Sep 2012 14:45:06 +0000 (UTC) Received: from ausb3twp01.amd.com (163.181.249.108) by VA3EHSMHS029.bigfish.com (10.7.99.39) with Microsoft SMTP Server id 14.1.225.23; Wed, 26 Sep 2012 14:45:06 +0000 X-WSS-ID: 0MAYOZ3-01-5UM-02 X-M-MSG: Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com [163.181.249.73]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by ausb3twp01.amd.com (Axway MailGate 3.8.1) with ESMTP id 2CC5A1028008; Wed, 26 Sep 2012 09:45:02 -0500 (CDT) Received: from SAUSEXDAG06.amd.com (163.181.55.7) by sausexedgep02.amd.com (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1; Wed, 26 Sep 2012 09:45:14 -0500 Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag06.amd.com (163.181.55.7) with Microsoft SMTP Server (TLS) id 14.1.323.3; Wed, 26 Sep 2012 09:45:02 -0500 Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Wed, 26 Sep 2012 10:45:01 -0400 Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57]) by gwo.osrc.amd.com (Postfix) with ESMTP id C84D649C14F; Wed, 26 Sep 2012 15:44:59 +0100 (BST) Message-ID: <5063156F.9050208@amd.com> Date: Wed, 26 Sep 2012 16:47:11 +0200 From: Wei Wang User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0 MIME-Version: 1.0 To: "xen-devel@lists.xensource.com" X-OriginatorOrg: amd.com X-detected-operating-system: by eggs.gnu.org: Windows XP/2000 (RFC1323+, w+, tstamp-) X-Received-From: 216.32.180.30 Cc: Keir Fraser , Ian Jackson , "qemu-devel@nongnu.org" , Jan Beulich , Ian Campbell Subject: [Qemu-devel] [PATCH 4 of 6 V6] libxc: add wrappers for new 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 From 0e5259161a6055dcbebb7b9e978b5c384c7a3efe Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 26 Sep 2012 11:47:03 +0200 Subject: [PATCH 4/6] libxc: add wrappers for new hypercalls Please see patch 1 for hypercall description. Signed-off-by: Wei Wang --- tools/libxc/xc_domain.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++ tools/libxc/xenctrl.h | 15 +++++++++++++ 2 files changed, 68 insertions(+), 0 deletions(-) diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index d98e68b..7a0d437 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -1352,6 +1352,59 @@ int xc_domain_bind_pt_isa_irq( PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq)); } +int xc_domain_update_iommu_msi( + xc_interface *xch, + uint32_t domid, + uint8_t vector, + uint8_t dest, + uint8_t dest_mode, + uint8_t delivery_mode, + uint8_t trig_mode) +{ + int rc; + DECLARE_DOMCTL; + xen_domctl_guest_iommu_op_t * iommu_op; + + domctl.cmd = XEN_DOMCTL_guest_iommu_op; + domctl.domain = (domid_t)domid; + + iommu_op = &(domctl.u.guest_iommu_op); + iommu_op->op = XEN_DOMCTL_GUEST_IOMMU_OP_SET_MSI; + iommu_op->u.msi.vector = vector; + iommu_op->u.msi.dest = dest; + iommu_op->u.msi.dest_mode = dest_mode; + iommu_op->u.msi.delivery_mode = delivery_mode; + iommu_op->u.msi.trig_mode = trig_mode; + + rc = do_domctl(xch, &domctl); + return rc; +} + +int xc_domain_bind_pt_bdf(xc_interface *xch, + uint32_t domid, + uint16_t gseg, + uint16_t gbdf, + uint16_t mseg, + uint16_t mbdf) +{ + int rc; + DECLARE_DOMCTL; + xen_domctl_guest_iommu_op_t * guest_op; + + domctl.cmd = XEN_DOMCTL_guest_iommu_op; + domctl.domain = (domid_t)domid; + + guest_op = &(domctl.u.guest_iommu_op); + guest_op->op = XEN_DOMCTL_GUEST_IOMMU_OP_BIND_BDF; + guest_op->u.bdf_bind.g_seg = gseg; + guest_op->u.bdf_bind.g_bdf = gbdf; + guest_op->u.bdf_bind.m_seg = mseg; + guest_op->u.bdf_bind.m_bdf = mbdf; + + rc = do_domctl(xch, &domctl); + return rc; +} + int xc_domain_memory_mapping( xc_interface *xch, uint32_t domid, diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 7eb5743..1e510a0 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -1730,6 +1730,21 @@ int xc_domain_bind_pt_isa_irq(xc_interface *xch, uint32_t domid, uint8_t machine_irq); +int xc_domain_bind_pt_bdf(xc_interface *xch, + uint32_t domid, + uint16_t gseg, + uint16_t gbdf, + uint16_t mseg, + uint16_t mbdf); + +int xc_domain_update_iommu_msi(xc_interface *xch, + uint32_t domid, + uint8_t vector, + uint8_t dest, + uint8_t dest_mode, + uint8_t delivery_mode, + uint8_t trig_mode); + int xc_domain_set_machine_address_size(xc_interface *xch, uint32_t domid, unsigned int width);