Added a new eventdev API rte_event_dma_adapter_caps_get(), to get DMA adapter capabilities supported by the driver.
Signed-off-by: Amit Prakash Shukla <amitpraka...@marvell.com> --- lib/eventdev/meson.build | 2 +- lib/eventdev/rte_eventdev.c | 25 +++++++++++++++++++++++++ lib/eventdev/rte_eventdev.h | 2 +- lib/meson.build | 2 +- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index 6edf98dfa5..fbab3a42ad 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -42,5 +42,5 @@ driver_sdk_headers += files( 'event_timer_adapter_pmd.h', ) -deps += ['ring', 'ethdev', 'hash', 'mempool', 'mbuf', 'timer', 'cryptodev'] +deps += ['ring', 'ethdev', 'hash', 'mempool', 'mbuf', 'timer', 'cryptodev', 'dmadev'] deps += ['telemetry'] diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index 6ab4524332..9415788b6a 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -21,6 +21,7 @@ #include <ethdev_driver.h> #include <rte_cryptodev.h> #include <cryptodev_pmd.h> +#include <rte_dmadev_pmd.h> #include <rte_telemetry.h> #include "rte_eventdev.h" @@ -224,6 +225,30 @@ rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id, : 0; } +int +rte_event_dma_adapter_caps_get(uint8_t dev_id, uint8_t dma_dev_id, uint32_t *caps) +{ + struct rte_eventdev *dev; + struct rte_dma_dev *dma_dev; + + RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); + if (!rte_dma_is_valid(dma_dev_id)) + return -EINVAL; + + dev = &rte_eventdevs[dev_id]; + dma_dev = rte_dma_pmd_dev_get(dma_dev_id); + + if (caps == NULL || dma_dev == NULL) + return -EINVAL; + + *caps = 0; + + if (dev->dev_ops->dma_adapter_caps_get) + return (*dev->dev_ops->dma_adapter_caps_get)(dev, dma_dev, caps); + + return 0; +} + static inline int event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) { diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index d231f527ae..5611880872 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1505,7 +1505,7 @@ rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id, * */ int -rte_event_dma_adapter_caps_get(uint8_t dev_id, int16_t dmadev_id, uint32_t *caps); +rte_event_dma_adapter_caps_get(uint8_t dev_id, uint8_t dmadev_id, uint32_t *caps); /* Ethdev Tx adapter capability bitmap flags */ #define RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT 0x1 diff --git a/lib/meson.build b/lib/meson.build index 53155be8e9..f3191f10b6 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -33,6 +33,7 @@ libraries = [ 'compressdev', 'cryptodev', 'distributor', + 'dmadev', 'efd', 'eventdev', 'gpudev', @@ -48,7 +49,6 @@ libraries = [ 'rawdev', 'regexdev', 'mldev', - 'dmadev', 'rib', 'reorder', 'sched', -- 2.25.1