From patchwork Tue Jan 5 10:25:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 11998577 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AEE0C433E6 for ; Tue, 5 Jan 2021 10:30:10 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3A5B522515 for ; Tue, 5 Jan 2021 10:30:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3A5B522515 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.61784.108836 (Exim 4.92) (envelope-from ) id 1kwjbC-000745-Q6; Tue, 05 Jan 2021 10:29:58 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 61784.108836; Tue, 05 Jan 2021 10:29:58 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kwjbC-00073x-Mr; Tue, 05 Jan 2021 10:29:58 +0000 Received: by outflank-mailman (input) for mailman id 61784; Tue, 05 Jan 2021 10:29:57 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kwjbB-00071R-BN for xen-devel@lists.xenproject.org; Tue, 05 Jan 2021 10:29:57 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 86e1b714-0b99-41f0-be13-a78e65a220c6; Tue, 05 Jan 2021 10:29:54 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 86e1b714-0b99-41f0-be13-a78e65a220c6 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1609842594; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=ZJE3c1sH8M7f29FSP6zWyrqpO+hO9epJCo+tyAhCKVg=; b=eCoGbLV+s8QljVqpbscCOH3PPQjXNt6A1VMicPv4rfcYDgGy3e1PElzr QF+4Yjk4KvpnVYnC7Unpemi0M9iR88bMAcjiHWrOyKYtUD915S+jQZoLK 07Kzdcz5xGTcyJjzONZZL+nSD/9NFgmnfu2wZC5UDyhVu9IN+Qy+6U+i7 I=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: Ho8BAJ21+zox3nbzfUMXrKAjZ74+9VqpxwBkdXww9gAvD2J1TP2NhCNvpp5lFtwtllJIXy7Vca OCFkV2EPmLI0oMOIRp7EmEuLokihZHKJ7VsFlWE5RxigXCYplAuV0bPBAw2/GqyiEKpOtSyA/L QhUWDl3Dhm6361qZQmBgGfVnV43qXrWrRUBL8aqcwRSR/nqsrsltUoj02dJW7X+yO6rC9/8KHs UdX0JzCdzZcUkvHeZP5ed9oMWrVcc/RPWj+6PRge0vMMW7906GUFgBDUoYmDYRBphMJ1dw9wpI Wos= X-SBRS: 5.2 X-MesageID: 34631391 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.78,476,1599537600"; d="scan'208";a="34631391" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G0OSQuudgdjmCos59IfdGeCkYC8vBhspB+puOfRWlujDvapBBHPKiWTBrEmJtX/UDdV7Fbm3HcNAYPo7glp4DGPM0FX4tPg0I+GixCmcqSsoOcZihAX8H8gctxZZus0Lm9KghxaBEZY6K6YOWD5r1U6TBXkLM66HQ/PMFFThNGveV6oiVLYA8cfDEWahDtQv4SGwXHn/aARg/SQZSctUilyZ6EU1cOpVHJMC8GWQaXW70KjA1AO2UQR5TGFRwO8iUcrRhsVUoLdOjalrLFVi1WYuJnkLFc4J7RA9ZInKScV5iUsg10OWptCeUU6tAVLKQYLY+qi76k8L+Ip3URN1GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bn1x1xofG0i+QAYYSC/0bk22fkyzrXgwirO+IHzjkEE=; b=EanZ0ut6MqaQiNMj216Z/kGTfGswPAnZyONRrCwrcwId92tBB7grFehPrnriBsjL0Yd5UQO3xrYhjhCsGNrQcQ0RI6EOpx+jrSB/J6XUHNHpKbmiC37EMgdiUNnQVFfv2TarSf6QgnwznLUHFcKeenlaaHRl/vdqCtaUspen5MGWqybOGOfNPsKd3EzjX7imjr7Bgh20zxQQSfwxjD9UXXPQ8F1orawaN8N2sNY13P6cMMeDXES7yBwf7zz3Cnid1GR+I3QqB26NT75nhCi3ZJB+RQBxomq9QuWrGi2zbCPvsGfmFrl8ZI/E31E4mT57mzDCKw52OLpEo+fGgxZkgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bn1x1xofG0i+QAYYSC/0bk22fkyzrXgwirO+IHzjkEE=; b=I2pe1F/qdSNzBPb9mCvK9Aaky2uE4NMFBIgi/blU8MvnuO4RF5sOlBoWSOyHVN9GmREHFVUAxQIytOGLH0r9oetBYDFyZISJZcQK5RN7tUR/Vn/FS2/LUOgFS/FcA6+L8dMrOh/rkUGJ6PXoPecwwSFuQBQ2HgCLVVLn28JleTg= From: Roger Pau Monne To: CC: Roger Pau Monne , Ian Jackson , Wei Liu Subject: [PATCH 1/2] libs/foreignmemory: implement the missing functions on FreeBSD Date: Tue, 5 Jan 2021 11:25:45 +0100 Message-ID: <20210105102546.88462-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210105102546.88462-1-roger.pau@citrix.com> References: <20210105102546.88462-1-roger.pau@citrix.com> X-ClientProxiedBy: PR3P192CA0007.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::12) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05b41701-ad47-41ac-04e9-08d8b164d626 X-MS-TrafficTypeDiagnostic: DS7PR03MB5525: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gFKXX+AQztlw5qBZOpEnwh6AxLNFubHOINcsmPkX7+4NEZPY3jMPeunnimH3YSVzFqkuL8BAL0QrqTdi8ZN8Ms0l5TMxdaatRlE10+7kpMJLTkMlX57IAa5j1+nW0+OtP5aP4z+MZHaNHI2fseebn1c684iPXqEyoQEWBt3HcVfZ8j4czXzNBH8/REdG+h9kLOh1jUdX9LtF/jvVJzA9Fi3C/A1+O0KFpG+BMSvJZ1NQehJsmDxbqM8CyBdOpxtsIN7vTuDdhnDx3jWmrHchb8uvm4wSBg0463WTUVvA9AuhYZF7D1YC7jkvxlTLX1YYGMdbkZzBiPElJ+D5yhR4j5MK1srhk8ofEH0G/OGSfnq1s36R8BPR3nji90YKdq6A X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(366004)(396003)(39860400002)(136003)(66476007)(8676002)(16526019)(478600001)(6916009)(186003)(26005)(4326008)(2906002)(1076003)(6666004)(66946007)(5660300002)(66556008)(956004)(2616005)(36756003)(6496006)(8936002)(316002)(83380400001)(54906003)(6486002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?1rpqKlxEWQn886wQWjm2QL80cZ/7iA?= =?utf-8?q?A+KqvCm6Q9aQ+4sdeUmgw9j78orun8y2hy6+MtgQsn66ST8aVUo0sEUGL70m65/Sh?= =?utf-8?q?scV85+nAQfpv2FPjVQP8NZ2cDzBZlbCF2WpYI+T/1Y+jXoc8JtmAPvkl27m2uW6zX?= =?utf-8?q?mW7PybJTLz1gUcWgPC8y84jgqaLX7C8HKtzzPHk8nrVUDyD18gNj1h7wvC6052DAO?= =?utf-8?q?9opXkLUScwkP1Ig83oLNYAswcS2yFIedBjQZAzO+RndTVaG1a7heIA8vYfUfINEAE?= =?utf-8?q?GQi86gGItnhOGH1lZsoOWo2bce4o9cx0hqxAdRCuNTbZ52bAajPiiNG1gTzFK0fDZ?= =?utf-8?q?IFOACIg069FAIxkIvV/HEgxghu87AfqUN5Bnt2/Y/NMXs/5/ELWoBz0H7pwYHO4mG?= =?utf-8?q?N+gnmvAaqkjgKEF9Z2ipxKYJVcwKOm2GnzaWV1FN8GvUqEDz4Q5jEIE1GZN9ZJ+Cg?= =?utf-8?q?vEEBYwEGYUgrqKFRxJO28/9NBbLZN/xI373AMtxU04JSCUmP7Xt60R3Y7EsT6S/4U?= =?utf-8?q?ey64sArF6ZSyia2VvbSCSXJo0WpNidqoHUhIkYGd2MdObM1sM38vKEaNk0xib//hs?= =?utf-8?q?tVJHHYr25f1EEyiJthjEilvOs0BHGKkh/DOZ0VMLyXGEhCfQd8ULstVm0r9trRkow?= =?utf-8?q?9xaSr9vB1VPHhWtEf8E2v4NMKdBkvxLYbw0E+H43LD2NBEil1FXhCR2gKkbG/DCXe?= =?utf-8?q?4sqoB4s3muN85ZxkQrszFz/Kre3fk7aI2Hk83dCZDBXstTzF4iCVGnwr0T7gh0hNJ?= =?utf-8?q?ADgX5MpleS/D8bFGbhCJ9XJ3EmG0ZHHeTU6qsFhe7WxbHUIYjYsYDlsNuNeDAWk3A?= =?utf-8?q?SnVCveUfepA3TZdkH1+PC6BRDWlXiv2s+Jeg0/UIehLANHXOCNiVihLhC42DmAEKY?= =?utf-8?q?M3/pKkCTbEftq//vQ/JUmcf3IDYFLuujCZIHXXpZEv+PXtp3GhOHkFt4ccL2l7N3V?= =?utf-8?q?ouep6S+tMhVJXhERhd2?= X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2021 10:29:51.9661 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-Network-Message-Id: 05b41701-ad47-41ac-04e9-08d8b164d626 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RRsPSLuBFX/DaNGvGjGsWs2fU4npddhMd1P2t/x9mbW10IQhF6rxo5nVnfvCqAEIMm0sbt11AEh5QBp/v66Uzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5525 X-OriginatorOrg: citrix.com Implement restrict, map resource and unmap resource helpers on FreeBSD. Signed-off-by: Roger Pau Monné --- Note the implementation is fairly similar to the Linux one, so could likely be merged with some ifdefary. Note sure it's worth it given that we already have a split file. --- tools/include/xen-sys/FreeBSD/privcmd.h | 14 +++++++ tools/libs/foreignmemory/freebsd.c | 51 +++++++++++++++++++++++++ tools/libs/foreignmemory/private.h | 2 +- 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/tools/include/xen-sys/FreeBSD/privcmd.h b/tools/include/xen-sys/FreeBSD/privcmd.h index cf1241f039..603aad67d5 100644 --- a/tools/include/xen-sys/FreeBSD/privcmd.h +++ b/tools/include/xen-sys/FreeBSD/privcmd.h @@ -56,9 +56,23 @@ typedef struct privcmd_mmap_entry { unsigned long npages; } privcmd_mmap_entry_t; +struct ioctl_privcmd_mmapresource { + domid_t dom; /* target domain */ + unsigned int type; /* type of resource to map */ + unsigned int id; /* type-specific resource identifier */ + unsigned int idx; /* the index of the initial frame to be mapped */ + unsigned long num; /* number of frames of the resource to be mapped */ + unsigned long addr; /* physical address to map into */ +}; +typedef struct ioctl_privcmd_mmapresource privcmd_mmap_resource_t; + #define IOCTL_PRIVCMD_HYPERCALL \ _IOWR('E', 0, struct ioctl_privcmd_hypercall) #define IOCTL_PRIVCMD_MMAPBATCH \ _IOWR('E', 1, struct ioctl_privcmd_mmapbatch) +#define IOCTL_PRIVCMD_MMAP_RESOURCE \ + _IOW('E', 2, struct ioctl_privcmd_mmapresource) +#define IOCTL_PRIVCMD_RESTRICT \ + _IOW('E', 4, domid_t) #endif /* !__XEN_PRIVCMD_H__ */ diff --git a/tools/libs/foreignmemory/freebsd.c b/tools/libs/foreignmemory/freebsd.c index 6e6bc4b11f..3d403a7cd0 100644 --- a/tools/libs/foreignmemory/freebsd.c +++ b/tools/libs/foreignmemory/freebsd.c @@ -95,6 +95,57 @@ int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem, return munmap(addr, num << PAGE_SHIFT); } +int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem, + domid_t domid) +{ + return ioctl(fmem->fd, IOCTL_PRIVCMD_RESTRICT, &domid); +} + +int osdep_xenforeignmemory_unmap_resource(xenforeignmemory_handle *fmem, + xenforeignmemory_resource_handle *fres) +{ + return fres ? munmap(fres->addr, fres->nr_frames << PAGE_SHIFT) : 0; +} + +int osdep_xenforeignmemory_map_resource(xenforeignmemory_handle *fmem, + xenforeignmemory_resource_handle *fres) +{ + privcmd_mmap_resource_t mr = { + .dom = fres->domid, + .type = fres->type, + .id = fres->id, + .idx = fres->frame, + .num = fres->nr_frames, + }; + int rc; + + fres->addr = mmap(fres->addr, fres->nr_frames << PAGE_SHIFT, + fres->prot, fres->flags | MAP_SHARED, fmem->fd, 0); + if ( fres->addr == MAP_FAILED ) + return -1; + + mr.addr = (uintptr_t)fres->addr; + + rc = ioctl(fmem->fd, IOCTL_PRIVCMD_MMAP_RESOURCE, &mr); + if ( rc ) + { + int saved_errno; + + if ( errno != ENOSYS ) + PERROR("mmap resource ioctl failed"); + else + errno = EOPNOTSUPP; + + saved_errno = errno; + osdep_xenforeignmemory_unmap_resource(fmem, fres); + errno = saved_errno; + + return -1; + } + + return 0; +} + /* * Local variables: * mode: C diff --git a/tools/libs/foreignmemory/private.h b/tools/libs/foreignmemory/private.h index 8f1bf081ed..ebd45c4785 100644 --- a/tools/libs/foreignmemory/private.h +++ b/tools/libs/foreignmemory/private.h @@ -54,7 +54,7 @@ struct xenforeignmemory_resource_handle { int flags; }; -#ifndef __linux__ +#if !defined(__linux__) && !defined(__FreeBSD__) static inline int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem, domid_t domid) { From patchwork Tue Jan 5 10:25:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 11998579 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49798C433DB for ; Tue, 5 Jan 2021 10:30:12 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E91282251F for ; Tue, 5 Jan 2021 10:30:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E91282251F Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.61786.108848 (Exim 4.92) (envelope-from ) id 1kwjbI-0007XL-5e; Tue, 05 Jan 2021 10:30:04 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 61786.108848; Tue, 05 Jan 2021 10:30:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kwjbI-0007Ww-12; Tue, 05 Jan 2021 10:30:04 +0000 Received: by outflank-mailman (input) for mailman id 61786; Tue, 05 Jan 2021 10:30:02 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kwjbG-0007Ju-PQ for xen-devel@lists.xenproject.org; Tue, 05 Jan 2021 10:30:02 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 2ade8597-f800-487b-91a5-7200571fcae2; Tue, 05 Jan 2021 10:30:00 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 2ade8597-f800-487b-91a5-7200571fcae2 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1609842600; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=FJu63OG18aHAckstuSp2KOaCMT2Ay5JhUaC8eG9KkS8=; b=XW50Lsl39Ud9kbV8Qvsttoy5EFSRSqA2+tm0jvSbv4rl9OM39/AbKHWP wNYvIoiHvDH6fuxeyP1jd6OlmOg/YMIb8S3Q5jYjbkHb9cXHN0PgJpAsm cA2r9GzGJQqAL2umt+gaMOiC4Z1mfgKI5+KAvLaRj0vMe3fjK1VkdbBKm U=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: jwD+1rUDWwkebDl13cSUoLm8PsZ3KrklF6hzdC1Y8IF7CT3R04n8uOHbA2K3JahrtMVDxD4Oax YVwZ0t5px5TW/aRJ152jdQv2xkga6lYV2IZNJLEFTOf9nrWGxCr4Uij/OcWOgUA+fXn6SGkWf0 SgeaQOTww4lpqZgUPM/beNdtTxvpdsVd42XaCTMMsOaYxj7XLbgkEeipazWzXNyGwrT4zNnhlL HXO6Lrg6A7dLxmkjPjb5RXdWWpDPoTSRfQqAXZyCUqb+JB/OUDBWxJ1RPQocFpapakVXfNX2mR MhY= X-SBRS: 5.2 X-MesageID: 34403725 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.78,476,1599537600"; d="scan'208";a="34403725" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hcJQqBoAyzsOM7l4Cqf26BsVyC+Tmljr5NLBbq4AAV7p3rCXu9mD+Wzx2B8b+p9G6+sa6712J8yTY2L5b9oJewKu7608Tv2lOcetl2LuuLX8C733CRNUNy5ZbbQlvmQEG6FTqNTw2OAjth/QmDUtnz9Ag8ktzc3npUg/31HkJRa1Tsyfm4U5kG/RiPV/K4vJglUYcltickgzGBmzjL/sRsR+rLtYV+svldi84vogncIFJD4JOIGGVXyR3Mfi/ouRCwIcaSd5YTyC8ifpp+PtzbAoPBjrjIiWyXt7QfygiMowbuPOkoh4XtZt6mIQkSwyZdM1XdCGG8bGZGGPUFXbDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PMEZP4C+IxP09H0PSYuAz/LURUqWwnKgCKWBqQ8xn4A=; b=jjJDZoVRrFpxECt3bjufCCAmbkvqcCkG+B04rNQ7OvWK79sOP1q7Pd9AfMGhg9pAZY4tHJrSMRyCJSeMxWUg9aYUckcEDuEHCx3d37spb8qm31ViiOhTuMzeFH1GugYX6Q1p/L+QPf1wMSVDOUWsPjK14gIjvGHlTAJYi7MtJ01UGmSAxdnTwWz+QaK4yJ5cGKcju+niNHW6ZEyg9UEKqRbO1ItTZUKnAU3t72PG2qOAO1LbVutXK4a+6hnRaWp3AqKXEUXhPVd+cOLMuCnzeUqVxOGQu4MTpSQYnMTcxAf6OBYHxe7pWjso7vBx2MJeeaocv2gZjFRyxH6fguFyzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PMEZP4C+IxP09H0PSYuAz/LURUqWwnKgCKWBqQ8xn4A=; b=LXkl5rsAzK7nc7E8MP+rkkHfCn2h3TR7ZyNIqVsJ80BQ2E7HufesnV3I2u98Wv/Ja2HeW/F9ySkt77u79J1fbrwo2S6CYL10ok84MWc0ZA4UYYmrhzBwvCOeh7Dk1IIuaN3fLMDDp3ZsynywhTBgaT+Q6x4yLxllbPvoOCgd3rw= From: Roger Pau Monne To: CC: Roger Pau Monne , Ian Jackson , Wei Liu Subject: [PATCH 2/2] libs/devicemodel: add dm_op support for FreeBSD Date: Tue, 5 Jan 2021 11:25:46 +0100 Message-ID: <20210105102546.88462-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210105102546.88462-1-roger.pau@citrix.com> References: <20210105102546.88462-1-roger.pau@citrix.com> X-ClientProxiedBy: PR0P264CA0169.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::13) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57bd063c-7532-40f1-52e8-08d8b164d916 X-MS-TrafficTypeDiagnostic: DS7PR03MB5525: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /V3poC5ZGw/Z1ZTgMoxr5VnHbDBiDokF2A4q1DSf/JxkC1isrUPtsHMNVx3e2UXvvq27x2lrU08oXZTQ4WxmHvKZ10LsXNfy2TwhLriIG9nNBDttjqPg+aWutfmwco82QCYgT+xV4Tj75uLlJdipRIKmG+tZLkWu9a9Zb34ZEZWbPr5/DlhY8SXx7At8+z6dZqMAVSYqQRYNgvn08/nvGqM09xpfuIgqK4mLrQ/G7hm9ft38owdErHUwdD9KobGCGk39Iy5AADIJDdks/nMDxjehu1A9tLOL/TEKpRqUc7dfhhRiJdnRWaFjf3px2Xp0+HjkU2DR7ylVSjWxyj0TBEslgpkFXedaRIp3OUOMPPFHg3ZProe8zXmCHJXjOKi2Tb/wfgeQ7r4QkJoiekc6fQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(366004)(396003)(39860400002)(136003)(66476007)(8676002)(16526019)(478600001)(6916009)(186003)(26005)(4326008)(2906002)(1076003)(6666004)(66946007)(5660300002)(66556008)(956004)(2616005)(36756003)(6496006)(8936002)(316002)(83380400001)(54906003)(6486002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?Bwfudz++u/RrWzXnzv5fSlY5rNH/Uy?= =?utf-8?q?/FGKG8+k9x+5hlXnQqy11DGHWq/ZBBK2iG7wZLTRuByL9xB4Ge9dC7jxU16yuNFmX?= =?utf-8?q?zeSXOtVl1Ou6FMYidwxRj2Abv78AmTWihXbzkJ+ad8B83MfGwNMJgvmHaJaplxrcT?= =?utf-8?q?Ep+UOi8JSwArYETg7KOOapcSSLd9VcEJTaqwciWL5y9LZITgYLTmMyL+6WfCbbDA0?= =?utf-8?q?OqNq++dhA2PgYmfHnXWwT5tOww2IDd3SivoHCcFj4i5zpeUPjv5I+4VBhyaCA1M0g?= =?utf-8?q?DCxR7/bQkrTmzV7I2a1CJCqB9KmZF2dC6ulX7Xne1mupqysA2Nl0eIaogEBzDZNzB?= =?utf-8?q?Ze9Ab/BYB9sQ/XH/6JAuNFgppM6JiX0OL/AonioTpgmR24LVRmn/oSkY5NsDoWahm?= =?utf-8?q?CfZTyLRjEStNMHpeCJMkVATvCtxaHu8qg3A/8SeEWBMyfUtlgnJ50aYjxecrIuA3e?= =?utf-8?q?YTXOSGj005fWZ0wmofp9QITz1znEKwZegDyZH/Co/APQlTi/QO89mhepgwX0nCdrp?= =?utf-8?q?TyM4pza61wsQa291lA1LvSEi6jxs+UTNwcuHYxT8HbsKBzdSYe0zclBK9KOr3rAA+?= =?utf-8?q?btDrdBVXxh3QxvfcUgIwTNqSVCyBtQzAvggWYw4ntMvhURzlTtbTNDD4SsvkpzDoQ?= =?utf-8?q?UdgWGiItbqi2+ibjNNbIHor/UWy6C/3uoSZ+kFXTn6UQu5wDzk4ctiGSfKsqrfV9r?= =?utf-8?q?BLVWpsFMLX88YLDMqKsDw2Q2tF/pUHXAjQmTxgag8hTBAwtmWXtKFOuQB/lW2OOo3?= =?utf-8?q?tW4xUdVfw/w+ftUoOVQsFcYNMmGIH7vZr9jLnSwocz3T4UoESv7XTdvWVA7dzb7T2?= =?utf-8?q?UKfYkx0+iAro7n/Sg1orIIh6wtZTAZetb45b02KpQ/EzrZpKcZXeNjHA60kpWUpUM?= =?utf-8?q?aYDBqs8P3pMVpxU+abwK7vhFVW2WqyA+/ghYaUh8+XPW9uUXzF0JJr9O79eC9hH/E?= =?utf-8?q?WoLjp4XB3N4UPUQlJJI?= X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2021 10:29:56.9561 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-Network-Message-Id: 57bd063c-7532-40f1-52e8-08d8b164d916 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 90wSnJ74Rg4yiVv/Zry9Rx8bsLoN0GvT8b2cfw5iZESIvX4dT5z2IQfxWZ93hEHXYhVayidn3oWAHeksj4leGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5525 X-OriginatorOrg: citrix.com The FreeBSD ioctls have the same fields has the Linux ones, so the same file can be shared between both OSes. No functional change for OSes different than FreeBSD. Signed-off-by: Roger Pau Monné --- tools/include/xen-sys/FreeBSD/privcmd.h | 15 +++++++++++++++ tools/libs/devicemodel/Makefile | 4 ++-- tools/libs/devicemodel/{linux.c => common.c} | 0 3 files changed, 17 insertions(+), 2 deletions(-) rename tools/libs/devicemodel/{linux.c => common.c} (100%) diff --git a/tools/include/xen-sys/FreeBSD/privcmd.h b/tools/include/xen-sys/FreeBSD/privcmd.h index 603aad67d5..649ad443c7 100644 --- a/tools/include/xen-sys/FreeBSD/privcmd.h +++ b/tools/include/xen-sys/FreeBSD/privcmd.h @@ -66,12 +66,27 @@ struct ioctl_privcmd_mmapresource { }; typedef struct ioctl_privcmd_mmapresource privcmd_mmap_resource_t; +struct privcmd_dmop_buf { + void *uptr; /* pointer to memory (in calling process) */ + size_t size; /* size of the buffer */ +}; +typedef struct privcmd_dmop_buf privcmd_dm_op_buf_t; + +struct ioctl_privcmd_dmop { + domid_t dom; /* target domain */ + unsigned int num; /* num of buffers */ + const struct privcmd_dmop_buf *ubufs; /* array of buffers */ +}; +typedef struct ioctl_privcmd_dmop privcmd_dm_op_t; + #define IOCTL_PRIVCMD_HYPERCALL \ _IOWR('E', 0, struct ioctl_privcmd_hypercall) #define IOCTL_PRIVCMD_MMAPBATCH \ _IOWR('E', 1, struct ioctl_privcmd_mmapbatch) #define IOCTL_PRIVCMD_MMAP_RESOURCE \ _IOW('E', 2, struct ioctl_privcmd_mmapresource) +#define IOCTL_PRIVCMD_DM_OP \ + _IOW('E', 3, struct ioctl_privcmd_dmop) #define IOCTL_PRIVCMD_RESTRICT \ _IOW('E', 4, domid_t) diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile index b67fc0fac1..500de7adc5 100644 --- a/tools/libs/devicemodel/Makefile +++ b/tools/libs/devicemodel/Makefile @@ -5,8 +5,8 @@ MAJOR = 1 MINOR = 3 SRCS-y += core.c -SRCS-$(CONFIG_Linux) += linux.c -SRCS-$(CONFIG_FreeBSD) += compat.c +SRCS-$(CONFIG_Linux) += common.c +SRCS-$(CONFIG_FreeBSD) += common.c SRCS-$(CONFIG_SunOS) += compat.c SRCS-$(CONFIG_NetBSD) += compat.c SRCS-$(CONFIG_MiniOS) += compat.c diff --git a/tools/libs/devicemodel/linux.c b/tools/libs/devicemodel/common.c similarity index 100% rename from tools/libs/devicemodel/linux.c rename to tools/libs/devicemodel/common.c