#include <rte_memcpy.h>
#include <rte_memzone.h>
#include <rte_launch.h>
-#include <rte_tailq.h>
#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_lcore.h>
eth_dev->data->mtu = ETHER_MTU;
/* Invoke PMD device initialization function */
- diag = (*eth_drv->eth_dev_init)(eth_drv, eth_dev);
+ diag = (*eth_drv->eth_dev_init)(eth_dev);
if (diag == 0)
return (0);
/* Invoke PMD device uninit function */
if (*eth_drv->eth_dev_uninit) {
- ret = (*eth_drv->eth_dev_uninit)(eth_drv, eth_dev);
+ ret = (*eth_drv->eth_dev_uninit)(eth_dev);
if (ret)
return ret;
}
}
if (rte_eth_devices[port_id].dev_type == RTE_ETH_DEV_PCI) {
- switch (rte_eth_devices[port_id].pci_dev->pt_driver) {
- case RTE_PT_IGB_UIO:
- case RTE_PT_UIO_GENERIC:
+ switch (rte_eth_devices[port_id].pci_dev->kdrv) {
+ case RTE_KDRV_IGB_UIO:
+ case RTE_KDRV_UIO_GENERIC:
break;
- case RTE_PT_VFIO:
+ case RTE_KDRV_VFIO:
default:
return -ENOTSUP;
}
dev->data->nb_rx_queues = 0;
return -(ENOMEM);
}
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- dev->post_rx_burst_cbs = rte_zmalloc(
- "ethdev->post_rx_burst_cbs",
- sizeof(*dev->post_rx_burst_cbs) * nb_queues,
- RTE_CACHE_LINE_SIZE);
- if (dev->post_rx_burst_cbs == NULL) {
- rte_free(dev->data->rx_queues);
- dev->data->rx_queues = NULL;
- dev->data->nb_rx_queues = 0;
- return -ENOMEM;
- }
-#endif
-
} else { /* re-configure */
FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_queue_release, -ENOTSUP);
RTE_CACHE_LINE_SIZE);
if (rxq == NULL)
return -(ENOMEM);
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- dev->post_rx_burst_cbs = rte_realloc(
- dev->post_rx_burst_cbs,
- sizeof(*dev->post_rx_burst_cbs) *
- nb_queues, RTE_CACHE_LINE_SIZE);
- if (dev->post_rx_burst_cbs == NULL)
- return -ENOMEM;
-#endif
if (nb_queues > old_nb_queues) {
uint16_t new_qs = nb_queues - old_nb_queues;
memset(rxq + old_nb_queues, 0,
sizeof(rxq[0]) * new_qs);
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- memset(dev->post_rx_burst_cbs + old_nb_queues, 0,
- sizeof(dev->post_rx_burst_cbs[0]) * new_qs);
-#endif
}
dev->data->rx_queues = rxq;
dev->data->nb_tx_queues = 0;
return -(ENOMEM);
}
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- dev->pre_tx_burst_cbs = rte_zmalloc(
- "ethdev->pre_tx_burst_cbs",
- sizeof(*dev->pre_tx_burst_cbs) * nb_queues,
- RTE_CACHE_LINE_SIZE);
- if (dev->pre_tx_burst_cbs == NULL) {
- rte_free(dev->data->tx_queues);
- dev->data->tx_queues = NULL;
- dev->data->nb_tx_queues = 0;
- return -ENOMEM;
- }
-#endif
-
} else { /* re-configure */
FUNC_PTR_OR_ERR_RET(*dev->dev_ops->tx_queue_release, -ENOTSUP);
RTE_CACHE_LINE_SIZE);
if (txq == NULL)
return -ENOMEM;
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- dev->pre_tx_burst_cbs = rte_realloc(
- dev->pre_tx_burst_cbs,
- sizeof(*dev->pre_tx_burst_cbs) *
- nb_queues, RTE_CACHE_LINE_SIZE);
- if (dev->pre_tx_burst_cbs == NULL)
- return -ENOMEM;
-#endif
if (nb_queues > old_nb_queues) {
uint16_t new_qs = nb_queues - old_nb_queues;
memset(txq + old_nb_queues, 0,
sizeof(txq[0]) * new_qs);
-#ifdef RTE_ETHDEV_RXTX_CALLBACKS
- memset(dev->pre_tx_burst_cbs + old_nb_queues, 0,
- sizeof(dev->pre_tx_burst_cbs[0]) * new_qs);
-#endif
}
dev->data->tx_queues = txq;
return (-EINVAL);
}
+ if (nb_rx_q > RTE_MAX_QUEUES_PER_PORT) {
+ PMD_DEBUG_TRACE(
+ "Number of RX queues requested (%u) is greater than max supported(%d)\n",
+ nb_rx_q, RTE_MAX_QUEUES_PER_PORT);
+ return (-EINVAL);
+ }
+
+ if (nb_tx_q > RTE_MAX_QUEUES_PER_PORT) {
+ PMD_DEBUG_TRACE(
+ "Number of TX queues requested (%u) is greater than max supported(%d)\n",
+ nb_tx_q, RTE_MAX_QUEUES_PER_PORT);
+ return (-EINVAL);
+ }
+
dev = &rte_eth_devices[port_id];
FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_infos_get, -ENOTSUP);
void *
rte_eth_add_rx_callback(uint8_t port_id, uint16_t queue_id,
- rte_rxtx_callback_fn fn, void *user_param)
+ rte_rx_callback_fn fn, void *user_param)
{
#ifndef RTE_ETHDEV_RXTX_CALLBACKS
rte_errno = ENOTSUP;
return NULL;
}
- cb->fn = fn;
+ cb->fn.rx = fn;
cb->param = user_param;
cb->next = rte_eth_devices[port_id].post_rx_burst_cbs[queue_id];
rte_eth_devices[port_id].post_rx_burst_cbs[queue_id] = cb;
void *
rte_eth_add_tx_callback(uint8_t port_id, uint16_t queue_id,
- rte_rxtx_callback_fn fn, void *user_param)
+ rte_tx_callback_fn fn, void *user_param)
{
#ifndef RTE_ETHDEV_RXTX_CALLBACKS
rte_errno = ENOTSUP;
return NULL;
}
- cb->fn = fn;
+ cb->fn.tx = fn;
cb->param = user_param;
cb->next = rte_eth_devices[port_id].pre_tx_burst_cbs[queue_id];
rte_eth_devices[port_id].pre_tx_burst_cbs[queue_id] = cb;