drivers/net: do not use ethdev driver
Signed-off-by: Jan Blunck <jblunck@infradead.org> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
dcd5c8112b
commit
fdf91e0f2f
@ -37,6 +37,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_memcpy.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_memzone.h>
|
||||
@ -1076,17 +1077,37 @@ eth_avp_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
eth_avp_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
struct rte_eth_dev *eth_dev;
|
||||
int ret;
|
||||
|
||||
static struct eth_driver rte_avp_pmd = {
|
||||
{
|
||||
.id_table = pci_id_avp_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_avp_dev_init,
|
||||
.eth_dev_uninit = eth_avp_dev_uninit,
|
||||
.dev_private_size = sizeof(struct avp_adapter),
|
||||
eth_dev = rte_eth_dev_pci_allocate(pci_dev,
|
||||
sizeof(struct avp_adapter));
|
||||
if (eth_dev == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = eth_avp_dev_init(eth_dev);
|
||||
if (ret)
|
||||
rte_eth_dev_pci_release(eth_dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
eth_avp_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev,
|
||||
eth_avp_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_avp_pmd = {
|
||||
.id_table = pci_id_avp_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_avp_pci_probe,
|
||||
.remove = eth_avp_pci_remove,
|
||||
};
|
||||
|
||||
static int
|
||||
@ -2287,5 +2308,5 @@ avp_dev_stats_reset(struct rte_eth_dev *eth_dev)
|
||||
}
|
||||
}
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_avp, rte_avp_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_avp, rte_avp_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_avp, pci_id_avp_map);
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "bnx2x_rxtx.h"
|
||||
|
||||
#include <rte_dev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
|
||||
/*
|
||||
* The set of PCI devices this driver supports
|
||||
@ -627,34 +628,57 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
|
||||
return bnx2x_common_dev_init(eth_dev, 1);
|
||||
}
|
||||
|
||||
static struct eth_driver rte_bnx2x_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_bnx2x_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_bnx2x_dev_init,
|
||||
.dev_private_size = sizeof(struct bnx2x_softc),
|
||||
static struct rte_pci_driver rte_bnx2x_pmd;
|
||||
static struct rte_pci_driver rte_bnx2xvf_pmd;
|
||||
|
||||
static int eth_bnx2x_pci_probe(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
struct rte_eth_dev *eth_dev;
|
||||
int ret;
|
||||
|
||||
eth_dev = rte_eth_dev_pci_allocate(pci_dev, sizeof(struct bnx2x_softc));
|
||||
if (!eth_dev)
|
||||
return -ENOMEM;
|
||||
|
||||
if (pci_drv == &rte_bnx2x_pmd)
|
||||
ret = eth_bnx2x_dev_init(eth_dev);
|
||||
else if (pci_drv == &rte_bnx2xvf_pmd)
|
||||
ret = eth_bnx2xvf_dev_init(eth_dev);
|
||||
else
|
||||
ret = -EINVAL;
|
||||
|
||||
if (ret)
|
||||
rte_eth_dev_pci_release(eth_dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int eth_bnx2x_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_bnx2x_pmd = {
|
||||
.id_table = pci_id_bnx2x_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_bnx2x_pci_probe,
|
||||
.remove = eth_bnx2x_pci_remove,
|
||||
};
|
||||
|
||||
/*
|
||||
* virtual function driver struct
|
||||
*/
|
||||
static struct eth_driver rte_bnx2xvf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_bnx2xvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_bnx2xvf_dev_init,
|
||||
.dev_private_size = sizeof(struct bnx2x_softc),
|
||||
static struct rte_pci_driver rte_bnx2xvf_pmd = {
|
||||
.id_table = pci_id_bnx2xvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_bnx2x_pci_probe,
|
||||
.remove = eth_bnx2x_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_bnx2x, rte_bnx2x_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_bnx2x, rte_bnx2x_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_bnx2x, pci_id_bnx2x_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_bnx2x, "* igb_uio | uio_pci_generic | vfio");
|
||||
RTE_PMD_REGISTER_PCI(net_bnx2xvf, rte_bnx2xvf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_bnx2xvf, rte_bnx2xvf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_bnx2xvf, pci_id_bnx2xvf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_bnx2xvf, "* igb_uio | vfio");
|
||||
|
@ -19,7 +19,7 @@ ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,
|
||||
const struct rte_memzone *mz;
|
||||
|
||||
snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d",
|
||||
dev->driver->pci_drv.driver.name, ring_name,
|
||||
dev->device->driver->name, ring_name,
|
||||
dev->data->port_id, queue_id);
|
||||
|
||||
mz = rte_memzone_lookup(z_name);
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
#include <rte_dev.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_cycles.h>
|
||||
|
||||
@ -1075,6 +1076,8 @@ init_err_disable:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int bnxt_dev_uninit(struct rte_eth_dev *eth_dev);
|
||||
|
||||
static int
|
||||
bnxt_dev_init(struct rte_eth_dev *eth_dev)
|
||||
{
|
||||
@ -1167,7 +1170,7 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
|
||||
error_free:
|
||||
eth_dev->driver->eth_dev_uninit(eth_dev);
|
||||
bnxt_dev_uninit(eth_dev);
|
||||
error:
|
||||
return rc;
|
||||
}
|
||||
@ -1196,19 +1199,26 @@ bnxt_dev_uninit(struct rte_eth_dev *eth_dev) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
static struct eth_driver bnxt_rte_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = bnxt_pci_id_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING |
|
||||
RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove
|
||||
},
|
||||
.eth_dev_init = bnxt_dev_init,
|
||||
.eth_dev_uninit = bnxt_dev_uninit,
|
||||
.dev_private_size = sizeof(struct bnxt),
|
||||
static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct bnxt),
|
||||
bnxt_dev_init);
|
||||
}
|
||||
|
||||
static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, bnxt_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver bnxt_rte_pmd = {
|
||||
.id_table = bnxt_pci_id_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING |
|
||||
RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = bnxt_pci_probe,
|
||||
.remove = bnxt_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_bnxt, bnxt_rte_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_bnxt, bnxt_rte_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_bnxt, bnxt_pci_id_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_bnxt, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -57,6 +57,7 @@
|
||||
#include <rte_alarm.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_random.h>
|
||||
@ -1039,17 +1040,25 @@ out_free_adapter:
|
||||
return err;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_cxgbe_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = cxgb4_pci_tbl,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_cxgbe_dev_init,
|
||||
.dev_private_size = sizeof(struct port_info),
|
||||
static int eth_cxgbe_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct port_info), eth_cxgbe_dev_init);
|
||||
}
|
||||
|
||||
static int eth_cxgbe_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_cxgbe_pmd = {
|
||||
.id_table = cxgb4_pci_tbl,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_cxgbe_pci_probe,
|
||||
.remove = eth_cxgbe_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_cxgbe, rte_cxgbe_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_cxgbe, rte_cxgbe_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_cxgbe, cxgb4_pci_tbl);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_cxgbe, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -1641,7 +1641,7 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,
|
||||
iq->size = cxgbe_roundup(iq->size, 16);
|
||||
|
||||
snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d",
|
||||
eth_dev->driver->pci_drv.driver.name,
|
||||
eth_dev->data->drv_name,
|
||||
fwevtq ? "fwq_ring" : "rx_ring",
|
||||
eth_dev->data->port_id, queue_id);
|
||||
snprintf(z_name_sw, sizeof(z_name_sw), "%s_sw_ring", z_name);
|
||||
@ -1694,7 +1694,7 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,
|
||||
fl->size = cxgbe_roundup(fl->size, 8);
|
||||
|
||||
snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d",
|
||||
eth_dev->driver->pci_drv.driver.name,
|
||||
eth_dev->data->drv_name,
|
||||
fwevtq ? "fwq_ring" : "fl_ring",
|
||||
eth_dev->data->port_id, queue_id);
|
||||
snprintf(z_name_sw, sizeof(z_name_sw), "%s_sw_ring", z_name);
|
||||
@ -1890,7 +1890,7 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,
|
||||
nentries = txq->q.size + s->stat_len / sizeof(struct tx_desc);
|
||||
|
||||
snprintf(z_name, sizeof(z_name), "%s_%s_%d_%d",
|
||||
eth_dev->driver->pci_drv.driver.name, "tx_ring",
|
||||
eth_dev->data->drv_name, "tx_ring",
|
||||
eth_dev->data->port_id, queue_id);
|
||||
snprintf(z_name_sw, sizeof(z_name_sw), "%s_sw_ring", z_name);
|
||||
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <rte_pci.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_eal.h>
|
||||
@ -417,16 +418,23 @@ eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_em_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_em_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_em_dev_init,
|
||||
.eth_dev_uninit = eth_em_dev_uninit,
|
||||
.dev_private_size = sizeof(struct e1000_adapter),
|
||||
static int eth_em_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct e1000_adapter), eth_em_dev_init);
|
||||
}
|
||||
|
||||
static int eth_em_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_em_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_em_pmd = {
|
||||
.id_table = pci_id_em_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_em_pci_probe,
|
||||
.remove = eth_em_pci_remove,
|
||||
};
|
||||
|
||||
static int
|
||||
@ -1857,6 +1865,6 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_em, rte_em_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_em, rte_em_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_e1000_em, pci_id_em_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_e1000_em, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <rte_pci.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_eal.h>
|
||||
@ -1088,31 +1089,46 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_igb_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_igb_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_igb_dev_init,
|
||||
.eth_dev_uninit = eth_igb_dev_uninit,
|
||||
.dev_private_size = sizeof(struct e1000_adapter),
|
||||
static int eth_igb_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct e1000_adapter), eth_igb_dev_init);
|
||||
}
|
||||
|
||||
static int eth_igb_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_igb_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_igb_pmd = {
|
||||
.id_table = pci_id_igb_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_igb_pci_probe,
|
||||
.remove = eth_igb_pci_remove,
|
||||
};
|
||||
|
||||
|
||||
static int eth_igbvf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct e1000_adapter), eth_igbvf_dev_init);
|
||||
}
|
||||
|
||||
static int eth_igbvf_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_igbvf_dev_uninit);
|
||||
}
|
||||
|
||||
/*
|
||||
* virtual function driver struct
|
||||
*/
|
||||
static struct eth_driver rte_igbvf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_igbvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_igbvf_dev_init,
|
||||
.eth_dev_uninit = eth_igbvf_dev_uninit,
|
||||
.dev_private_size = sizeof(struct e1000_adapter),
|
||||
static struct rte_pci_driver rte_igbvf_pmd = {
|
||||
.id_table = pci_id_igbvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_igbvf_pci_probe,
|
||||
.remove = eth_igbvf_pci_remove,
|
||||
};
|
||||
|
||||
static void
|
||||
@ -5309,9 +5325,9 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
|
||||
E1000_WRITE_FLUSH(hw);
|
||||
}
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_igb, rte_igb_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_igb, rte_igb_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_e1000_igb, pci_id_igb_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, "* igb_uio | uio_pci_generic | vfio");
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_igb_vf, rte_igbvf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_e1000_igb_vf, rte_igbvf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_e1000_igb_vf, pci_id_igbvf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb_vf, "* igb_uio | vfio");
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_tcp.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_dev.h>
|
||||
@ -1776,17 +1777,25 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
return sent_idx;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_ena_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_ena_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_ena_dev_init,
|
||||
.dev_private_size = sizeof(struct ena_adapter),
|
||||
static int eth_ena_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct ena_adapter), eth_ena_dev_init);
|
||||
}
|
||||
|
||||
static int eth_ena_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_ena_pmd = {
|
||||
.id_table = pci_id_ena_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_ena_pci_probe,
|
||||
.remove = eth_ena_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_ena, rte_ena_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_ena, rte_ena_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_ena, pci_id_ena_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_ena, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include <rte_dev.h>
|
||||
#include <rte_pci.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_string_fns.h>
|
||||
|
||||
#include "vnic_intr.h"
|
||||
@ -629,17 +630,25 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
|
||||
return enic_probe(enic);
|
||||
}
|
||||
|
||||
static struct eth_driver rte_enic_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_enic_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_enicpmd_dev_init,
|
||||
.dev_private_size = sizeof(struct enic),
|
||||
static int eth_enic_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct enic),
|
||||
eth_enicpmd_dev_init);
|
||||
}
|
||||
|
||||
static int eth_enic_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_enic_pmd = {
|
||||
.id_table = pci_id_enic_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_enic_pci_probe,
|
||||
.remove = eth_enic_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_enic, rte_enic_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_enic, rte_enic_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_enic, pci_id_enic_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_enic, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -32,6 +32,7 @@
|
||||
*/
|
||||
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_string_fns.h>
|
||||
@ -3112,6 +3113,18 @@ eth_fm10k_dev_uninit(struct rte_eth_dev *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int eth_fm10k_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct fm10k_adapter), eth_fm10k_dev_init);
|
||||
}
|
||||
|
||||
static int eth_fm10k_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_fm10k_dev_uninit);
|
||||
}
|
||||
|
||||
/*
|
||||
* The set of PCI devices this driver supports. This driver will enable both PF
|
||||
* and SRIOV-VF devices.
|
||||
@ -3123,18 +3136,13 @@ static const struct rte_pci_id pci_id_fm10k_map[] = {
|
||||
{ .vendor_id = 0, /* sentinel */ },
|
||||
};
|
||||
|
||||
static struct eth_driver rte_pmd_fm10k = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_fm10k_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_fm10k_dev_init,
|
||||
.eth_dev_uninit = eth_fm10k_dev_uninit,
|
||||
.dev_private_size = sizeof(struct fm10k_adapter),
|
||||
static struct rte_pci_driver rte_pmd_fm10k = {
|
||||
.id_table = pci_id_fm10k_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_fm10k_pci_probe,
|
||||
.remove = eth_fm10k_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_fm10k, rte_pmd_fm10k.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_fm10k, rte_pmd_fm10k);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_fm10k, pci_id_fm10k_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_fm10k, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -45,6 +45,7 @@
|
||||
#include <rte_pci.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_memzone.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_memcpy.h>
|
||||
@ -642,16 +643,23 @@ static const struct rte_i40e_xstats_name_off rte_i40e_txq_prio_strings[] = {
|
||||
#define I40E_NB_TXQ_PRIO_XSTATS (sizeof(rte_i40e_txq_prio_strings) / \
|
||||
sizeof(rte_i40e_txq_prio_strings[0]))
|
||||
|
||||
static struct eth_driver rte_i40e_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_i40e_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_i40e_dev_init,
|
||||
.eth_dev_uninit = eth_i40e_dev_uninit,
|
||||
.dev_private_size = sizeof(struct i40e_adapter),
|
||||
static int eth_i40e_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct i40e_adapter), eth_i40e_dev_init);
|
||||
}
|
||||
|
||||
static int eth_i40e_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_i40e_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_i40e_pmd = {
|
||||
.id_table = pci_id_i40e_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_i40e_pci_probe,
|
||||
.remove = eth_i40e_pci_remove,
|
||||
};
|
||||
|
||||
static inline int
|
||||
@ -682,7 +690,7 @@ rte_i40e_dev_atomic_write_link_status(struct rte_eth_dev *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_i40e, rte_i40e_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_i40e, rte_i40e_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_i40e, pci_id_i40e_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_i40e, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
||||
@ -10689,10 +10697,10 @@ i40e_filter_restore(struct i40e_pf *pf)
|
||||
}
|
||||
|
||||
static bool
|
||||
is_device_supported(struct rte_eth_dev *dev, struct eth_driver *drv)
|
||||
is_device_supported(struct rte_eth_dev *dev, struct rte_pci_driver *drv)
|
||||
{
|
||||
if (strcmp(dev->driver->pci_drv.driver.name,
|
||||
drv->pci_drv.driver.name))
|
||||
if (strcmp(dev->data->drv_name,
|
||||
drv->driver.name))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include <rte_alarm.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_dev.h>
|
||||
@ -1543,22 +1544,30 @@ i40evf_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int eth_i40evf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct i40e_adapter), i40evf_dev_init);
|
||||
}
|
||||
|
||||
static int eth_i40evf_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, i40evf_dev_uninit);
|
||||
}
|
||||
|
||||
/*
|
||||
* virtual function driver struct
|
||||
*/
|
||||
static struct eth_driver rte_i40evf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_i40evf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = i40evf_dev_init,
|
||||
.eth_dev_uninit = i40evf_dev_uninit,
|
||||
.dev_private_size = sizeof(struct i40e_adapter),
|
||||
static struct rte_pci_driver rte_i40evf_pmd = {
|
||||
.id_table = pci_id_i40evf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_i40evf_pci_probe,
|
||||
.remove = eth_i40evf_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_i40e_vf, rte_i40evf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_i40e_vf, rte_i40evf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_i40e_vf, pci_id_i40evf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_i40e_vf, "* igb_uio | vfio");
|
||||
|
||||
|
@ -257,7 +257,7 @@ i40e_fdir_setup(struct i40e_pf *pf)
|
||||
|
||||
/* reserve memory for the fdir programming packet */
|
||||
snprintf(z_name, sizeof(z_name), "%s_%s_%d",
|
||||
eth_dev->driver->pci_drv.driver.name,
|
||||
eth_dev->data->drv_name,
|
||||
I40E_FDIR_MZ_NAME,
|
||||
eth_dev->data->port_id);
|
||||
mz = i40e_memzone_reserve(z_name, I40E_FDIR_PKT_LEN, SOCKET_ID_ANY);
|
||||
|
@ -56,6 +56,7 @@
|
||||
#include <rte_alarm.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_random.h>
|
||||
@ -247,7 +248,7 @@ static void ixgbe_set_default_mac_addr(struct rte_eth_dev *dev,
|
||||
struct ether_addr *mac_addr);
|
||||
static void ixgbe_dcb_init(struct ixgbe_hw *hw, struct ixgbe_dcb_config *dcb_config);
|
||||
static bool is_device_supported(struct rte_eth_dev *dev,
|
||||
struct eth_driver *drv);
|
||||
struct rte_pci_driver *drv);
|
||||
|
||||
/* For Virtual Function support */
|
||||
static int eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev);
|
||||
@ -1768,31 +1769,45 @@ eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_ixgbe_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_ixgbe_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_ixgbe_dev_init,
|
||||
.eth_dev_uninit = eth_ixgbe_dev_uninit,
|
||||
.dev_private_size = sizeof(struct ixgbe_adapter),
|
||||
static int eth_ixgbe_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct ixgbe_adapter), eth_ixgbe_dev_init);
|
||||
}
|
||||
|
||||
static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_ixgbe_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_ixgbe_pmd = {
|
||||
.id_table = pci_id_ixgbe_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_ixgbe_pci_probe,
|
||||
.remove = eth_ixgbe_pci_remove,
|
||||
};
|
||||
|
||||
static int eth_ixgbevf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct ixgbe_adapter), eth_ixgbevf_dev_init);
|
||||
}
|
||||
|
||||
static int eth_ixgbevf_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_ixgbevf_dev_uninit);
|
||||
}
|
||||
|
||||
/*
|
||||
* virtual function driver struct
|
||||
*/
|
||||
static struct eth_driver rte_ixgbevf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_ixgbevf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_ixgbevf_dev_init,
|
||||
.eth_dev_uninit = eth_ixgbevf_dev_uninit,
|
||||
.dev_private_size = sizeof(struct ixgbe_adapter),
|
||||
static struct rte_pci_driver rte_ixgbevf_pmd = {
|
||||
.id_table = pci_id_ixgbevf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_ixgbevf_pci_probe,
|
||||
.remove = eth_ixgbevf_pci_remove,
|
||||
};
|
||||
|
||||
static int
|
||||
@ -4383,10 +4398,9 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)
|
||||
}
|
||||
|
||||
static bool
|
||||
is_device_supported(struct rte_eth_dev *dev, struct eth_driver *drv)
|
||||
is_device_supported(struct rte_eth_dev *dev, struct rte_pci_driver *drv)
|
||||
{
|
||||
if (strcmp(dev->driver->pci_drv.driver.name,
|
||||
drv->pci_drv.driver.name))
|
||||
if (strcmp(dev->data->drv_name, drv->driver.name))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -8774,9 +8788,9 @@ rte_pmd_ixgbe_set_tc_bw_alloc(uint8_t port,
|
||||
return 0;
|
||||
}
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe, "* igb_uio | uio_pci_generic | vfio");
|
||||
RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe_vf, pci_id_ixgbevf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe_vf, "* igb_uio | vfio");
|
||||
|
@ -32,6 +32,7 @@
|
||||
*/
|
||||
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_cycles.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_alarm.h>
|
||||
@ -2011,24 +2012,45 @@ lio_eth_dev_init(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
lio_eth_dev_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
struct rte_eth_dev *eth_dev;
|
||||
int ret;
|
||||
|
||||
eth_dev = rte_eth_dev_pci_allocate(pci_dev,
|
||||
sizeof(struct lio_device));
|
||||
if (eth_dev == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = lio_eth_dev_init(eth_dev);
|
||||
if (ret)
|
||||
rte_eth_dev_pci_release(eth_dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
lio_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev,
|
||||
lio_eth_dev_uninit);
|
||||
}
|
||||
|
||||
/* Set of PCI devices this driver supports */
|
||||
static const struct rte_pci_id pci_id_liovf_map[] = {
|
||||
{ RTE_PCI_DEVICE(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_VF_VID) },
|
||||
{ .vendor_id = 0, /* sentinel */ }
|
||||
};
|
||||
|
||||
static struct eth_driver rte_liovf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_liovf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = lio_eth_dev_init,
|
||||
.eth_dev_uninit = lio_eth_dev_uninit,
|
||||
.dev_private_size = sizeof(struct lio_device),
|
||||
static struct rte_pci_driver rte_liovf_pmd = {
|
||||
.id_table = pci_id_liovf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = lio_eth_dev_pci_probe,
|
||||
.remove = lio_eth_dev_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_liovf, rte_liovf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_liovf, rte_liovf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_liovf, pci_id_liovf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_liovf, "* igb_uio | vfio");
|
||||
|
@ -60,6 +60,7 @@
|
||||
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_dev.h>
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_errno.h>
|
||||
@ -5477,7 +5478,7 @@ free_kvlist:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct eth_driver mlx4_driver;
|
||||
static struct rte_pci_driver mlx4_driver;
|
||||
|
||||
/**
|
||||
* DPDK callback to register a PCI device.
|
||||
@ -5509,7 +5510,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
|
||||
int i;
|
||||
|
||||
(void)pci_drv;
|
||||
assert(pci_drv == &mlx4_driver.pci_drv);
|
||||
assert(pci_drv == &mlx4_driver);
|
||||
/* Get mlx4_dev[] index. */
|
||||
idx = mlx4_dev_idx(&pci_dev->addr);
|
||||
if (idx == -1) {
|
||||
@ -5808,7 +5809,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
|
||||
|
||||
rte_eth_copy_pci_info(eth_dev, pci_dev);
|
||||
|
||||
eth_dev->driver = &mlx4_driver;
|
||||
eth_dev->device->driver = &mlx4_driver.driver;
|
||||
|
||||
priv->dev = eth_dev;
|
||||
eth_dev->dev_ops = &mlx4_dev_ops;
|
||||
@ -5872,16 +5873,13 @@ static const struct rte_pci_id mlx4_pci_id_map[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct eth_driver mlx4_driver = {
|
||||
.pci_drv = {
|
||||
.driver = {
|
||||
.name = MLX4_DRIVER_NAME
|
||||
},
|
||||
.id_table = mlx4_pci_id_map,
|
||||
.probe = mlx4_pci_probe,
|
||||
.drv_flags = RTE_PCI_DRV_INTR_LSC,
|
||||
static struct rte_pci_driver mlx4_driver = {
|
||||
.driver = {
|
||||
.name = MLX4_DRIVER_NAME
|
||||
},
|
||||
.dev_private_size = sizeof(struct priv)
|
||||
.id_table = mlx4_pci_id_map,
|
||||
.probe = mlx4_pci_probe,
|
||||
.drv_flags = RTE_PCI_DRV_INTR_LSC,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -5900,7 +5898,7 @@ rte_mlx4_pmd_init(void)
|
||||
*/
|
||||
setenv("RDMAV_HUGEPAGES_SAFE", "1", 1);
|
||||
ibv_fork_init();
|
||||
rte_eal_pci_register(&mlx4_driver.pci_drv);
|
||||
rte_eal_pci_register(&mlx4_driver);
|
||||
}
|
||||
|
||||
RTE_PMD_EXPORT_NAME(net_mlx4, __COUNTER__);
|
||||
|
@ -56,6 +56,7 @@
|
||||
#endif
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_pci.h>
|
||||
#include <rte_common.h>
|
||||
#include <rte_kvargs.h>
|
||||
@ -365,7 +366,7 @@ mlx5_args(struct priv *priv, struct rte_devargs *devargs)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver mlx5_driver;
|
||||
static struct rte_pci_driver mlx5_driver;
|
||||
|
||||
/**
|
||||
* DPDK callback to register a PCI device.
|
||||
@ -396,7 +397,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
|
||||
int i;
|
||||
|
||||
(void)pci_drv;
|
||||
assert(pci_drv == &mlx5_driver.pci_drv);
|
||||
assert(pci_drv == &mlx5_driver);
|
||||
/* Get mlx5_dev[] index. */
|
||||
idx = mlx5_dev_idx(&pci_dev->addr);
|
||||
if (idx == -1) {
|
||||
@ -731,7 +732,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
|
||||
|
||||
eth_dev->device = &pci_dev->device;
|
||||
rte_eth_copy_pci_info(eth_dev, pci_dev);
|
||||
eth_dev->driver = &mlx5_driver;
|
||||
eth_dev->device->driver = &mlx5_driver.driver;
|
||||
priv->dev = eth_dev;
|
||||
eth_dev->dev_ops = &mlx5_dev_ops;
|
||||
|
||||
@ -813,16 +814,13 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct eth_driver mlx5_driver = {
|
||||
.pci_drv = {
|
||||
.driver = {
|
||||
.name = MLX5_DRIVER_NAME
|
||||
},
|
||||
.id_table = mlx5_pci_id_map,
|
||||
.probe = mlx5_pci_probe,
|
||||
.drv_flags = RTE_PCI_DRV_INTR_LSC,
|
||||
static struct rte_pci_driver mlx5_driver = {
|
||||
.driver = {
|
||||
.name = MLX5_DRIVER_NAME
|
||||
},
|
||||
.dev_private_size = sizeof(struct priv)
|
||||
.id_table = mlx5_pci_id_map,
|
||||
.probe = mlx5_pci_probe,
|
||||
.drv_flags = RTE_PCI_DRV_INTR_LSC,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -840,7 +838,7 @@ rte_mlx5_pmd_init(void)
|
||||
*/
|
||||
setenv("RDMAV_HUGEPAGES_SAFE", "1", 1);
|
||||
ibv_fork_init();
|
||||
rte_eal_pci_register(&mlx5_driver.pci_drv);
|
||||
rte_eal_pci_register(&mlx5_driver);
|
||||
}
|
||||
|
||||
RTE_PMD_EXPORT_NAME(net_mlx5, __COUNTER__);
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include <rte_log.h>
|
||||
#include <rte_debug.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_dev.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_malloc.h>
|
||||
@ -2580,18 +2581,26 @@ static const struct rte_pci_id pci_id_nfp_net_map[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct eth_driver rte_nfp_net_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_nfp_net_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = nfp_net_init,
|
||||
.dev_private_size = sizeof(struct nfp_net_adapter),
|
||||
static int eth_nfp_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct nfp_net_adapter), nfp_net_init);
|
||||
}
|
||||
|
||||
static int eth_nfp_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_nfp_net_pmd = {
|
||||
.id_table = pci_id_nfp_net_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = eth_nfp_pci_probe,
|
||||
.remove = eth_nfp_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_nfp, rte_nfp_net_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_nfp, rte_nfp_net_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_nfp, pci_id_nfp_net_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_nfp, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
||||
|
@ -2382,35 +2382,47 @@ static const struct rte_pci_id pci_id_qede_map[] = {
|
||||
{.vendor_id = 0,}
|
||||
};
|
||||
|
||||
static struct eth_driver rte_qedevf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_qedevf_map,
|
||||
.drv_flags =
|
||||
RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = qedevf_eth_dev_init,
|
||||
.eth_dev_uninit = qedevf_eth_dev_uninit,
|
||||
.dev_private_size = sizeof(struct qede_dev),
|
||||
static int qedevf_eth_dev_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct qede_dev), qedevf_eth_dev_init);
|
||||
}
|
||||
|
||||
static int qedevf_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, qedevf_eth_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_qedevf_pmd = {
|
||||
.id_table = pci_id_qedevf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = qedevf_eth_dev_pci_probe,
|
||||
.remove = qedevf_eth_dev_pci_remove,
|
||||
};
|
||||
|
||||
static struct eth_driver rte_qede_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_qede_map,
|
||||
.drv_flags =
|
||||
RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = qede_eth_dev_init,
|
||||
.eth_dev_uninit = qede_eth_dev_uninit,
|
||||
.dev_private_size = sizeof(struct qede_dev),
|
||||
static int qede_eth_dev_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct qede_dev), qede_eth_dev_init);
|
||||
}
|
||||
|
||||
static int qede_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, qede_eth_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_qede_pmd = {
|
||||
.id_table = pci_id_qede_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = qede_eth_dev_pci_probe,
|
||||
.remove = qede_eth_dev_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_qede, rte_qede_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_qede, rte_qede_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_qede, pci_id_qede_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_qede, "* igb_uio | uio_pci_generic | vfio");
|
||||
RTE_PMD_REGISTER_PCI(net_qede_vf, rte_qedevf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_qede_vf, rte_qedevf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_qede_vf, pci_id_qedevf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_qede_vf, "* igb_uio | vfio");
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_dev.h>
|
||||
#include <rte_ip.h>
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
#include <rte_dev.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_pci.h>
|
||||
#include <rte_errno.h>
|
||||
|
||||
@ -1596,21 +1597,28 @@ static const struct rte_pci_id pci_id_sfc_efx_map[] = {
|
||||
{ .vendor_id = 0 /* sentinel */ }
|
||||
};
|
||||
|
||||
static struct eth_driver sfc_efx_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_sfc_efx_map,
|
||||
.drv_flags =
|
||||
RTE_PCI_DRV_INTR_LSC |
|
||||
RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = sfc_eth_dev_init,
|
||||
.eth_dev_uninit = sfc_eth_dev_uninit,
|
||||
.dev_private_size = sizeof(struct sfc_adapter),
|
||||
static int sfc_eth_dev_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct sfc_adapter), sfc_eth_dev_init);
|
||||
}
|
||||
|
||||
static int sfc_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, sfc_eth_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver sfc_efx_pmd = {
|
||||
.id_table = pci_id_sfc_efx_map,
|
||||
.drv_flags =
|
||||
RTE_PCI_DRV_INTR_LSC |
|
||||
RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = sfc_eth_dev_pci_probe,
|
||||
.remove = sfc_eth_dev_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_sfc_efx, sfc_efx_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_sfc_efx, sfc_efx_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_sfc_efx, pci_id_sfc_efx_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_sfc_efx, "* igb_uio | uio_pci_generic | vfio");
|
||||
RTE_PMD_REGISTER_PARAM_STRING(net_sfc_efx,
|
||||
|
@ -45,6 +45,7 @@
|
||||
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_memcpy.h>
|
||||
#include <rte_kvargs.h>
|
||||
@ -1587,18 +1588,26 @@ static const struct rte_pci_id rte_szedata2_pci_id_table[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct eth_driver szedata2_eth_driver = {
|
||||
.pci_drv = {
|
||||
.id_table = rte_szedata2_pci_id_table,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = rte_szedata2_eth_dev_init,
|
||||
.eth_dev_uninit = rte_szedata2_eth_dev_uninit,
|
||||
.dev_private_size = sizeof(struct pmd_internals),
|
||||
static int szedata2_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct pmd_internals), rte_szedata2_eth_dev_init);
|
||||
}
|
||||
|
||||
static int szedata2_eth_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev,
|
||||
rte_szedata2_eth_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver szedata2_eth_driver = {
|
||||
.id_table = rte_szedata2_pci_id_table,
|
||||
.probe = szedata2_eth_pci_probe,
|
||||
.remove = szedata2_eth_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(RTE_SZEDATA2_DRIVER_NAME, szedata2_eth_driver.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(RTE_SZEDATA2_DRIVER_NAME, szedata2_eth_driver);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(RTE_SZEDATA2_DRIVER_NAME, rte_szedata2_pci_id_table);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(RTE_SZEDATA2_DRIVER_NAME,
|
||||
"* combo6core & combov3 & szedata2 & szedata2_cv3");
|
||||
|
@ -53,6 +53,7 @@
|
||||
#include <rte_eal.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_interrupts.h>
|
||||
#include <rte_log.h>
|
||||
#include <rte_memory.h>
|
||||
@ -2131,17 +2132,25 @@ static const struct rte_pci_id pci_id_nicvf_map[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct eth_driver rte_nicvf_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_nicvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = nicvf_eth_dev_init,
|
||||
.dev_private_size = sizeof(struct nicvf),
|
||||
static int nicvf_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct nicvf),
|
||||
nicvf_eth_dev_init);
|
||||
}
|
||||
|
||||
static int nicvf_eth_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_nicvf_pmd = {
|
||||
.id_table = pci_id_nicvf_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
|
||||
.probe = nicvf_eth_pci_probe,
|
||||
.remove = nicvf_eth_pci_remove,
|
||||
};
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_thunderx, rte_nicvf_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_thunderx, rte_nicvf_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_thunderx, pci_id_nicvf_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_thunderx, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_memcpy.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_memzone.h>
|
||||
@ -1612,19 +1613,26 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_virtio_pmd = {
|
||||
.pci_drv = {
|
||||
.driver = {
|
||||
.name = "net_virtio",
|
||||
},
|
||||
.id_table = pci_id_virtio_map,
|
||||
.drv_flags = 0,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct virtio_hw),
|
||||
eth_virtio_dev_init);
|
||||
}
|
||||
|
||||
static int eth_virtio_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_virtio_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_virtio_pmd = {
|
||||
.driver = {
|
||||
.name = "net_virtio",
|
||||
},
|
||||
.eth_dev_init = eth_virtio_dev_init,
|
||||
.eth_dev_uninit = eth_virtio_dev_uninit,
|
||||
.dev_private_size = sizeof(struct virtio_hw),
|
||||
.id_table = pci_id_virtio_map,
|
||||
.drv_flags = 0,
|
||||
.probe = eth_virtio_pci_probe,
|
||||
.remove = eth_virtio_pci_remove,
|
||||
};
|
||||
|
||||
RTE_INIT(rte_virtio_pmd_init);
|
||||
@ -1636,7 +1644,7 @@ rte_virtio_pmd_init(void)
|
||||
return;
|
||||
}
|
||||
|
||||
rte_eal_pci_register(&rte_virtio_pmd.pci_drv);
|
||||
rte_eal_pci_register(&rte_virtio_pmd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -56,6 +56,7 @@
|
||||
#include <rte_alarm.h>
|
||||
#include <rte_ether.h>
|
||||
#include <rte_ethdev.h>
|
||||
#include <rte_ethdev_pci.h>
|
||||
#include <rte_atomic.h>
|
||||
#include <rte_string_fns.h>
|
||||
#include <rte_malloc.h>
|
||||
@ -377,16 +378,23 @@ eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct eth_driver rte_vmxnet3_pmd = {
|
||||
.pci_drv = {
|
||||
.id_table = pci_id_vmxnet3_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = rte_eth_dev_pci_probe,
|
||||
.remove = rte_eth_dev_pci_remove,
|
||||
},
|
||||
.eth_dev_init = eth_vmxnet3_dev_init,
|
||||
.eth_dev_uninit = eth_vmxnet3_dev_uninit,
|
||||
.dev_private_size = sizeof(struct vmxnet3_hw),
|
||||
static int eth_vmxnet3_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_probe(pci_dev,
|
||||
sizeof(struct vmxnet3_hw), eth_vmxnet3_dev_init);
|
||||
}
|
||||
|
||||
static int eth_vmxnet3_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
return rte_eth_dev_pci_generic_remove(pci_dev, eth_vmxnet3_dev_uninit);
|
||||
}
|
||||
|
||||
static struct rte_pci_driver rte_vmxnet3_pmd = {
|
||||
.id_table = pci_id_vmxnet3_map,
|
||||
.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
|
||||
.probe = eth_vmxnet3_pci_probe,
|
||||
.remove = eth_vmxnet3_pci_remove,
|
||||
};
|
||||
|
||||
static int
|
||||
@ -1116,6 +1124,6 @@ vmxnet3_process_events(struct vmxnet3_hw *hw)
|
||||
}
|
||||
#endif
|
||||
|
||||
RTE_PMD_REGISTER_PCI(net_vmxnet3, rte_vmxnet3_pmd.pci_drv);
|
||||
RTE_PMD_REGISTER_PCI(net_vmxnet3, rte_vmxnet3_pmd);
|
||||
RTE_PMD_REGISTER_PCI_TABLE(net_vmxnet3, pci_id_vmxnet3_map);
|
||||
RTE_PMD_REGISTER_KMOD_DEP(net_vmxnet3, "* igb_uio | uio_pci_generic | vfio");
|
||||
|
Loading…
x
Reference in New Issue
Block a user