MCPcopy Index your code
hub / github.com/F-Stack/f-stack / eth_dev_tx_queue_config

Function eth_dev_tx_queue_config

dpdk/lib/ethdev/ethdev_private.c:443–471  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443int
444eth_dev_tx_queue_config(struct rte_eth_dev *dev, uint16_t nb_queues)
445{
446 uint16_t old_nb_queues = dev->data->nb_tx_queues;
447 unsigned int i;
448
449 if (dev->data->tx_queues == NULL && nb_queues != 0) { /* first time configuration */
450 dev->data->tx_queues = rte_zmalloc("ethdev->tx_queues",
451 sizeof(dev->data->tx_queues[0]) *
452 RTE_MAX_QUEUES_PER_PORT,
453 RTE_CACHE_LINE_SIZE);
454 if (dev->data->tx_queues == NULL) {
455 dev->data->nb_tx_queues = 0;
456 return -(ENOMEM);
457 }
458 } else if (dev->data->tx_queues != NULL && nb_queues != 0) { /* re-configure */
459 for (i = nb_queues; i < old_nb_queues; i++)
460 eth_dev_txq_release(dev, i);
461
462 } else if (dev->data->tx_queues != NULL && nb_queues == 0) {
463 for (i = nb_queues; i < old_nb_queues; i++)
464 eth_dev_txq_release(dev, i);
465
466 rte_free(dev->data->tx_queues);
467 dev->data->tx_queues = NULL;
468 }
469 dev->data->nb_tx_queues = nb_queues;
470 return 0;
471}

Callers 2

rte_eth_dev_configureFunction · 0.85

Calls 3

rte_zmallocFunction · 0.85
eth_dev_txq_releaseFunction · 0.85
rte_freeFunction · 0.85

Tested by

no test coverage detected