Using dmadev API functions. 8< */
| 830 | |
| 831 | /* Using dmadev API functions. 8< */ |
| 832 | static void |
| 833 | assign_dmadevs(void) |
| 834 | { |
| 835 | uint16_t nb_dmadev = 0; |
| 836 | int16_t dev_id = rte_dma_next_dev(0); |
| 837 | uint32_t i, j; |
| 838 | |
| 839 | for (i = 0; i < cfg.nb_ports; i++) { |
| 840 | for (j = 0; j < cfg.ports[i].nb_queues; j++) { |
| 841 | if (dev_id == -1) |
| 842 | goto end; |
| 843 | |
| 844 | cfg.ports[i].dmadev_ids[j] = dev_id; |
| 845 | configure_dmadev_queue(cfg.ports[i].dmadev_ids[j]); |
| 846 | dev_id = rte_dma_next_dev(dev_id + 1); |
| 847 | ++nb_dmadev; |
| 848 | } |
| 849 | } |
| 850 | end: |
| 851 | if (nb_dmadev < cfg.nb_ports * cfg.ports[0].nb_queues) |
| 852 | rte_exit(EXIT_FAILURE, |
| 853 | "Not enough dmadevs (%u) for all queues (%u).\n", |
| 854 | nb_dmadev, cfg.nb_ports * cfg.ports[0].nb_queues); |
| 855 | RTE_LOG(INFO, DMA, "Number of used dmadevs: %u.\n", nb_dmadev); |
| 856 | } |
| 857 | /* >8 End of using dmadev API functions. */ |
| 858 | |
| 859 | /* Assign ring structures for packet exchanging. 8< */ |
no test coverage detected