From 942661004cde7677b9a5899e27a57ea883931052 Mon Sep 17 00:00:00 2001 From: Ami Sabo Date: Thu, 2 Mar 2017 11:00:41 +0200 Subject: [PATCH] ethdev: export secondary attach function Today eth_dev_attach_secondary is defined as static and can only be called by pci drivers. However, the functionality is also required for non-pci drivers - so the patch export the function. Signed-off-by: Ami Sabo --- lib/librte_ether/rte_ethdev.c | 6 +++--- lib/librte_ether/rte_ethdev.h | 13 +++++++++++++ lib/librte_ether/rte_ether_version.map | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index fa6ae44121..37e8aa8031 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -247,8 +247,8 @@ rte_eth_dev_allocate(const char *name) * makes sure that the same device would have the same port id both * in the primary and secondary process. */ -static struct rte_eth_dev * -eth_dev_attach_secondary(const char *name) +struct rte_eth_dev * +rte_eth_dev_attach_secondary(const char *name) { uint8_t i; struct rte_eth_dev *eth_dev; @@ -310,7 +310,7 @@ rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, if (eth_dev->data->dev_private == NULL) rte_panic("Cannot allocate memzone for private port data\n"); } else { - eth_dev = eth_dev_attach_secondary(ethdev_name); + eth_dev = rte_eth_dev_attach_secondary(ethdev_name); if (eth_dev == NULL) { /* * if we failed to attach a device, it means the diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index d07253874e..2a2595bef0 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1802,6 +1802,19 @@ struct rte_eth_dev *rte_eth_dev_allocated(const char *name); */ struct rte_eth_dev *rte_eth_dev_allocate(const char *name); +/** + * @internal + * Attach to the ethdev already initialized by the primary + * process. + * + * @param name Ethernet device's name. + * @return + * - Success: Slot in the rte_dev_devices array for attached + * device. + * - Error: Null pointer. + */ +struct rte_eth_dev *rte_eth_dev_attach_secondary(const char *name); + /** * @internal * Release the specified ethdev port. diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index 0ea3856949..66fd5bba45 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -158,6 +158,7 @@ DPDK_17.02 { DPDK_17.05 { global: + rte_eth_dev_attach_secondary; rte_eth_find_next; } DPDK_17.02; -- 2.20.1