| 681 | } |
| 682 | |
| 683 | int |
| 684 | rte_dma_stats_get(int16_t dev_id, uint16_t vchan, struct rte_dma_stats *stats) |
| 685 | { |
| 686 | const struct rte_dma_dev *dev = &rte_dma_devices[dev_id]; |
| 687 | |
| 688 | if (!rte_dma_is_valid(dev_id) || stats == NULL) |
| 689 | return -EINVAL; |
| 690 | |
| 691 | if (vchan >= dev->data->dev_conf.nb_vchans && |
| 692 | vchan != RTE_DMA_ALL_VCHAN) { |
| 693 | RTE_DMA_LOG(ERR, |
| 694 | "Device %d vchan %u out of range", dev_id, vchan); |
| 695 | return -EINVAL; |
| 696 | } |
| 697 | |
| 698 | if (*dev->dev_ops->stats_get == NULL) |
| 699 | return -ENOTSUP; |
| 700 | memset(stats, 0, sizeof(struct rte_dma_stats)); |
| 701 | return (*dev->dev_ops->stats_get)(dev, vchan, stats, |
| 702 | sizeof(struct rte_dma_stats)); |
| 703 | } |
| 704 | |
| 705 | int |
| 706 | rte_dma_stats_reset(int16_t dev_id, uint16_t vchan) |