net/iavf: add GTPU in default hash
[dpdk.git] / lib / librte_eventdev / rte_eventdev.c
index ebaf308..82c177c 100644 (file)
@@ -13,6 +13,7 @@
 #include <sys/types.h>
 #include <sys/queue.h>
 
+#include <rte_string_fns.h>
 #include <rte_byteorder.h>
 #include <rte_log.h>
 #include <rte_debug.h>
@@ -34,6 +35,7 @@
 
 #include "rte_eventdev.h"
 #include "rte_eventdev_pmd.h"
+#include "rte_eventdev_trace.h"
 
 static struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS];
 
@@ -128,7 +130,7 @@ rte_event_eth_rx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id,
                                : 0;
 }
 
-int __rte_experimental
+int
 rte_event_timer_adapter_caps_get(uint8_t dev_id, uint32_t *caps)
 {
        struct rte_eventdev *dev;
@@ -150,7 +152,7 @@ rte_event_timer_adapter_caps_get(uint8_t dev_id, uint32_t *caps)
                                : 0;
 }
 
-int __rte_experimental
+int
 rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id,
                                  uint32_t *caps)
 {
@@ -173,7 +175,7 @@ rte_event_crypto_adapter_caps_get(uint8_t dev_id, uint8_t cdev_id,
                (dev, cdev, caps) : -ENOTSUP;
 }
 
-int __rte_experimental
+int
 rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id,
                                uint32_t *caps)
 {
@@ -523,6 +525,7 @@ rte_event_dev_configure(uint8_t dev_id,
        }
 
        dev->data->event_dev_cap = info.event_dev_cap;
+       rte_eventdev_trace_configure(dev_id, dev_conf, diag);
        return diag;
 }
 
@@ -649,6 +652,7 @@ rte_event_queue_setup(uint8_t dev_id, uint8_t queue_id,
        }
 
        dev->data->queues_cfg[queue_id] = *queue_conf;
+       rte_eventdev_trace_queue_setup(dev_id, queue_id, queue_conf);
        return (*dev->dev_ops->queue_setup)(dev, queue_id, queue_conf);
 }
 
@@ -765,6 +769,7 @@ rte_event_port_setup(uint8_t dev_id, uint8_t port_id,
        if (!diag)
                diag = rte_event_port_unlink(dev_id, port_id, NULL, 0);
 
+       rte_eventdev_trace_port_setup(dev_id, port_id, port_conf, diag);
        if (diag < 0)
                return diag;
 
@@ -888,18 +893,18 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id,
        uint16_t *links_map;
        int i, diag;
 
-       RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, -EINVAL, 0);
+       RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, EINVAL, 0);
        dev = &rte_eventdevs[dev_id];
 
        if (*dev->dev_ops->port_link == NULL) {
-               RTE_PMD_DEBUG_TRACE("Function not supported\n");
-               rte_errno = -ENOTSUP;
+               RTE_EDEV_LOG_ERR("Function not supported\n");
+               rte_errno = ENOTSUP;
                return 0;
        }
 
        if (!is_valid_port(dev, port_id)) {
                RTE_EDEV_LOG_ERR("Invalid port_id=%" PRIu8, port_id);
-               rte_errno = -EINVAL;
+               rte_errno = EINVAL;
                return 0;
        }
 
@@ -920,7 +925,7 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id,
 
        for (i = 0; i < nb_links; i++)
                if (queues[i] >= dev->data->nb_queues) {
-                       rte_errno = -EINVAL;
+                       rte_errno = EINVAL;
                        return 0;
                }
 
@@ -935,6 +940,7 @@ rte_event_port_link(uint8_t dev_id, uint8_t port_id,
        for (i = 0; i < diag; i++)
                links_map[queues[i]] = (uint8_t)priorities[i];
 
+       rte_eventdev_trace_port_link(dev_id, port_id, nb_links, diag);
        return diag;
 }
 
@@ -947,18 +953,18 @@ rte_event_port_unlink(uint8_t dev_id, uint8_t port_id,
        int i, diag, j;
        uint16_t *links_map;
 
-       RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, -EINVAL, 0);
+       RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, EINVAL, 0);
        dev = &rte_eventdevs[dev_id];
 
        if (*dev->dev_ops->port_unlink == NULL) {
-               RTE_PMD_DEBUG_TRACE("Function not supported\n");
-               rte_errno = -ENOTSUP;
+               RTE_EDEV_LOG_ERR("Function not supported");
+               rte_errno = ENOTSUP;
                return 0;
        }
 
        if (!is_valid_port(dev, port_id)) {
                RTE_EDEV_LOG_ERR("Invalid port_id=%" PRIu8, port_id);
-               rte_errno = -EINVAL;
+               rte_errno = EINVAL;
                return 0;
        }
 
@@ -987,7 +993,7 @@ rte_event_port_unlink(uint8_t dev_id, uint8_t port_id,
        nb_unlinks = j;
        for (i = 0; i < nb_unlinks; i++)
                if (queues[i] >= dev->data->nb_queues) {
-                       rte_errno = -EINVAL;
+                       rte_errno = EINVAL;
                        return 0;
                }
 
@@ -1000,10 +1006,11 @@ rte_event_port_unlink(uint8_t dev_id, uint8_t port_id,
        for (i = 0; i < diag; i++)
                links_map[queues[i]] = EVENT_QUEUE_SERVICE_PRIORITY_INVALID;
 
+       rte_eventdev_trace_port_unlink(dev_id, port_id, nb_unlinks, diag);
        return diag;
 }
 
-int __rte_experimental
+int
 rte_event_port_unlinks_in_progress(uint8_t dev_id, uint8_t port_id)
 {
        struct rte_eventdev *dev;
@@ -1212,6 +1219,7 @@ rte_event_dev_start(uint8_t dev_id)
        }
 
        diag = (*dev->dev_ops->dev_start)(dev);
+       rte_eventdev_trace_start(dev_id, diag);
        if (diag == 0)
                dev->data->dev_started = 1;
        else
@@ -1256,6 +1264,7 @@ rte_event_dev_stop(uint8_t dev_id)
 
        dev->data->dev_started = 0;
        (*dev->dev_ops->dev_stop)(dev);
+       rte_eventdev_trace_stop(dev_id);
 }
 
 int
@@ -1274,6 +1283,7 @@ rte_event_dev_close(uint8_t dev_id)
                return -EBUSY;
        }
 
+       rte_eventdev_trace_close(dev_id);
        return (*dev->dev_ops->dev_close)(dev);
 }
 
@@ -1350,6 +1360,7 @@ rte_event_pmd_allocate(const char *name, int socket_id)
        eventdev = &rte_eventdevs[dev_id];
 
        eventdev->txa_enqueue = rte_event_tx_adapter_enqueue;
+       eventdev->txa_enqueue_same_dest = rte_event_tx_adapter_enqueue;
 
        if (eventdev->data == NULL) {
                struct rte_eventdev_data *eventdev_data = NULL;
@@ -1362,15 +1373,17 @@ rte_event_pmd_allocate(const char *name, int socket_id)
 
                eventdev->data = eventdev_data;
 
-               snprintf(eventdev->data->name, RTE_EVENTDEV_NAME_MAX_LEN,
-                               "%s", name);
+               if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
 
-               eventdev->data->dev_id = dev_id;
-               eventdev->data->socket_id = socket_id;
-               eventdev->data->dev_started = 0;
+                       strlcpy(eventdev->data->name, name,
+                               RTE_EVENTDEV_NAME_MAX_LEN);
 
-               eventdev->attached = RTE_EVENTDEV_ATTACHED;
+                       eventdev->data->dev_id = dev_id;
+                       eventdev->data->socket_id = socket_id;
+                       eventdev->data->dev_started = 0;
+               }
 
+               eventdev->attached = RTE_EVENTDEV_ATTACHED;
                eventdev_globals.nb_devs++;
        }