From: Stephen Hemminger Date: Wed, 10 Jun 2015 22:06:24 +0000 (-0700) Subject: ethdev: export function to check port validity X-Git-Tag: spdx-start~8674 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=393775d5c0d35fb74e139c0b4ec9cc2304b70581;p=dpdk.git ethdev: export function to check port validity The function rte_eth_dev_is_valid_port is good way to have all drivers using same function and solves several hotplug related bugs from drivers not checking attached flag. Signed-off-by: Stephen Hemminger Acked-by: Bruce Richardson --- diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 748e2be97c..94104ceba9 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -409,7 +409,7 @@ rte_eth_driver_register(struct eth_driver *eth_drv) rte_eal_pci_register(ð_drv->pci_drv); } -static int +int rte_eth_dev_is_valid_port(uint8_t port_id) { if (port_id >= RTE_MAX_ETHPORTS || diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 8b04edc31f..c901a2cbd9 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1929,6 +1929,17 @@ extern int rte_eth_tx_queue_setup(uint8_t port_id, uint16_t tx_queue_id, */ extern int rte_eth_dev_socket_id(uint8_t port_id); +/* + * Check if port_id of device is attached + * + * @param port_id + * The port identifier of the Ethernet device + * @return + * - 0 if port is out of range or not attached + * - 1 if device is attached + */ +extern int rte_eth_dev_is_valid_port(uint8_t port_id); + /* * Allocate mbuf from mempool, setup the DMA physical address * and then start RX for specified queue of a port. It is used diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index b7e4d56592..23cfee9b91 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -114,6 +114,7 @@ DPDK_2.1 { rte_eth_dev_get_eeprom_length; rte_eth_dev_get_reg_info; rte_eth_dev_get_reg_length; + rte_eth_dev_is_valid_port; rte_eth_dev_set_eeprom; rte_eth_dev_set_mc_addr_list; rte_eth_timesync_disable;