src/dpdk/lib/librte_ethdev/ethdev_pci.h
static inline int
rte_eth_dev_pci_generic_remove(struct rte_pci_device *pci_dev,
	eth_dev_pci_callback_t dev_uninit)
{
	struct rte_eth_dev *eth_dev;
	int ret;

	eth_dev = rte_eth_dev_allocated(pci_dev->device.name);
	if (!eth_dev)
		return 0;

	if (dev_uninit) {
		ret = dev_uninit(eth_dev);
		if (ret)
			return ret;
	}

	rte_eth_dev_release_port(eth_dev);
	return 0;
}
/**
 * @internal
 * Wrapper for use by pci drivers in a .remove function to detach a ethdev
 * interface.
 */
@internal
Wrapper for use by pci drivers in a .remove function to detach a ethdev
interface.
@internal Wrapper for use by pci drivers in a . remove function to detach a ethdev interface .
static inline int
rte_eth_dev_pci_generic_remove(struct rte_pci_device *pci_dev,
	eth_dev_pci_callback_t dev_uninit)
{
	struct rte_eth_dev *eth_dev;
	int ret;
	eth_dev = rte_eth_dev_allocated(pci_dev->device.name);
	if (!eth_dev)
		return 0;
	if (dev_uninit) {
		ret = dev_uninit(eth_dev);
		if (ret)
			return ret;
	}
	rte_eth_dev_release_port(eth_dev);
	return 0;
}
static inline int rte_eth_dev_pci_generic_remove ( struct rte_pci_device * pci_dev , eth_dev_pci_callback_t dev_uninit ) { struct rte_eth_dev * eth_dev ; int ret ; eth_dev = rte_eth_dev_allocated ( pci_dev -> device . name ) ; if ( ! eth_dev ) return 0 ; if ( dev_uninit ) { ret = dev_uninit ( eth_dev ) ; if ( ret ) return ret ; } rte_eth_dev_release_port ( eth_dev ) ; return 0 ; }
@internal
 Wrapper for use by pci drivers in a .remove function to detach a ethdev
 interface.
@internal Wrapper for use by pci drivers in a . remove function to detach a ethdev interface .