From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0047.outbound.protection.outlook.com [104.47.33.47]) by dpdk.org (Postfix) with ESMTP id 45694FAC5 for ; Fri, 3 Mar 2017 08:15:18 +0100 (CET) Received: from BN6PR03CA0040.namprd03.prod.outlook.com (10.175.124.26) by CY4PR03MB2952.namprd03.prod.outlook.com (10.175.116.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Fri, 3 Mar 2017 07:15:17 +0000 Received: from BN1BFFO11FD041.protection.gbl (2a01:111:f400:7c10::1:131) by BN6PR03CA0040.outlook.office365.com (2603:10b6:404:10c::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12 via Frontend Transport; Fri, 3 Mar 2017 07:15:16 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD041.mail.protection.outlook.com (10.58.144.104) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.933.11 via Frontend Transport; Fri, 3 Mar 2017 07:15:16 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v237D50k005035; Fri, 3 Mar 2017 00:15:13 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Fri, 3 Mar 2017 18:17:00 +0530 Message-ID: <1488545223-25739-44-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1488545223-25739-1-git-send-email-hemant.agrawal@nxp.com> References: <1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com> <1488545223-25739-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131329989169804893; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(336005)(39860400002)(39410400002)(39840400002)(39450400003)(39850400002)(39380400002)(39400400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(104016004)(626004)(50466002)(48376002)(4326008)(105606002)(53936002)(86362001)(2351001)(54906002)(85426001)(575784001)(38730400002)(5003940100001)(110136004)(106466001)(81166006)(8676002)(92566002)(33646002)(2950100002)(8656002)(189998001)(6916009)(36756003)(77096006)(50986999)(76176999)(2906002)(6666003)(356003)(305945005)(50226002)(8936002)(47776003)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2952; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD041; 1:X0hET6+mnLTmgahPC2BKoJEphm0YdG9QJ+HqrzMnyRR9DVnicJR+wBjrT2VEgoukqZhNdCNXpbVwxfSVPJkighV+8VmH+ok4sEphlMGwhFs1kx9VHpLl4v6ESesPupi7Z0wvGLTuOIF428kUa9M1gxc6p1BGBNOrE6/Xb50kUfkaof9FCKMSiMOW4DOjh48MLc9AO64HgymQXkQ7MUQqqruTBdQZCW9Mg6gndvtiN2/fDQaiPRoald2xRXli0VKDSGTCcHldXDboGlhDj6vv6vA6m9miPtmfS8yLEzggG7R1NQ7WCVjYQ8CpcAd6G+b/mFwAxK7atKyDFj3yHIAUNLSWqGScGn1pie184riQv6gtsDSU7LI4DLhvQDeLXFCyyCj+uUw2Brfxgyl0lo2hoKY3siCVKPDGEI7uEl0MBV2iIs++pKlEtg1EHBv+7KRstxjuqyES4aGy2kjCb23Koj7YzmIvH/WDOmskQUlF/yKovuJsUHSKzTOBA1PJ+Xp0xQUJOqH7t4vSbJ1eAjYXn/io1z9Yu9D16+2+W40/4TE1M4mdI76h82erGfDesMEprhqPuIYE7zg5dJcIe6OzysNYQcLGqPVVLDw3MnK3jMHJte5UbiiXfjmHtj85xPIrJYRFf1mDBBgIuaUHnK7gxw== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: f2957b5f-da20-499a-14fc-08d462050b47 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2952; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952; 3:Af9vT2ACTCg4a6Kis/LzzyU0iZCG1U7xSlqIEmW9kSqYNwRFiuWvV8E+N6tlVgB8jBqvWhkvSihexcxetUn2vxuXAqFLi5hjLc703hUgVyYEYFHX+KvL31fKXc1OkHWlnkk9toqwX09ijruUohJ6qkERiJlSN+2ilGyzAIjVSx7thK1PEGmucTNV5yj8LZYjR89xXnWqg2fct8CCBqiFVFUaBB3EPm9PgZoiMdDVgNGyUeSudF+JGruHg1hobR7eaQj/3c9P55q3lu2wEk39KDFtofDDU3RcCeQLanzFzr70ph653I70Vus6E9xipdQgg+/7Kc4I4AXogLjPm0DjH/TW2Bx5z04HutXlQd8RNofCYPqrXEN75ff37wOo2Kpu; 25:AcnAgPJrFIlqRTH385+lYgrNoroM6dSZG2MGLP/be2VK7L5hKUp7+eeOa2tKlDJbKCZsJ+R/ygxSC30u3AEz45aHETDzsoSkHuaGA3GDtPx7zEiw1bCWM5OclOvrwwa+Q3dZ9S//CIuRLZn/yadEegCOJDNJSrJ2kRm04FSVWOpOvZ+qhiuC+dICMhtl7SRCt8Hp0v51vWo4ai45AmCuWs4gSO27xnsdnZHCz8RvLX58jz1tDHe9tpBFm/PTYS0g64Smd9K2yYN3vzKyVei5nmAk4gJop6IP3dmcky0HbrDQ9t14+4sbO2mubZKMzGMa7bWR/C543zs1nAG1FLlWfA+bW+yNbAQJF5ohqVkiecnRqGfK5v3zV1ed/Kg2s6PtCDBVeZnta2U3sPqW4v9w5yDF4UyC7AU9uluHmnYdD/qlsCQ7FXblBd59NdmyF49UsbuMiOH8vYjgnAPTYryP7A== X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952; 31:GYokrIfO+Z0w8yEp4k70j4yg9utUU51fZz6/DdVQxutI9bZ4MFIqc+PfIVTYvExU5ENCOGOqq/sKCCAisKdB87DeIpZuozpV/1WFXtU9TlzengOHr+/YQCjcZb55yduYdPsgNe1xNbrNK54WLfNKsQQgMCjFpNauHz7rR5PGEp96EhkBwpvWf78hcTcOA5yoCbWHIJvBN82hYj5/55Z7uiYdsWysrlAzDCyditao8iE0iFTZWRbQJg0Ojxna5ikGtOPaDIoWyYX0QjMQPpUdPPGYoa8TqYAIu6JhZd896YQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(8121501046)(5005006)(13015025)(13017025)(13023025)(13024025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123561025)(20161123565025)(20161123563025)(20161123559025); SRVR:CY4PR03MB2952; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2952; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952; 4:tR9xX7WzqW9UPoGON40bsBrfxDtnjZwoOkpWdmDOY54i5/idwcNAUhsxvm1P+r8v7g8LAPAWDrUzjo1zdkQefd+Juy63za5aLIGjWPHk+a8luFgieuQ/C2QwaMdKZ827ooRhEdn9TebfHCXAG2lk7QiqJZFVA8eTqCBCLdrUBjS4Ozm+BcvYKNawnEfcKA5/ST5tJl9bJFbKata50ALQhf7OIyaglj/whembxShuaNtVVG0o6iGBz6BMtqlfL5wP+wKvRm6JlijJS+IICNnkvqSSUewmFDDTQqoeAiolEd9B4bi2cJ3SvyqgKnfL73On68E0LXnhDA6m3hXBKDIynvmQRoR1+Tx58lp2WnAbfK0PONS3Z0e3JNl1od05J9wjw5jVlXsLZC89JUl6eUx+GkWcbLBmOpL3DjNOe04GitNNQCEISJOrEWgBilf6JZMPnMYuIKmFZJ134wTTzpOkAAVoG1WOBkk2vZnTpccOtF/Sky9IfZkrceCd6GRYL8hG4AG8pVdEW/7d3R+gXLZ7MsLGwpVdc05+O9asmuu8Ab38+25QrcgXBEHBEtcqQUmOy8D+k+G5T300mCzKvXWJxzn/zA4YEatO0pDR3Cp2joTh3fS9COQXEZcimKm8hadDq8NtqlnfqdClmZnoT92LfRS+cbQuA2TFEgawytUsAdQDNUSYAMjSOgH6QWe72blZZT2rOhewx9tGU4WTNJokrwbTnPvStCwLihxwqTahDkpMoPZ2E5cA70lUYPAEuHPT X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2952; 23:rnVC2yid5UwDAFo0oMxiomvi3ZKZrga+Au7nqVQsz?= =?us-ascii?Q?5OBs5FKXv8E1Dbq4ts68q/zWpkhNL88TsySEkS8ksGpnHO0bSjGgUoApSEAn?= =?us-ascii?Q?H3TQTcYWS9wSEwgxTXQe1l/cyKqYVwAJpuTByjleK8J0XCT8Ia21mJLaU0BT?= =?us-ascii?Q?12X7ivhvLdOCnbqxANwD/mbW9QIuSRIenHdIWUd+9Zws9kS8DFPznwZER/ZS?= =?us-ascii?Q?KaLv/VlK0EN4PVHKIRZpyyYfPRwaRE3H/sIdwwsEZk5H0l8L5zUkqWDrAZny?= =?us-ascii?Q?o4oEtRqw0sK7iG4GyjozBLyFoeIOpUofUYk1+HihJvfpFPAqbtsHN6WF42CC?= =?us-ascii?Q?wROaMgz3CW4hA5cKLfn19kgf8nFtwfbSegRDiFcqMeSNpqHyQR2z3JmJESDp?= =?us-ascii?Q?HMeDA910k1kKUNogDw8P7oYH9ZifUd4YPuPQZK+5yoEQGNFOXl1kyPTjODwe?= =?us-ascii?Q?4Q0F8nCsVMxAmisbkE45ZQhXJ3/72WW9AWZGmx8NpVBuoPwXC/nPYo8s7Ngu?= =?us-ascii?Q?gcYcZFHat/HyYgO8sAv1ADl4BQO5mM9ABqkMspJ8R8xxNG1U3s5rI0Y/F/EO?= =?us-ascii?Q?X0EG3qGFlOc5bENe8dSdjsNQL8f5HLq5V4FM3jLHZ+Z4mCWRvGp6LpZo486m?= =?us-ascii?Q?r7MdrwJ2Sr+t3lYy6+WxJ9mGCZLElAz3iyIALGit3F3fiWwPAmgrJn6iFzZ8?= =?us-ascii?Q?wyPfXuzbkrlmqTm85CD2v10NXktbvrne8SVFQ14gCFomoLvkTLIyRh8GuiEY?= =?us-ascii?Q?2RXNpcmaTOMntN64d5o5YQO1OkVTkDEXaRia1a5q9CdqWYXb2uXmabnapMBc?= =?us-ascii?Q?W+BHOLoKH+2tkYOdL5aAE5RUKOIUdXoJuNHrgnxGiRwDELCZM227beDZuL1k?= =?us-ascii?Q?qNBKlHxDxfAFF4lpJJkpYshT/WkcrzV86gUsP1XT2icK/DFR0wNg6rrf4m+9?= =?us-ascii?Q?eTgWSfF8/Zm0xBGwqw0u49mbUahTs6ZJkTbcn+axFrE/Eqma4Bh2pYqpDhBY?= =?us-ascii?Q?TpM3Zl1mHBo2wPaFBGzgzm2nzql/aqBvMv3Q5Wp4DKgHoCk+mOla3VCkKsel?= =?us-ascii?Q?jHoawheIaNkWfIujKaeHzz20N1CbysVqWAiGSyzvc5BfGoACALS/tjJkFPJr?= =?us-ascii?Q?pR9zTyW9etLak4n3V9eziG4DKMi+OAHNszQHCYtHuCzOvsCdc/UcLbkaAa3T?= =?us-ascii?Q?jZAv2cpMfxV+R/Lhg0h4lbKwMOgtiAANuAeH2BWcDL9ahbTejD6IveKtxvST?= =?us-ascii?Q?4JIHyC+4c23NtMJ4As0z2DSS6KIfPp50BOHy+ZxhIUFgL30u52db6YLUxeex?= =?us-ascii?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952; 6:nwV7g7y2xD7rdbvOam6awh1O7AIKBYcknqotGMONUC0nUYZGF2HpdnbzhLwvEIr2Wtm2RT3xv8H6ZGS/wpps02MQBzg4LmAOJ2v2ljW1GB/kRpmt3DYuE/e2qqiVTJsxoYLn6rF1MNDodR/azeqQEEMAkcJMATXNe2d6D2B9CpssFUQFcvoEXgxGNEHTOL/10cI3WR592hAJBmdHYnafo5isoUUZy2DEOgbgtitmCegCC5LbxCoYM16o+nNlZ+Id6bpyrCZ+YE6gN73rLUeG84xvSY/kZ/piJe2x3pZV4pvTeHLVTlVLuRuJ2lA7912aPc8Lv23HJg3xn+IcQdfO16JPgOloItmruZpgZrz9ZZUBelPY+qX4Q+b2DvK/lEWGmix7cXYIMGtZ08qTaneonYdKOTVQRCzs7O9ucoaqKpI=; 5:DiLUNaC717Ykj5Mw06m0PxrJ6ZE0uruYFYL+Es5BNcr4E+MeHFeVZsaSRz5dp8NvWpet81X7J0cesFayaON2di9KO8+hmr/ReXYdhv9G0agdZQvGB9i5hEI0Crl7P+c9gbcCsll/e40MkcuYvpszMGkv+mk1DoM35A3c2TrapMaA0pbrsYJYmU94VcLLOKTB; 24:Y34hOEphsZgIOZPmxYq3IiEXIf36v7t6ywn4g3FmKwc6xIE5C0wuCvuqVwPwoRK5OqLUATXZQXShVnwDgaWp8/UXJGcungWs9aGh6AemzyE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2952; 7:Vpd2b1ir0XwW92ZuQmxcXYOCHFDPnkXl+3Ws+1+EzgOa/AQlavLNZiV7lovM7N4cfj1m7bt9bzuTcm8Ac1cZU01okwxQf4IO1m5qFZEnh4Z/z072L1PbA6V9aTutPBnFKbkhNekwLWxZH5UiDBeWMDTO6Ni7/VTlNZpgWhm/JQ7FgHLhHRKp0vxZxl9NHmaSHNM6cXMPblfI4OBP7e+2WOYuxU+WLyp5qDBthZJI3c/5514j8wogRWb7Xa7bRggt5pKsWCMTusF1qrZybkK4ryakEyTGvbMeLBO3p8NEcgKYKjiMxn62Q4I7KL5CTVnot8EX61fJ47LiIg4eXcf/dA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 07:15:16.7776 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2952 Subject: [dpdk-dev] [PATCHv8 43/46] bus/fslmc: add support for DMA mapping for ARM SMMU X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Mar 2017 07:15:18 -0000 Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/fslmc_vfio.c | 96 +++++++++++++++++++++++++++++ drivers/bus/fslmc/fslmc_vfio.h | 1 + drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 + 3 files changed, 98 insertions(+) diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index fc017fc..5f1d1b7 100644 --- a/drivers/bus/fslmc/fslmc_vfio.c +++ b/drivers/bus/fslmc/fslmc_vfio.c @@ -76,8 +76,10 @@ static struct fslmc_vfio_group vfio_groups[VFIO_MAX_GRP]; static struct fslmc_vfio_container vfio_containers[VFIO_MAX_CONTAINERS]; static int container_device_fd; +static uint32_t *msi_intr_vaddr; void *(*rte_mcp_ptr_list); static uint32_t mcp_id; +static int is_dma_done; static int vfio_connect_container(struct fslmc_vfio_group *vfio_group) { @@ -147,6 +149,35 @@ static int vfio_connect_container(struct fslmc_vfio_group *vfio_group) return 0; } +static int vfio_map_irq_region(struct fslmc_vfio_group *group) +{ + int ret; + unsigned long *vaddr = NULL; + struct vfio_iommu_type1_dma_map map = { + .argsz = sizeof(map), + .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, + .vaddr = 0x6030000, + .iova = 0x6030000, + .size = 0x1000, + }; + + vaddr = (unsigned long *)mmap(NULL, 0x1000, PROT_WRITE | + PROT_READ, MAP_SHARED, container_device_fd, 0x6030000); + if (vaddr == MAP_FAILED) { + FSLMC_VFIO_LOG(ERR, "Unable to map region (errno = %d)", errno); + return -errno; + } + + msi_intr_vaddr = (uint32_t *)((char *)(vaddr) + 64); + map.vaddr = (unsigned long)vaddr; + ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA, &map); + if (ret == 0) + return 0; + + FSLMC_VFIO_LOG(ERR, "VFIO_IOMMU_MAP_DMA fails (errno = %d)", errno); + return -errno; +} + int vfio_dmamap_mem_region(uint64_t vaddr, uint64_t iova, uint64_t size) @@ -170,6 +201,71 @@ int vfio_dmamap_mem_region(uint64_t vaddr, return 0; } +int rte_fslmc_vfio_dmamap(void) +{ + int ret; + struct fslmc_vfio_group *group; + struct vfio_iommu_type1_dma_map dma_map = { + .argsz = sizeof(struct vfio_iommu_type1_dma_map), + .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, + }; + + int i; + const struct rte_memseg *memseg; + + if (is_dma_done) + return 0; + is_dma_done = 1; + + for (i = 0; i < RTE_MAX_MEMSEG; i++) { + memseg = rte_eal_get_physmem_layout(); + if (memseg == NULL) { + FSLMC_VFIO_LOG(ERR, "Cannot get physical layout."); + return -ENODEV; + } + + if (memseg[i].addr == NULL && memseg[i].len == 0) + break; + + dma_map.size = memseg[i].len; + dma_map.vaddr = memseg[i].addr_64; +#ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA + dma_map.iova = memseg[i].phys_addr; +#else + dma_map.iova = dma_map.vaddr; +#endif + + /* SET DMA MAP for IOMMU */ + group = &vfio_groups[0]; + + if (!group->container) { + FSLMC_VFIO_LOG(ERR, "Container is not connected "); + return -1; + } + + FSLMC_VFIO_LOG(DEBUG, "-->Initial SHM Virtual ADDR %llX", + dma_map.vaddr); + FSLMC_VFIO_LOG(DEBUG, "-----> DMA size 0x%llX\n", dma_map.size); + ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA, + &dma_map); + if (ret) { + FSLMC_VFIO_LOG(ERR, "VFIO_IOMMU_MAP_DMA API" + "(errno = %d)", errno); + return ret; + } + FSLMC_VFIO_LOG(DEBUG, "-----> dma_map.vaddr = 0x%llX", + dma_map.vaddr); + } + + /* TODO - This is a W.A. as VFIO currently does not add the mapping of + * the interrupt region to SMMU. This should be removed once the + * support is added in the Kernel. + */ + vfio_map_irq_region(group); + + return 0; +} + static int64_t vfio_map_mcp_obj(struct fslmc_vfio_group *group, char *mcp_obj) { int64_t v_addr = (int64_t)MAP_FAILED; diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h index 80c6869..53dd0b7 100644 --- a/drivers/bus/fslmc/fslmc_vfio.h +++ b/drivers/bus/fslmc/fslmc_vfio.h @@ -70,6 +70,7 @@ int vfio_dmamap_mem_region( int fslmc_vfio_setup_group(void); int fslmc_vfio_process_group(void); +int rte_fslmc_vfio_dmamap(void); /* create dpio device */ int dpaa2_create_dpio_device(struct fslmc_vfio_device *vdev, diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map index 0c3f3c2..e357435 100644 --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map @@ -40,6 +40,7 @@ DPDK_17.05 { qbman_swp_send_multiple; rte_fslmc_driver_register; rte_fslmc_driver_unregister; + rte_fslmc_vfio_dmamap; rte_mcp_ptr_list; local: *; -- 1.9.1