From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0074.outbound.protection.outlook.com [104.47.37.74]) by dpdk.org (Postfix) with ESMTP id 40EC78019 for ; Tue, 20 Sep 2016 14:42:31 +0200 (CEST) Received: from BN3PR0301CA0043.namprd03.prod.outlook.com (10.160.152.139) by DM5PR03MB2443.namprd03.prod.outlook.com (10.168.233.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Tue, 20 Sep 2016 12:42:26 +0000 Received: from BL2FFO11OLC007.protection.gbl (2a01:111:f400:7c09::117) by BN3PR0301CA0043.outlook.office365.com (2a01:111:e400:401e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5 via Frontend Transport; Tue, 20 Sep 2016 12:42:26 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; 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 BL2FFO11OLC007.mail.protection.outlook.com (10.173.160.142) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 12:42:26 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.87]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u8KCexsZ006559; Tue, 20 Sep 2016 05:42:23 -0700 From: Shreyansh Jain To: CC: , David Marchand , , Thomas Monjalon , Shreyansh Jain Date: Tue, 20 Sep 2016 18:11:19 +0530 Message-ID: <1474375296-26078-8-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1474375296-26078-1-git-send-email-shreyansh.jain@nxp.com> References: <1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com> <1474375296-26078-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131188489462023656; (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)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(86362001)(189998001)(8666005)(81166006)(11100500001)(19580405001)(586003)(575784001)(8676002)(97736004)(81156014)(305945005)(76176999)(50986999)(36756003)(50466002)(356003)(19580395003)(48376002)(77096005)(110136003)(8936002)(5890100001)(2906002)(47776003)(5003940100001)(7846002)(92566002)(626004)(50226002)(68736007)(2950100001)(33646002)(87936001)(105606002)(229853001)(2351001)(106466001)(104016004)(5660300001)(4326007)(85426001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2443; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC007; 1:rMlup8a469Grv63SLIyfA7vL9kgP6E6zbmMSD0mSjTgoSV+xcU+zrKpxuolbt59YEH7SoqVEDgitvzYTslLYLcFuTQn5142DkYOA5z/HtrslHG7sHRgbQcdcQRbvmWWVvrPx0nJNU/hQFGvyarxNsOukG1xnjZ8b+I8P/AirEYXtvNrreg6qcrp/RzTRITMfG/YEXc8FYjwlTFzdlySRQOT2/+Xgif3KahyfUuqtV8PP5C8rANrD31H17w5kswrh1LBqqj/qNKl56GHqiZRvyIZMl0exa8YOAN9rT0TAA84Eb34k1FsIlf3sD40ryYs/5yRyp95InBAlu3Y//O/JWd0qJ7uGehiRY5ivYM73XGmD70ScbbC9ZWWWdxRd5q9bBbpqDfLJLIj+XSIyLPe+43OEf1uUCCLWhjvoj+7I02jkVVSWBfg/Xsb5R4vflzSS54kAvqB7gUYYRrpa5G2X/ZLcb9BvBXhT7eXPtR25/fFCtGmok5vS4vMygyLph5gHX6m58+Wghllk1nmz59Tv8e8b0FHicmF5btd+y4i8zIkUjsfTC+7As1v3+zLk7wlN6IqQEQ2exzLLiymD50y9tu2F3JSrPfiLP6AZSfueRU3XIY8UEcEKvQn7rJFvlP4a2YfPkEv4a0f+F5nMRDhptbSiBoFbgKibWwz18etNizJC7oKESH1zFafj7oQbWggPqlNX1qm3f1E0KU40UMMCPlxX1wW81rej8LDLdLq85f8= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 2e6ce5db-dd4e-4a06-a48a-08d3e1539375 X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 2:lroBrp5OQBd/eg7QZ2zQhEtkxZh90/4SQ+i8UB7xZSm0OwX4fXEILYvHfHJ0w6bW/3AB0i8t2qRvj+gjYhzsnrLw4SR/UCVdN6cDGT57VytqQPUcL6Zm5jg4y6AxqynYzNuOL8l1EwyvDGYyn41nsa4ugA0tyrUePYP3zlr1aWo9FV6pAlWm41BGS7hhmP1c; 3:N3uX7XqE5NW3/5lSySKR6zkAnxQPvvbbo7dyHzWqyu/YAMQ51CQcYaUBmTC9CN2MLN3abXWus6yj4AaX84sZEONqOVpk+UUU7lR3vNm+2eHkQP4eatu4pZKZ1COSsrT2Qh+U1XVooPGd3u6vDxsSLiTtM8bKncdgveN7wlk3aEcLJ7qpaYt7dc6ZidIj/neE8nwVCMzQoMNJaAS9Rh6y5wFywthHi1kENwoEspMI9+w=; 25:l/+Rd/uO4JOuR3N3UAhpb1Zm89JwJfaqYaWe/BHTpZYizGEjrR7RExPnDUc6IVt3Uc7F4TbXU0oDsJq7OTBTXLGGeU1fbbgLqzIbbeNL8UoCcQl+NCaax1rpinDFtu3SG34GgsKN1WKJ30ouCPxWw1UWjjXJFfKGWmWa3sUGvAJn7FPfWD92H5MQ4VcuEHTNVT5aoVdYmFYtQs8rFeRyyKJzT90RUif5yh0fR8Z6nCTq/HkJ7DlhpBUnJR6VFP2pzacKS5eVl3wcFmpAmJbM/X8wY5L59nP9RLlAQO/Vky2T4Jej/aHQj2a8TO8Hc5b/y0tqOfR2Nv1MDvD5CmssogTRDKFExnHW8+CNTzSSGW+dMBsk5lGGFkbXNasJfEwr3NJtd3cXdybbMFRqWetVqdz23ALFnmM/tBL9cFatMOo= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM5PR03MB2443; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 31:PGeI/pGCW0bvQof8ZA/dFzHkB7dciw/Zoj/SslzJZZoejC2qfAPGShuezSPoVj5sZ2y7BSAmA8nrexIlbkcAG7fZ2f6q5WGQJWCHZLMTgzGHXDPjWMOxEzW0gBsvdxYPc6wuvne4kTWCgWxCn8/yRboA557ZSshgeRWS0L/yrv67ZuU3KWPM4bIcbAlNUa/IossYUilChLK+UlISAJm4iTKDaqag6yaqR/+El3DhDKg=; 4:dtzdrd/GKHkq4KXJEbmhIXsX9uyO8LijwWQptZQHPlaefUO9hv7xdyY2YkXo1eNuHhqCxM9eM2VmDP7k67ZYCHZ568umKa35Mma2ME3xyzsEWK+nrqk+ER4ooMVcHY0/0ZCgVjZz5KF9CbCFqrayaxMiqWKOKV1hwfAlPpKfefjaMW0pmGS6WY6DI0q+zVwbc/fPjRSonpx1ZflYTKoabQRx5HJ8W9Qv4KMlMO9TT4G6BnpRl+i1H614U/pn4NOVacMnXqJiovLx3U+bCTg4Yxsb6EwCTBoGaMd0dmh0LyBCZLvMsxEZo/njxbDjVkAYafgyf0Ogvh+ru9lBR41QKyCRfxy5ucNMG/B92MGHl+6CiberzdpN4vcekjO4KTX7FU7upyBHKvn3O9X0tmKG1iLLLGUWBlxnf9IBj6JCUbwhIMi54cMovf8wxr451uP6Gp2xXkfyv6jkiIMgLA0LtBXoevgHlXmwc1MSvCLgY4yi2n3jenEGvVjqNwCa4qn/PNTxx9YPax0nKw54UBrZcCE/jp8Cmfmkvy5J74HFYNY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13018025)(13024025)(13017025)(13015025)(13023025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:DM5PR03MB2443; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2443; X-Forefront-PRVS: 0071BFA85B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2443; 23:QiY7v4PuN7nSe3j+USGcXWQrAOHSKEIzuywzBizp0?= =?us-ascii?Q?jgXL8uPoFfU5uhsCDucCEaKMNujbhmceVW0VFsm1Fl6oTJcA4OKoyOGZV3kd?= =?us-ascii?Q?/AjRVMcC//uFdOFOe1z+zlX8k6y2kHYD/+5fB8EHPoj94w0pO5kCNI+IUFLZ?= =?us-ascii?Q?FBPDRNAe4vLlZoG5+Fcor6cYBeLPnEEiHAxl7a3HItHQkPWa4x+IaaYcUWQY?= =?us-ascii?Q?KD6VKsFaMNYmfPrm94UUSbd0uBW1AQNjZ1z7zJ458qrfELgDoVXDceneRt/i?= =?us-ascii?Q?xIV0ZK1NF7mVJWMoN+2hJ0LBDUlX1kG4qHKp6NQ8o64HncOtcaVFZqAX0yA2?= =?us-ascii?Q?YE1+D93gv7IE1Gguh5M/ovzs2LcoWedv1V3S9/bWHrT5/+TWIPrAZoNdPDJb?= =?us-ascii?Q?gmcRiXVM58SJApi1kZGvcfeeHIZL864MLcqQ+xFiyCyR242sKgbEzdN8iTJc?= =?us-ascii?Q?Oyu5wKxFAQdihv/oC1XfAMMmXifiQuT+sUO57mKNwe/XtCebixUFiKTC7CtI?= =?us-ascii?Q?RJhboKgcAcKRPK7gjNGdfVHhEkSqkEB1IZd/0TNqUcSiqtYoYssaLzigg2Oi?= =?us-ascii?Q?FryytwOsnCAPDOzmf8kqYZq3q1pphby9qXTrws5I1yiSZUCJx9VmatVwMaOD?= =?us-ascii?Q?pu7G12nlMJgww/zX+1v9E1bfNOLM63WJfVa6u2D7EWaLJEJxF1j0bSR4cm/5?= =?us-ascii?Q?s+0xcsSUbmviGUSH4+8OwaOCzebRbm2S46EEWv+YvZpvnCJJRBX7FgGvF4vJ?= =?us-ascii?Q?2q9b6dJdXTxyJI269Q5gjTAgPtJlnGzEk+h0oaSLxQ61ScnPAHPXBSpIM7M/?= =?us-ascii?Q?PPWhBj9KwL5CIw7f+5xOadLA06iVUmXo2lqP0g2Jo3l+87jNsYSvAqYqyfYc?= =?us-ascii?Q?RxpGtLwXMYKDjvUJjoHu+Fq2FcqbP3WMAp3PeyUaN00EbgloAprt5Q26foxW?= =?us-ascii?Q?W/CAx0dyjvOzQlkzpgdoGqT0k99y+xJOBZ2YrA+ygP33LlBX59bGvCKdMAml?= =?us-ascii?Q?ayGeUqcA0FeA7Ny7EHbKDcAVgf9ZTT/M9z8n5dZwxCKNTJbGIxYqqmq2xJb3?= =?us-ascii?Q?aG3io8KpAOwKRaBt5GmLsTDC9U0ozcutb2ur5DWZR53HbJvoGrpbvgf/4zcg?= =?us-ascii?Q?MxD9yXh2EfiYW/N5tSZDEnApAIT2108NtM/CVomp1Frx1Rd6m7UT+5UxJWqr?= =?us-ascii?Q?tSLiAD1wNwIZORgwzeUzSXlkqiLTXbrE3KCY4+XMC2YdKkeo3YeRx+rzA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 6:B/O2L/ozNm0JcUJME3uOTPtjLtH0e3Ha7JgXIeMxFzKZD99VIE/a9AH+k572xIHdwkwUSp5O4UYCKlzXQ3Vz5y9i6+HsExooT3vrlLuETZAQGmh4q4zwUNJzU+STj4jfwKwXovzls4LF90D5to6SOKPgeArvJzwS6xuL+kyyP0WGaRjhwfRaiqupff6IjjEjWR2SW2Iewzf7uN3Tq+UwpzIgltj2hpOF5MUZYO3xb/1egTBFxljFE37asrfua84jIy+xE1Sqm2l0p5zQR+9/2HTceP08gy4EFrDAICdphrI=; 5:zoEXVL2of/UyN4LbACzGc58OQ6qqbk6Xykj7FOD2HY13kamg/QcK2g+g/XAKy2AB1Pu1HUbe28hx59DjAwEfda5N/AeHmfDD7bRZPbKJ2Dm4vs9CVMh+j+XE1CFXYp7mknkkui9mRwd1tAOoql6ngi1ptDr1KXGxd8KS6z7wjOs=; 24:BxQZcf2FDf8YjhBaCEz04QCJwOz2u5anSsuIKsWQE7JwhGVemIraTHfEhqTOTmlcnniOGjrLHJ/IHMbu5xFBz3cce261xn5GVZffDTJcjyQ=; 7:r6ozzPfkXqN73b9HFkrqfaE4c4JOOlxbuF65H3ismdkPrbQB/obt5fBIf598J9vWMmuy6U+7BWrJdZr4bUkxtlYwZlhuC+3Es8aq4KDk4dKsWixLwXrJOOjVjjiUUT7DEqtAqLra+nnxgGd+gPUvykcuuswDKoksA52MlXt69gWRwjkfik7BVbs1dKdb8jin+3USh+wVlJaMY+O5c7cp0NV8aLJ341RAFi1+0Qo5c5AIcFEHUvmLiDUJs+vP1uoRk8CK2MJzJ5ZxtG4eUKsJsTdZoUA9fmuidQGxOLvKZU6iij02BhbJCCoVZ8mnEiTx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 12:42:26.0151 (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: DM5PR03MB2443 Subject: [dpdk-dev] [PATCH v11 07/24] driver: probe/remove common wrappers for PCI drivers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Sep 2016 12:42:31 -0000 From: David Marchand crypto and ethdev drivers aligned to PCI probe/remove. These wrappers are mapped directly to PCI resources. Existing handlers for init/uninit can be easily reused for this. Signed-off-by: David Marchand Signed-off-by: Shreyansh Jain --- lib/librte_cryptodev/rte_cryptodev.c | 17 +++++++++-------- lib/librte_cryptodev/rte_cryptodev_pmd.h | 12 ++++++++++++ lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++++ lib/librte_ether/rte_ethdev.c | 14 +++++++------- lib/librte_ether/rte_ethdev.h | 13 +++++++++++++ lib/librte_ether/rte_ether_version.map | 9 +++++++++ 6 files changed, 57 insertions(+), 15 deletions(-) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index 144c205..caa9db8 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -428,9 +428,9 @@ rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size, return cryptodev; } -static int -rte_cryptodev_init(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev) +int +rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev) { struct rte_cryptodev_driver *cryptodrv; struct rte_cryptodev *cryptodev; @@ -489,8 +489,8 @@ rte_cryptodev_init(struct rte_pci_driver *pci_drv, return -ENXIO; } -static int -rte_cryptodev_uninit(struct rte_pci_device *pci_dev) +int +rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev) { const struct rte_cryptodev_driver *cryptodrv; struct rte_cryptodev *cryptodev; @@ -538,15 +538,16 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *cryptodrv, { /* Call crypto device initialization directly if device is virtual */ if (type == PMD_VDEV) - return rte_cryptodev_init((struct rte_pci_driver *)cryptodrv, + return rte_cryptodev_pci_probe( + (struct rte_pci_driver *)cryptodrv, NULL); /* * Register PCI driver for physical device intialisation during * PCI probing */ - cryptodrv->pci_drv.probe = rte_cryptodev_init; - cryptodrv->pci_drv.remove = rte_cryptodev_uninit; + cryptodrv->pci_drv.probe = rte_cryptodev_pci_probe; + cryptodrv->pci_drv.remove = rte_cryptodev_pci_remove; rte_eal_pci_register(&cryptodrv->pci_drv); diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h index 9a9174f..450a376 100644 --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h @@ -536,6 +536,18 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *crypto_drv, void rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev, enum rte_cryptodev_event_type event); +/** + * Wrapper for use by pci drivers as a .probe function to attach to a crypto + * interface. + */ +int rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev); + +/** + * Wrapper for use by pci drivers as a .remove function to detach a crypto + * interface. + */ +int rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev); #ifdef __cplusplus } diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index a08fd20..1fc0d57 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -39,3 +39,10 @@ DPDK_16.07 { rte_cryptodev_parse_vdev_init_params; } DPDK_16.04; + +DPDK_16.11 { + global: + + rte_cryptodev_pci_probe; + rte_cryptodev_pci_remove; +} DPDK_16.07; diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index aa41a0c..42d7d5e 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -244,9 +244,9 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev) return 0; } -static int -rte_eth_dev_init(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev) +int +rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev) { struct eth_driver *eth_drv; struct rte_eth_dev *eth_dev; @@ -298,8 +298,8 @@ rte_eth_dev_init(struct rte_pci_driver *pci_drv, return diag; } -static int -rte_eth_dev_uninit(struct rte_pci_device *pci_dev) +int +rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev) { const struct eth_driver *eth_drv; struct rte_eth_dev *eth_dev; @@ -356,8 +356,8 @@ rte_eth_dev_uninit(struct rte_pci_device *pci_dev) void rte_eth_driver_register(struct eth_driver *eth_drv) { - eth_drv->pci_drv.probe = rte_eth_dev_init; - eth_drv->pci_drv.remove = rte_eth_dev_uninit; + eth_drv->pci_drv.probe = rte_eth_dev_pci_probe; + eth_drv->pci_drv.remove = rte_eth_dev_pci_remove; rte_eal_pci_register(ð_drv->pci_drv); } diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 96575e8..83079e9 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -4372,6 +4372,19 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id); int rte_eth_dev_get_name_by_port(uint8_t port_id, char *name); +/** + * Wrapper for use by pci drivers as a .probe function to attach to a ethdev + * interface. + */ +int rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev); + +/** + * Wrapper for use by pci drivers as a .remove function to detach a ethdev + * interface. + */ +int rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev); + #ifdef __cplusplus } #endif diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index 45ddf44..17e7448 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -138,4 +138,13 @@ DPDK_16.07 { rte_eth_dev_get_name_by_port; rte_eth_dev_get_port_by_name; rte_eth_xstats_get_names; + } DPDK_16.04; + +DPDK_16.11 { + global: + + rte_eth_dev_pci_probe; + rte_eth_dev_pci_remove; + +} DPDK_16.07; -- 2.7.4