[dpdk-dev] [PATCH] eventdev: update event port link and unlink callbacks

Nipun Gupta nipun.gupta at nxp.com
Mon Feb 6 20:04:37 CET 2017


Added a pointer to the rte_eventdev type in the event port
link and unlink callbacks. This device shall be used by some
of the event drivers to fetch queue related information.

Also, update the skeleton eventdev driver with corresponding changes.

Signed-off-by: Nipun Gupta <nipun.gupta at nxp.com>
---
 drivers/event/skeleton/skeleton_eventdev.c | 8 +++++---
 lib/librte_eventdev/rte_eventdev.c         | 8 ++++----
 lib/librte_eventdev/rte_eventdev_pmd.h     | 8 ++++++--
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c
index 085cb86..9330d74 100644
--- a/drivers/event/skeleton/skeleton_eventdev.c
+++ b/drivers/event/skeleton/skeleton_eventdev.c
@@ -287,13 +287,14 @@
 }
 
 static int
-skeleton_eventdev_port_link(void *port,
+skeleton_eventdev_port_link(struct rte_eventdev *dev, void *port,
 			const uint8_t queues[], const uint8_t priorities[],
 			uint16_t nb_links)
 {
 	struct skeleton_port *sp = port;
 	PMD_DRV_FUNC_TRACE();
 
+	RTE_SET_USED(dev);
 	RTE_SET_USED(sp);
 	RTE_SET_USED(queues);
 	RTE_SET_USED(priorities);
@@ -303,12 +304,13 @@
 }
 
 static int
-skeleton_eventdev_port_unlink(void *port, uint8_t queues[],
-				 uint16_t nb_unlinks)
+skeleton_eventdev_port_unlink(struct rte_eventdev *dev, void *port,
+				 uint8_t queues[], uint16_t nb_unlinks)
 {
 	struct skeleton_port *sp = port;
 	PMD_DRV_FUNC_TRACE();
 
+	RTE_SET_USED(dev);
 	RTE_SET_USED(sp);
 	RTE_SET_USED(queues);
 
diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
index c8f3e94..c7452f0 100644
--- a/lib/librte_eventdev/rte_eventdev.c
+++ b/lib/librte_eventdev/rte_eventdev.c
@@ -801,8 +801,8 @@
 		if (queues[i] >= RTE_EVENT_MAX_QUEUES_PER_DEV)
 			return -EINVAL;
 
-	diag = (*dev->dev_ops->port_link)(dev->data->ports[port_id], queues,
-						priorities, nb_links);
+	diag = (*dev->dev_ops->port_link)(dev, dev->data->ports[port_id],
+						queues, priorities, nb_links);
 	if (diag < 0)
 		return diag;
 
@@ -846,8 +846,8 @@
 		if (queues[i] >= RTE_EVENT_MAX_QUEUES_PER_DEV)
 			return -EINVAL;
 
-	diag = (*dev->dev_ops->port_unlink)(dev->data->ports[port_id], queues,
-					nb_unlinks);
+	diag = (*dev->dev_ops->port_unlink)(dev, dev->data->ports[port_id],
+					queues, nb_unlinks);
 
 	if (diag < 0)
 		return diag;
diff --git a/lib/librte_eventdev/rte_eventdev_pmd.h b/lib/librte_eventdev/rte_eventdev_pmd.h
index c84c9a2..2e3e5d3 100644
--- a/lib/librte_eventdev/rte_eventdev_pmd.h
+++ b/lib/librte_eventdev/rte_eventdev_pmd.h
@@ -357,6 +357,8 @@ typedef int (*eventdev_port_setup_t)(struct rte_eventdev *dev,
 /**
  * Link multiple source event queues to destination event port.
  *
+ * @param dev
+ *   Event device pointer
  * @param port
  *   Event port pointer
  * @param link
@@ -372,13 +374,15 @@ typedef int (*eventdev_port_setup_t)(struct rte_eventdev *dev,
  *   Returns 0 on success.
  *
  */
-typedef int (*eventdev_port_link_t)(void *port,
+typedef int (*eventdev_port_link_t)(struct rte_eventdev *dev, void *port,
 		const uint8_t queues[], const uint8_t priorities[],
 		uint16_t nb_links);
 
 /**
  * Unlink multiple source event queues from destination event port.
  *
+ * @param dev
+ *   Event device pointer
  * @param port
  *   Event port pointer
  * @param queues
@@ -390,7 +394,7 @@ typedef int (*eventdev_port_link_t)(void *port,
  *   Returns 0 on success.
  *
  */
-typedef int (*eventdev_port_unlink_t)(void *port,
+typedef int (*eventdev_port_unlink_t)(struct rte_eventdev *dev, void *port,
 		uint8_t queues[], uint16_t nb_unlinks);
 
 /**
-- 
1.9.1



More information about the dev mailing list