net/ice/base: update VSI handle to remaining VSI
[dpdk.git] / lib / librte_eventdev / rte_eventdev.c
index 32c5319..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>
 
 #include "rte_eventdev.h"
 #include "rte_eventdev_pmd.h"
+#include "rte_eventdev_trace.h"
 
-struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS];
+static struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS];
 
-struct rte_eventdev *rte_eventdevs = &rte_event_devices[0];
+struct rte_eventdev *rte_eventdevs = rte_event_devices;
 
 static struct rte_eventdev_global eventdev_globals = {
        .nb_devs                = 0
 };
 
-struct rte_eventdev_global *rte_eventdev_globals = &eventdev_globals;
-
 /* Event dev north bound API implementation */
 
 uint8_t
 rte_event_dev_count(void)
 {
-       return rte_eventdev_globals->nb_devs;
+       return eventdev_globals.nb_devs;
 }
 
 int
@@ -62,7 +62,7 @@ rte_event_dev_get_dev_id(const char *name)
        if (!name)
                return -EINVAL;
 
-       for (i = 0; i < rte_eventdev_globals->nb_devs; i++) {
+       for (i = 0; i < eventdev_globals.nb_devs; i++) {
                cmp = (strncmp(rte_event_devices[i].data->name, name,
                                RTE_EVENTDEV_NAME_MAX_LEN) == 0) ||
                        (rte_event_devices[i].dev ? (strncmp(
@@ -130,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;
@@ -152,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)
 {
@@ -175,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)
 {
@@ -525,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;
 }
 
@@ -651,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);
 }
 
@@ -767,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;
 
@@ -890,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;
        }
 
@@ -922,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;
                }
 
@@ -937,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;
 }
 
@@ -949,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;
        }
 
@@ -989,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;
                }
 
@@ -1002,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;
@@ -1214,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
@@ -1258,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
@@ -1276,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);
 }
 
@@ -1352,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;
@@ -1364,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++;
        }