eventdev: make driver-only headers private
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 29 Jan 2021 16:48:20 +0000 (16:48 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Fri, 29 Jan 2021 19:59:09 +0000 (20:59 +0100)
The rte_eventdev_pmd*.h files are for drivers only and should be private
to DPDK, and not installed for app use.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
29 files changed:
doc/guides/rel_notes/release_21_02.rst
drivers/event/dlb/dlb.c
drivers/event/dlb/dlb_priv.h
drivers/event/dlb/rte_pmd_dlb.c
drivers/event/dlb2/dlb2.c
drivers/event/dlb2/pf/dlb2_pf.c
drivers/event/dlb2/rte_pmd_dlb2.c
drivers/event/dpaa/dpaa_eventdev.c
drivers/event/dpaa/dpaa_eventdev.h
drivers/event/dpaa2/dpaa2_eventdev.h
drivers/event/dsw/dsw_evdev.c
drivers/event/octeontx/ssovf_evdev.h
drivers/event/octeontx2/otx2_evdev.c
drivers/event/octeontx2/otx2_evdev.h
drivers/event/opdl/opdl_evdev.h
drivers/event/skeleton/skeleton_eventdev.h
drivers/event/sw/sw_evdev.h
lib/librte_eventdev/eventdev_pmd.h [new file with mode: 0644]
lib/librte_eventdev/eventdev_pmd_pci.h [new file with mode: 0644]
lib/librte_eventdev/eventdev_pmd_vdev.h [new file with mode: 0644]
lib/librte_eventdev/meson.build
lib/librte_eventdev/rte_event_crypto_adapter.c
lib/librte_eventdev/rte_event_eth_rx_adapter.c
lib/librte_eventdev/rte_event_eth_tx_adapter.c
lib/librte_eventdev/rte_event_timer_adapter.c
lib/librte_eventdev/rte_eventdev.c
lib/librte_eventdev/rte_eventdev_pmd.h [deleted file]
lib/librte_eventdev/rte_eventdev_pmd_pci.h [deleted file]
lib/librte_eventdev/rte_eventdev_pmd_vdev.h [deleted file]

index c36b9e4..d26e581 100644 (file)
@@ -157,6 +157,12 @@ Removed Items
   ``ethdev_vdev.h`` and ``ethdev_pci.h`` respectively in the source tree, to
   reflect the fact that they are non-public headers.
 
+* The internal header files ``rte_eventdev_pmd.h``, ``rte_eventdev_pmd_vdev.h``
+  and ``rte_eventdev_pmd_pci.h`` are no longer installed as part of the DPDK
+  ``ninja install`` action and are renamed to ``eventdev_pmd.h``,
+  ``eventdev_pmd_vdev.h`` and ``eventdev_pmd_pci.h`` respectively in the source
+  tree, to reflect the fact that they are non-public headers.
+
 * Removed support for NetXtreme devices belonging to ``BCM573xx and
   BCM5740x`` families. Specifically the support for the following Broadcom
   PCI device IDs ``0x16c8, 0x16c9, 0x16ca, 0x16ce, 0x16cf, 0x16df, 0x16d0,``
index a65f708..64e6df7 100644 (file)
@@ -31,7 +31,7 @@
 #include <rte_string_fns.h>
 
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
+#include <eventdev_pmd.h>
 
 #include "dlb_priv.h"
 #include "dlb_iface.h"
index 58ff428..272e174 100644 (file)
@@ -10,8 +10,8 @@
 
 #include <rte_bus_pci.h>
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
-#include <rte_eventdev_pmd_pci.h>
+#include <eventdev_pmd.h>
+#include <eventdev_pmd_pci.h>
 #include <rte_pci.h>
 
 #include "dlb_user.h"
index bc802d3..8f56dc3 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 #include "rte_eventdev.h"
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_pmd_dlb.h"
 #include "dlb_priv.h"
 #include "dlb_inline_fns.h"
index 5782960..b28ec58 100644 (file)
@@ -20,7 +20,7 @@
 #include <rte_dev.h>
 #include <rte_errno.h>
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
+#include <eventdev_pmd.h>
 #include <rte_io.h>
 #include <rte_kvargs.h>
 #include <rte_log.h>
index 632c4e0..1a7d8fc 100644 (file)
@@ -26,8 +26,8 @@
 #include <rte_pci.h>
 #include <rte_bus_pci.h>
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
-#include <rte_eventdev_pmd_pci.h>
+#include <eventdev_pmd.h>
+#include <eventdev_pmd_pci.h>
 #include <rte_memory.h>
 #include <rte_string_fns.h>
 
index b09b585..43990e4 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
+#include <eventdev_pmd.h>
 
 #include "rte_pmd_dlb2.h"
 #include "dlb2_priv.h"
index 01ddd0e..460375c 100644 (file)
@@ -24,7 +24,7 @@
 #include <rte_memzone.h>
 #include <rte_pci.h>
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_ethdev.h>
 #include <rte_event_eth_rx_adapter.h>
 #include <rte_event_eth_tx_adapter.h>
index 0b3da83..b4535c7 100644 (file)
@@ -5,8 +5,8 @@
 #ifndef __DPAA_EVENTDEV_H__
 #define __DPAA_EVENTDEV_H__
 
-#include <rte_eventdev_pmd.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_atomic.h>
 #include <rte_per_lcore.h>
 
index 785e520..bb87bdb 100644 (file)
@@ -5,8 +5,8 @@
 #ifndef __DPAA2_EVENTDEV_H__
 #define __DPAA2_EVENTDEV_H__
 
-#include <rte_eventdev_pmd.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_atomic.h>
 #include <mc/fsl_dpcon.h>
 #include <mc/fsl_mc_sys.h>
index 933a5a5..ae188f7 100644 (file)
@@ -5,8 +5,8 @@
 #include <stdbool.h>
 
 #include <rte_cycles.h>
-#include <rte_eventdev_pmd.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_random.h>
 #include <rte_ring_elem.h>
 
index 1016315..bb1056a 100644 (file)
@@ -6,7 +6,7 @@
 #define __SSOVF_EVDEV_H__
 
 #include <rte_event_eth_tx_adapter.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_io.h>
 
 #include <octeontx_mbox.h>
index 80a786f..7e23435 100644 (file)
@@ -7,7 +7,7 @@
 #include <rte_bus_pci.h>
 #include <rte_common.h>
 #include <rte_eal.h>
-#include <rte_eventdev_pmd_pci.h>
+#include <eventdev_pmd_pci.h>
 #include <rte_kvargs.h>
 #include <rte_mbuf_pool_ops.h>
 #include <rte_pci.h>
index ed9cbc8..96e5799 100644 (file)
@@ -6,7 +6,7 @@
 #define __OTX2_EVDEV_H__
 
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd.h>
+#include <eventdev_pmd.h>
 #include <rte_event_eth_rx_adapter.h>
 #include <rte_event_eth_tx_adapter.h>
 
index 610b58b..2dca0a8 100644 (file)
@@ -6,7 +6,7 @@
 #define _OPDL_EVDEV_H_
 
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_atomic.h>
 #include "opdl_ring.h"
 
index ba64b8a..9193f45 100644 (file)
@@ -5,8 +5,8 @@
 #ifndef __SKELETON_EVENTDEV_H__
 #define __SKELETON_EVENTDEV_H__
 
-#include <rte_eventdev_pmd_pci.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd_pci.h>
+#include <eventdev_pmd_vdev.h>
 
 #ifdef RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG
 #define PMD_DRV_LOG(level, fmt, args...) \
index 1fc07b6..5ab6465 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "sw_evdev_log.h"
 #include <rte_eventdev.h>
-#include <rte_eventdev_pmd_vdev.h>
+#include <eventdev_pmd_vdev.h>
 #include <rte_atomic.h>
 
 #define SW_DEFAULT_CREDIT_QUANTA 32
diff --git a/lib/librte_eventdev/eventdev_pmd.h b/lib/librte_eventdev/eventdev_pmd.h
new file mode 100644 (file)
index 0000000..9e83993
--- /dev/null
@@ -0,0 +1,1148 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016 Cavium, Inc
+ */
+
+#ifndef _RTE_EVENTDEV_PMD_H_
+#define _RTE_EVENTDEV_PMD_H_
+
+/** @file
+ * RTE Event PMD APIs
+ *
+ * @note
+ * These API are from event PMD only and user applications should not call
+ * them directly.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <string.h>
+
+#include <rte_common.h>
+#include <rte_compat.h>
+#include <rte_config.h>
+#include <rte_dev.h>
+#include <rte_log.h>
+#include <rte_malloc.h>
+#include <rte_mbuf.h>
+#include <rte_mbuf_dyn.h>
+
+#include "rte_eventdev.h"
+#include "rte_event_timer_adapter_pmd.h"
+
+/* Logging Macros */
+#define RTE_EDEV_LOG_ERR(...) \
+       RTE_LOG(ERR, EVENTDEV, \
+               RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+                       __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
+
+#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
+#define RTE_EDEV_LOG_DEBUG(...) \
+       RTE_LOG(DEBUG, EVENTDEV, \
+               RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+                       __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
+#else
+#define RTE_EDEV_LOG_DEBUG(...) (void)0
+#endif
+
+/* Macros to check for valid device */
+#define RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, retval) do { \
+       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
+               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
+               return retval; \
+       } \
+} while (0)
+
+#define RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, errno, retval) do { \
+       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
+               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
+               rte_errno = errno; \
+               return retval; \
+       } \
+} while (0)
+
+#define RTE_EVENTDEV_VALID_DEVID_OR_RET(dev_id) do { \
+       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
+               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
+               return; \
+       } \
+} while (0)
+
+#define RTE_EVENT_ETH_RX_ADAPTER_SW_CAP \
+               ((RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID) | \
+                       (RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ))
+
+#define RTE_EVENT_CRYPTO_ADAPTER_SW_CAP \
+               RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA
+
+/**< Ethernet Rx adapter cap to return If the packet transfers from
+ * the ethdev to eventdev use a SW service function
+ */
+
+#define RTE_EVENTDEV_DETACHED  (0)
+#define RTE_EVENTDEV_ATTACHED  (1)
+
+struct rte_eth_dev;
+
+/** Global structure used for maintaining state of allocated event devices */
+struct rte_eventdev_global {
+       uint8_t nb_devs;        /**< Number of devices found */
+};
+
+extern struct rte_eventdev *rte_eventdevs;
+/** The pool of rte_eventdev structures. */
+
+/**
+ * Get the rte_eventdev structure device pointer for the named device.
+ *
+ * @param name
+ *   device name to select the device structure.
+ *
+ * @return
+ *   - The rte_eventdev structure pointer for the given device ID.
+ */
+static inline struct rte_eventdev *
+rte_event_pmd_get_named_dev(const char *name)
+{
+       struct rte_eventdev *dev;
+       unsigned int i;
+
+       if (name == NULL)
+               return NULL;
+
+       for (i = 0; i < RTE_EVENT_MAX_DEVS; i++) {
+               dev = &rte_eventdevs[i];
+               if ((dev->attached == RTE_EVENTDEV_ATTACHED) &&
+                               (strcmp(dev->data->name, name) == 0))
+                       return dev;
+       }
+
+       return NULL;
+}
+
+/**
+ * Validate if the event device index is valid attached event device.
+ *
+ * @param dev_id
+ *   Event device index.
+ *
+ * @return
+ *   - If the device index is valid (1) or not (0).
+ */
+static inline unsigned
+rte_event_pmd_is_valid_dev(uint8_t dev_id)
+{
+       struct rte_eventdev *dev;
+
+       if (dev_id >= RTE_EVENT_MAX_DEVS)
+               return 0;
+
+       dev = &rte_eventdevs[dev_id];
+       if (dev->attached != RTE_EVENTDEV_ATTACHED)
+               return 0;
+       else
+               return 1;
+}
+
+/**
+ * Definitions of all functions exported by a driver through the
+ * the generic structure of type *event_dev_ops* supplied in the
+ * *rte_eventdev* structure associated with a device.
+ */
+
+/**
+ * Get device information of a device.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param dev_info
+ *   Event device information structure
+ *
+ * @return
+ *   Returns 0 on success
+ */
+typedef void (*eventdev_info_get_t)(struct rte_eventdev *dev,
+               struct rte_event_dev_info *dev_info);
+
+/**
+ * Configure a device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *   Returns 0 on success
+ */
+typedef int (*eventdev_configure_t)(const struct rte_eventdev *dev);
+
+/**
+ * Start a configured device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *   Returns 0 on success
+ */
+typedef int (*eventdev_start_t)(struct rte_eventdev *dev);
+
+/**
+ * Stop a configured device.
+ *
+ * @param dev
+ *   Event device pointer
+ */
+typedef void (*eventdev_stop_t)(struct rte_eventdev *dev);
+
+/**
+ * Close a configured device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ * - 0 on success
+ * - (-EAGAIN) if can't close as device is busy
+ */
+typedef int (*eventdev_close_t)(struct rte_eventdev *dev);
+
+/**
+ * Retrieve the default event queue configuration.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param queue_id
+ *   Event queue index
+ * @param[out] queue_conf
+ *   Event queue configuration structure
+ *
+ */
+typedef void (*eventdev_queue_default_conf_get_t)(struct rte_eventdev *dev,
+               uint8_t queue_id, struct rte_event_queue_conf *queue_conf);
+
+/**
+ * Setup an event queue.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param queue_id
+ *   Event queue index
+ * @param queue_conf
+ *   Event queue configuration structure
+ *
+ * @return
+ *   Returns 0 on success.
+ */
+typedef int (*eventdev_queue_setup_t)(struct rte_eventdev *dev,
+               uint8_t queue_id,
+               const struct rte_event_queue_conf *queue_conf);
+
+/**
+ * Release resources allocated by given event queue.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param queue_id
+ *   Event queue index
+ *
+ */
+typedef void (*eventdev_queue_release_t)(struct rte_eventdev *dev,
+               uint8_t queue_id);
+
+/**
+ * Retrieve the default event port configuration.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param port_id
+ *   Event port index
+ * @param[out] port_conf
+ *   Event port configuration structure
+ *
+ */
+typedef void (*eventdev_port_default_conf_get_t)(struct rte_eventdev *dev,
+               uint8_t port_id, struct rte_event_port_conf *port_conf);
+
+/**
+ * Setup an event port.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param port_id
+ *   Event port index
+ * @param port_conf
+ *   Event port configuration structure
+ *
+ * @return
+ *   Returns 0 on success.
+ */
+typedef int (*eventdev_port_setup_t)(struct rte_eventdev *dev,
+               uint8_t port_id,
+               const struct rte_event_port_conf *port_conf);
+
+/**
+ * Release memory resources allocated by given event port.
+ *
+ * @param port
+ *   Event port pointer
+ *
+ */
+typedef void (*eventdev_port_release_t)(void *port);
+
+/**
+ * Link multiple source event queues to destination event port.
+ *
+ * @param dev
+ *   Event device pointer
+ * @param port
+ *   Event port pointer
+ * @param queues
+ *   Points to an array of *nb_links* event queues to be linked
+ *   to the event port.
+ * @param priorities
+ *   Points to an array of *nb_links* service priorities associated with each
+ *   event queue link to event port.
+ * @param nb_links
+ *   The number of links to establish
+ *
+ * @return
+ *   Returns 0 on success.
+ *
+ */
+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
+ *   An array of *nb_unlinks* event queues to be unlinked from the event port.
+ * @param nb_unlinks
+ *   The number of unlinks to establish
+ *
+ * @return
+ *   Returns 0 on success.
+ *
+ */
+typedef int (*eventdev_port_unlink_t)(struct rte_eventdev *dev, void *port,
+               uint8_t queues[], uint16_t nb_unlinks);
+
+/**
+ * Unlinks in progress. Returns number of unlinks that the PMD is currently
+ * performing, but have not yet been completed.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param port
+ *   Event port pointer
+ *
+ * @return
+ *   Returns the number of in-progress unlinks. Zero is returned if none are
+ *   in progress.
+ */
+typedef int (*eventdev_port_unlinks_in_progress_t)(struct rte_eventdev *dev,
+               void *port);
+
+/**
+ * Converts nanoseconds to *timeout_ticks* value for rte_event_dequeue()
+ *
+ * @param dev
+ *   Event device pointer
+ * @param ns
+ *   Wait time in nanosecond
+ * @param[out] timeout_ticks
+ *   Value for the *timeout_ticks* parameter in rte_event_dequeue() function
+ *
+ * @return
+ *   Returns 0 on success.
+ *
+ */
+typedef int (*eventdev_dequeue_timeout_ticks_t)(struct rte_eventdev *dev,
+               uint64_t ns, uint64_t *timeout_ticks);
+
+/**
+ * Dump internal information
+ *
+ * @param dev
+ *   Event device pointer
+ * @param f
+ *   A pointer to a file for output
+ *
+ */
+typedef void (*eventdev_dump_t)(struct rte_eventdev *dev, FILE *f);
+
+/**
+ * Retrieve a set of statistics from device
+ *
+ * @param dev
+ *   Event device pointer
+ * @param mode
+ *   Level (device, port or queue)
+ * @param queue_port_id
+ *   Queue or port number depending on mode
+ * @param ids
+ *   The stat ids to retrieve
+ * @param values
+ *   The returned stat values
+ * @param n
+ *   The number of id values and entries in the values array
+ * @return
+ *   The number of stat values successfully filled into the values array
+ */
+typedef int (*eventdev_xstats_get_t)(const struct rte_eventdev *dev,
+               enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id,
+               const unsigned int ids[], uint64_t values[], unsigned int n);
+
+/**
+ * Resets the statistic values in xstats for the device, based on mode.
+ */
+typedef int (*eventdev_xstats_reset_t)(struct rte_eventdev *dev,
+               enum rte_event_dev_xstats_mode mode,
+               int16_t queue_port_id,
+               const uint32_t ids[],
+               uint32_t nb_ids);
+
+/**
+ * Get names of extended stats of an event device
+ *
+ * @param dev
+ *   Event device pointer
+ * @param mode
+ *   Level (device, port or queue)
+ * @param queue_port_id
+ *   Queue or port number depending on mode
+ * @param xstats_names
+ *   Array of name values to be filled in
+ * @param ids
+ *   The stat ids to retrieve
+ * @param size
+ *   Number of values in the xstats_names array
+ * @return
+ *   When size >= the number of stats, return the number of stat values filled
+ *   into the array.
+ *   When size < the number of available stats, return the number of stats
+ *   values, and do not fill in any data into xstats_names.
+ */
+typedef int (*eventdev_xstats_get_names_t)(const struct rte_eventdev *dev,
+               enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id,
+               struct rte_event_dev_xstats_name *xstats_names,
+               unsigned int *ids, unsigned int size);
+
+/**
+ * Get value of one stats and optionally return its id
+ *
+ * @param dev
+ *   Event device pointer
+ * @param name
+ *   The name of the stat to retrieve
+ * @param id
+ *   Pointer to an unsigned int where we store the stat-id for future reference.
+ *   This pointer may be null if the id is not required.
+ * @return
+ *   The value of the stat, or (uint64_t)-1 if the stat is not found.
+ *   If the stat is not found, the id value will be returned as (unsigned)-1,
+ *   if id pointer is non-NULL
+ */
+typedef uint64_t (*eventdev_xstats_get_by_name)(const struct rte_eventdev *dev,
+               const char *name, unsigned int *id);
+
+
+/**
+ * Retrieve the event device's ethdev Rx adapter capabilities for the
+ * specified ethernet port
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param[out] caps
+ *   A pointer to memory filled with Rx event adapter capabilities.
+ *
+ * @return
+ *   - 0: Success, driver provides Rx event adapter capabilities for the
+ *     ethernet device.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_eth_rx_adapter_caps_get_t)
+                                       (const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev,
+                                       uint32_t *caps);
+
+struct rte_event_eth_rx_adapter_queue_conf;
+
+/**
+ * Retrieve the event device's timer adapter capabilities, as well as the ops
+ * structure that an event timer adapter should call through to enter the
+ * driver
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param flags
+ *   Flags that can be used to determine how to select an event timer
+ *   adapter ops structure
+ *
+ * @param[out] caps
+ *   A pointer to memory filled with Rx event adapter capabilities.
+ *
+ * @param[out] ops
+ *   A pointer to the ops pointer to set with the address of the desired ops
+ *   structure
+ *
+ * @return
+ *   - 0: Success, driver provides Rx event adapter capabilities for the
+ *     ethernet device.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_timer_adapter_caps_get_t)(
+                               const struct rte_eventdev *dev,
+                               uint64_t flags,
+                               uint32_t *caps,
+                               const struct rte_event_timer_adapter_ops **ops);
+
+/**
+ * Add ethernet Rx queues to event device. This callback is invoked if
+ * the caps returned from rte_eventdev_eth_rx_adapter_caps_get(, eth_port_id)
+ * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param rx_queue_id
+ *   Ethernet device receive queue index
+ *
+ * @param queue_conf
+ *  Additional configuration structure
+
+ * @return
+ *   - 0: Success, ethernet receive queue added successfully.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_eth_rx_adapter_queue_add_t)(
+               const struct rte_eventdev *dev,
+               const struct rte_eth_dev *eth_dev,
+               int32_t rx_queue_id,
+               const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
+
+/**
+ * Delete ethernet Rx queues from event device. This callback is invoked if
+ * the caps returned from eventdev_eth_rx_adapter_caps_get(, eth_port_id)
+ * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param rx_queue_id
+ *   Ethernet device receive queue index
+ *
+ * @return
+ *   - 0: Success, ethernet receive queue deleted successfully.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_eth_rx_adapter_queue_del_t)
+                                       (const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev,
+                                       int32_t rx_queue_id);
+
+/**
+ * Start ethernet Rx adapter. This callback is invoked if
+ * the caps returned from eventdev_eth_rx_adapter_caps_get(.., eth_port_id)
+ * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set and Rx queues
+ * from eth_port_id have been added to the event device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @return
+ *   - 0: Success, ethernet Rx adapter started successfully.
+ *   - <0: Error code returned by the driver function.
+ */
+typedef int (*eventdev_eth_rx_adapter_start_t)
+                                       (const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev);
+
+/**
+ * Stop ethernet Rx adapter. This callback is invoked if
+ * the caps returned from eventdev_eth_rx_adapter_caps_get(..,eth_port_id)
+ * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set and Rx queues
+ * from eth_port_id have been added to the event device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @return
+ *   - 0: Success, ethernet Rx adapter stopped successfully.
+ *   - <0: Error code returned by the driver function.
+ */
+typedef int (*eventdev_eth_rx_adapter_stop_t)
+                                       (const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev);
+
+struct rte_event_eth_rx_adapter_stats;
+
+/**
+ * Retrieve ethernet Rx adapter statistics.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param[out] stats
+ *   Pointer to stats structure
+ *
+ * @return
+ *   Return 0 on success.
+ */
+
+typedef int (*eventdev_eth_rx_adapter_stats_get)
+                       (const struct rte_eventdev *dev,
+                       const struct rte_eth_dev *eth_dev,
+                       struct rte_event_eth_rx_adapter_stats *stats);
+/**
+ * Reset ethernet Rx adapter statistics.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @return
+ *   Return 0 on success.
+ */
+typedef int (*eventdev_eth_rx_adapter_stats_reset)
+                       (const struct rte_eventdev *dev,
+                       const struct rte_eth_dev *eth_dev);
+/**
+ * Start eventdev selftest.
+ *
+ * @return
+ *   Return 0 on success.
+ */
+typedef int (*eventdev_selftest)(void);
+
+typedef uint32_t rte_event_pmd_selftest_seqn_t;
+extern int rte_event_pmd_selftest_seqn_dynfield_offset;
+
+/**
+ * Read test sequence number from mbuf.
+ *
+ * @param mbuf Structure to read from.
+ * @return pointer to test sequence number.
+ */
+__rte_internal
+static inline rte_event_pmd_selftest_seqn_t *
+rte_event_pmd_selftest_seqn(struct rte_mbuf *mbuf)
+{
+       return RTE_MBUF_DYNFIELD(mbuf,
+               rte_event_pmd_selftest_seqn_dynfield_offset,
+               rte_event_pmd_selftest_seqn_t *);
+}
+
+struct rte_cryptodev;
+
+/**
+ * This API may change without prior notice
+ *
+ * Retrieve the event device's crypto adapter capabilities for the
+ * specified cryptodev
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   cryptodev pointer
+ *
+ * @param[out] caps
+ *   A pointer to memory filled with event adapter capabilities.
+ *   It is expected to be pre-allocated & initialized by caller.
+ *
+ * @return
+ *   - 0: Success, driver provides event adapter capabilities for the
+ *     cryptodev.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_crypto_adapter_caps_get_t)
+                                       (const struct rte_eventdev *dev,
+                                        const struct rte_cryptodev *cdev,
+                                        uint32_t *caps);
+
+/**
+ * This API may change without prior notice
+ *
+ * Add crypto queue pair to event device. This callback is invoked if
+ * the caps returned from rte_event_crypto_adapter_caps_get(, cdev_id)
+ * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   cryptodev pointer
+ *
+ * @param queue_pair_id
+ *   cryptodev queue pair identifier.
+ *
+ * @param event
+ *  Event information required for binding cryptodev queue pair to event queue.
+ *  This structure will have a valid value for only those HW PMDs supporting
+ *  @see RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND capability.
+ *
+ * @return
+ *   - 0: Success, cryptodev queue pair added successfully.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_crypto_adapter_queue_pair_add_t)
+                       (const struct rte_eventdev *dev,
+                        const struct rte_cryptodev *cdev,
+                        int32_t queue_pair_id,
+                        const struct rte_event *event);
+
+
+/**
+ * This API may change without prior notice
+ *
+ * Delete crypto queue pair to event device. This callback is invoked if
+ * the caps returned from rte_event_crypto_adapter_caps_get(, cdev_id)
+ * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   cryptodev pointer
+ *
+ * @param queue_pair_id
+ *   cryptodev queue pair identifier.
+ *
+ * @return
+ *   - 0: Success, cryptodev queue pair deleted successfully.
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_crypto_adapter_queue_pair_del_t)
+                                       (const struct rte_eventdev *dev,
+                                        const struct rte_cryptodev *cdev,
+                                        int32_t queue_pair_id);
+
+/**
+ * Start crypto adapter. This callback is invoked if
+ * the caps returned from rte_event_crypto_adapter_caps_get(.., cdev_id)
+ * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set and queue pairs
+ * from cdev_id have been added to the event device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   Crypto device pointer
+ *
+ * @return
+ *   - 0: Success, crypto adapter started successfully.
+ *   - <0: Error code returned by the driver function.
+ */
+typedef int (*eventdev_crypto_adapter_start_t)
+                                       (const struct rte_eventdev *dev,
+                                        const struct rte_cryptodev *cdev);
+
+/**
+ * Stop crypto adapter. This callback is invoked if
+ * the caps returned from rte_event_crypto_adapter_caps_get(.., cdev_id)
+ * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set and queue pairs
+ * from cdev_id have been added to the event device.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   Crypto device pointer
+ *
+ * @return
+ *   - 0: Success, crypto adapter stopped successfully.
+ *   - <0: Error code returned by the driver function.
+ */
+typedef int (*eventdev_crypto_adapter_stop_t)
+                                       (const struct rte_eventdev *dev,
+                                        const struct rte_cryptodev *cdev);
+
+struct rte_event_crypto_adapter_stats;
+
+/**
+ * Retrieve crypto adapter statistics.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   Crypto device pointer
+ *
+ * @param[out] stats
+ *   Pointer to stats structure
+ *
+ * @return
+ *   Return 0 on success.
+ */
+
+typedef int (*eventdev_crypto_adapter_stats_get)
+                       (const struct rte_eventdev *dev,
+                        const struct rte_cryptodev *cdev,
+                        struct rte_event_crypto_adapter_stats *stats);
+
+/**
+ * Reset crypto adapter statistics.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param cdev
+ *   Crypto device pointer
+ *
+ * @return
+ *   Return 0 on success.
+ */
+
+typedef int (*eventdev_crypto_adapter_stats_reset)
+                       (const struct rte_eventdev *dev,
+                        const struct rte_cryptodev *cdev);
+
+/**
+ * Retrieve the event device's eth Tx adapter capabilities.
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param[out] caps
+ *   A pointer to memory filled with eth Tx adapter capabilities.
+ *
+ * @return
+ *   - 0: Success, driver provides eth Tx adapter capabilities
+ *   - <0: Error code returned by the driver function.
+ *
+ */
+typedef int (*eventdev_eth_tx_adapter_caps_get_t)
+                                       (const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev,
+                                       uint32_t *caps);
+
+/**
+ * Create adapter callback.
+ *
+ * @param id
+ *   Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *   - 0: Success.
+ *   - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_create_t)(uint8_t id,
+                                       const struct rte_eventdev *dev);
+
+/**
+ * Free adapter callback.
+ *
+ * @param id
+ *   Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *   - 0: Success.
+ *   - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_free_t)(uint8_t id,
+                                       const struct rte_eventdev *dev);
+
+/**
+ * Add a Tx queue to the adapter.
+ * A queue value of -1 is used to indicate all
+ * queues within the device.
+ *
+ * @param id
+ *   Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param tx_queue_id
+ *   Transmit queue index
+ *
+ * @return
+ *   - 0: Success.
+ *   - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_queue_add_t)(
+                                       uint8_t id,
+                                       const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev,
+                                       int32_t tx_queue_id);
+
+/**
+ * Delete a Tx queue from the adapter.
+ * A queue value of -1 is used to indicate all
+ * queues within the device, that have been added to this
+ * adapter.
+ *
+ * @param id
+ *   Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param eth_dev
+ *   Ethernet device pointer
+ *
+ * @param tx_queue_id
+ *   Transmit queue index
+ *
+ * @return
+ *  - 0: Success, Queues deleted successfully.
+ *  - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_queue_del_t)(
+                                       uint8_t id,
+                                       const struct rte_eventdev *dev,
+                                       const struct rte_eth_dev *eth_dev,
+                                       int32_t tx_queue_id);
+
+/**
+ * Start the adapter.
+ *
+ * @param id
+ *   Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *  - 0: Success, Adapter started correctly.
+ *  - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_start_t)(uint8_t id,
+                                       const struct rte_eventdev *dev);
+
+/**
+ * Stop the adapter.
+ *
+ * @param id
+ *  Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *  - 0: Success.
+ *  - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_stop_t)(uint8_t id,
+                                       const struct rte_eventdev *dev);
+
+struct rte_event_eth_tx_adapter_stats;
+
+/**
+ * Retrieve statistics for an adapter
+ *
+ * @param id
+ *  Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @param [out] stats
+ *  A pointer to structure used to retrieve statistics for an adapter
+ *
+ * @return
+ *  - 0: Success, statistics retrieved successfully.
+ *  - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_stats_get_t)(
+                               uint8_t id,
+                               const struct rte_eventdev *dev,
+                               struct rte_event_eth_tx_adapter_stats *stats);
+
+/**
+ * Reset statistics for an adapter
+ *
+ * @param id
+ *  Adapter identifier
+ *
+ * @param dev
+ *   Event device pointer
+ *
+ * @return
+ *  - 0: Success, statistics retrieved successfully.
+ *  - <0: Error code on failure.
+ */
+typedef int (*eventdev_eth_tx_adapter_stats_reset_t)(uint8_t id,
+                                       const struct rte_eventdev *dev);
+
+/** Event device operations function pointer table */
+struct rte_eventdev_ops {
+       eventdev_info_get_t dev_infos_get;      /**< Get device info. */
+       eventdev_configure_t dev_configure;     /**< Configure device. */
+       eventdev_start_t dev_start;             /**< Start device. */
+       eventdev_stop_t dev_stop;               /**< Stop device. */
+       eventdev_close_t dev_close;             /**< Close device. */
+
+       eventdev_queue_default_conf_get_t queue_def_conf;
+       /**< Get default queue configuration. */
+       eventdev_queue_setup_t queue_setup;
+       /**< Set up an event queue. */
+       eventdev_queue_release_t queue_release;
+       /**< Release an event queue. */
+
+       eventdev_port_default_conf_get_t port_def_conf;
+       /**< Get default port configuration. */
+       eventdev_port_setup_t port_setup;
+       /**< Set up an event port. */
+       eventdev_port_release_t port_release;
+       /**< Release an event port. */
+
+       eventdev_port_link_t port_link;
+       /**< Link event queues to an event port. */
+       eventdev_port_unlink_t port_unlink;
+       /**< Unlink event queues from an event port. */
+       eventdev_port_unlinks_in_progress_t port_unlinks_in_progress;
+       /**< Unlinks in progress on an event port. */
+       eventdev_dequeue_timeout_ticks_t timeout_ticks;
+       /**< Converts ns to *timeout_ticks* value for rte_event_dequeue() */
+       eventdev_dump_t dump;
+       /* Dump internal information */
+
+       eventdev_xstats_get_t xstats_get;
+       /**< Get extended device statistics. */
+       eventdev_xstats_get_names_t xstats_get_names;
+       /**< Get names of extended stats. */
+       eventdev_xstats_get_by_name xstats_get_by_name;
+       /**< Get one value by name. */
+       eventdev_xstats_reset_t xstats_reset;
+       /**< Reset the statistics values in xstats. */
+
+       eventdev_eth_rx_adapter_caps_get_t eth_rx_adapter_caps_get;
+       /**< Get ethernet Rx adapter capabilities */
+       eventdev_eth_rx_adapter_queue_add_t eth_rx_adapter_queue_add;
+       /**< Add Rx queues to ethernet Rx adapter */
+       eventdev_eth_rx_adapter_queue_del_t eth_rx_adapter_queue_del;
+       /**< Delete Rx queues from ethernet Rx adapter */
+       eventdev_eth_rx_adapter_start_t eth_rx_adapter_start;
+       /**< Start ethernet Rx adapter */
+       eventdev_eth_rx_adapter_stop_t eth_rx_adapter_stop;
+       /**< Stop ethernet Rx adapter */
+       eventdev_eth_rx_adapter_stats_get eth_rx_adapter_stats_get;
+       /**< Get ethernet Rx stats */
+       eventdev_eth_rx_adapter_stats_reset eth_rx_adapter_stats_reset;
+       /**< Reset ethernet Rx stats */
+
+       eventdev_timer_adapter_caps_get_t timer_adapter_caps_get;
+       /**< Get timer adapter capabilities */
+
+       eventdev_crypto_adapter_caps_get_t crypto_adapter_caps_get;
+       /**< Get crypto adapter capabilities */
+       eventdev_crypto_adapter_queue_pair_add_t crypto_adapter_queue_pair_add;
+       /**< Add queue pair to crypto adapter */
+       eventdev_crypto_adapter_queue_pair_del_t crypto_adapter_queue_pair_del;
+       /**< Delete queue pair from crypto adapter */
+       eventdev_crypto_adapter_start_t crypto_adapter_start;
+       /**< Start crypto adapter */
+       eventdev_crypto_adapter_stop_t crypto_adapter_stop;
+       /**< Stop crypto adapter */
+       eventdev_crypto_adapter_stats_get crypto_adapter_stats_get;
+       /**< Get crypto stats */
+       eventdev_crypto_adapter_stats_reset crypto_adapter_stats_reset;
+       /**< Reset crypto stats */
+
+       eventdev_eth_tx_adapter_caps_get_t eth_tx_adapter_caps_get;
+       /**< Get ethernet Tx adapter capabilities */
+
+       eventdev_eth_tx_adapter_create_t eth_tx_adapter_create;
+       /**< Create adapter callback */
+       eventdev_eth_tx_adapter_free_t eth_tx_adapter_free;
+       /**< Free adapter callback */
+       eventdev_eth_tx_adapter_queue_add_t eth_tx_adapter_queue_add;
+       /**< Add Tx queues to the eth Tx adapter */
+       eventdev_eth_tx_adapter_queue_del_t eth_tx_adapter_queue_del;
+       /**< Delete Tx queues from the eth Tx adapter */
+       eventdev_eth_tx_adapter_start_t eth_tx_adapter_start;
+       /**< Start eth Tx adapter */
+       eventdev_eth_tx_adapter_stop_t eth_tx_adapter_stop;
+       /**< Stop eth Tx adapter */
+       eventdev_eth_tx_adapter_stats_get_t eth_tx_adapter_stats_get;
+       /**< Get eth Tx adapter statistics */
+       eventdev_eth_tx_adapter_stats_reset_t eth_tx_adapter_stats_reset;
+       /**< Reset eth Tx adapter statistics */
+
+       eventdev_selftest dev_selftest;
+       /**< Start eventdev Selftest */
+
+       eventdev_stop_flush_t dev_stop_flush;
+       /**< User-provided event flush function */
+};
+
+/**
+ * Allocates a new eventdev slot for an event device and returns the pointer
+ * to that slot for the driver to use.
+ *
+ * @param name
+ *   Unique identifier name for each device
+ * @param socket_id
+ *   Socket to allocate resources on.
+ * @return
+ *   - Slot in the rte_dev_devices array for a new device;
+ */
+struct rte_eventdev *
+rte_event_pmd_allocate(const char *name, int socket_id);
+
+/**
+ * Release the specified eventdev device.
+ *
+ * @param eventdev
+ * The *eventdev* pointer is the address of the *rte_eventdev* structure.
+ * @return
+ *   - 0 on success, negative on error
+ */
+int
+rte_event_pmd_release(struct rte_eventdev *eventdev);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_EVENTDEV_PMD_H_ */
diff --git a/lib/librte_eventdev/eventdev_pmd_pci.h b/lib/librte_eventdev/eventdev_pmd_pci.h
new file mode 100644 (file)
index 0000000..d14ea63
--- /dev/null
@@ -0,0 +1,158 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2017 Cavium, Inc
+ */
+
+#ifndef _RTE_EVENTDEV_PMD_PCI_H_
+#define _RTE_EVENTDEV_PMD_PCI_H_
+
+/** @file
+ * RTE Eventdev PCI PMD APIs
+ *
+ * @note
+ * These API are from event PCI PMD only and user applications should not call
+ * them directly.
+ */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <string.h>
+
+#include <rte_config.h>
+#include <rte_eal.h>
+#include <rte_lcore.h>
+#include <rte_pci.h>
+#include <rte_bus_pci.h>
+
+#include "eventdev_pmd.h"
+
+typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev);
+
+/**
+ * @internal
+ * Wrapper for use by pci drivers as a .probe function to attach to an event
+ * interface.  Same as rte_event_pmd_pci_probe, except caller can specify
+ * the name.
+ */
+__rte_experimental
+static inline int
+rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv,
+                             struct rte_pci_device *pci_dev,
+                             size_t private_data_size,
+                             eventdev_pmd_pci_callback_t devinit,
+                             const char *name)
+{
+       struct rte_eventdev *eventdev;
+       int retval;
+
+       if (devinit == NULL)
+               return -EINVAL;
+
+       eventdev = rte_event_pmd_allocate(name,
+                        pci_dev->device.numa_node);
+       if (eventdev == NULL)
+               return -ENOMEM;
+
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+               eventdev->data->dev_private =
+                               rte_zmalloc_socket(
+                                               "eventdev private structure",
+                                               private_data_size,
+                                               RTE_CACHE_LINE_SIZE,
+                                               rte_socket_id());
+
+               if (eventdev->data->dev_private == NULL)
+                       rte_panic("Cannot allocate memzone for private "
+                                       "device data");
+       }
+
+       eventdev->dev = &pci_dev->device;
+
+       /* Invoke PMD device initialization function */
+       retval = devinit(eventdev);
+       if (retval == 0)
+               return 0;
+
+       RTE_EDEV_LOG_ERR("driver %s: (vendor_id=0x%x device_id=0x%x)"
+                       " failed", pci_drv->driver.name,
+                       (unsigned int) pci_dev->id.vendor_id,
+                       (unsigned int) pci_dev->id.device_id);
+
+       rte_event_pmd_release(eventdev);
+
+       return -ENXIO;
+}
+
+/**
+ * @internal
+ * Wrapper for use by pci drivers as a .probe function to attach to a event
+ * interface.
+ */
+static inline int
+rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv,
+                           struct rte_pci_device *pci_dev,
+                           size_t private_data_size,
+                           eventdev_pmd_pci_callback_t devinit)
+{
+       char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN];
+
+       rte_pci_device_name(&pci_dev->addr, eventdev_name,
+                       sizeof(eventdev_name));
+
+       return rte_event_pmd_pci_probe_named(pci_drv,
+                                            pci_dev,
+                                            private_data_size,
+                                            devinit,
+                                            eventdev_name);
+}
+
+/**
+ * @internal
+ * Wrapper for use by pci drivers as a .remove function to detach a event
+ * interface.
+ */
+static inline int
+rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev,
+                            eventdev_pmd_pci_callback_t devuninit)
+{
+       struct rte_eventdev *eventdev;
+       char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN];
+       int ret = 0;
+
+       if (pci_dev == NULL)
+               return -EINVAL;
+
+       rte_pci_device_name(&pci_dev->addr, eventdev_name,
+                       sizeof(eventdev_name));
+
+       eventdev = rte_event_pmd_get_named_dev(eventdev_name);
+       if (eventdev == NULL)
+               return -ENODEV;
+
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+               ret = rte_event_dev_close(eventdev->data->dev_id);
+               if (ret < 0)
+                       return ret;
+       }
+
+       /* Invoke PMD device un-init function */
+       if (devuninit)
+               ret = devuninit(eventdev);
+       if (ret)
+               return ret;
+
+       /* Free event device */
+       rte_event_pmd_release(eventdev);
+
+       eventdev->dev = NULL;
+
+       return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_EVENTDEV_PMD_PCI_H_ */
diff --git a/lib/librte_eventdev/eventdev_pmd_vdev.h b/lib/librte_eventdev/eventdev_pmd_vdev.h
new file mode 100644 (file)
index 0000000..bc0cf44
--- /dev/null
@@ -0,0 +1,108 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2016-2017 Cavium, Inc
+ */
+
+#ifndef _RTE_EVENTDEV_PMD_VDEV_H_
+#define _RTE_EVENTDEV_PMD_VDEV_H_
+
+/** @file
+ * RTE Eventdev VDEV PMD APIs
+ *
+ * @note
+ * These API are from event VDEV PMD only and user applications should not call
+ * them directly.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <string.h>
+
+#include <rte_config.h>
+#include <rte_debug.h>
+#include <rte_eal.h>
+#include <rte_bus_vdev.h>
+
+#include "eventdev_pmd.h"
+
+/**
+ * @internal
+ * Creates a new virtual event device and returns the pointer to that device.
+ *
+ * @param name
+ *   PMD type name
+ * @param dev_private_size
+ *   Size of event PMDs private data
+ * @param socket_id
+ *   Socket to allocate resources on.
+ *
+ * @return
+ *   - Eventdev pointer if device is successfully created.
+ *   - NULL if device cannot be created.
+ */
+static inline struct rte_eventdev *
+rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
+               int socket_id)
+{
+
+       struct rte_eventdev *eventdev;
+
+       /* Allocate device structure */
+       eventdev = rte_event_pmd_allocate(name, socket_id);
+       if (eventdev == NULL)
+               return NULL;
+
+       /* Allocate private device structure */
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+               eventdev->data->dev_private =
+                               rte_zmalloc_socket("eventdev device private",
+                                               dev_private_size,
+                                               RTE_CACHE_LINE_SIZE,
+                                               socket_id);
+
+               if (eventdev->data->dev_private == NULL)
+                       rte_panic("Cannot allocate memzone for private device"
+                                       " data");
+       }
+
+       return eventdev;
+}
+
+/**
+ * @internal
+ * Destroy the given virtual event device
+ *
+ * @param name
+ *   PMD type name
+ * @return
+ *   - 0 on success, negative on error
+ */
+static inline int
+rte_event_pmd_vdev_uninit(const char *name)
+{
+       int ret;
+       struct rte_eventdev *eventdev;
+
+       if (name == NULL)
+               return -EINVAL;
+
+       eventdev = rte_event_pmd_get_named_dev(name);
+       if (eventdev == NULL)
+               return -ENODEV;
+
+       ret = rte_event_dev_close(eventdev->data->dev_id);
+       if (ret < 0)
+               return ret;
+
+       /* Free the event device */
+       rte_event_pmd_release(eventdev);
+
+       return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_EVENTDEV_PMD_VDEV_H_ */
index 0adc2cd..79d36d3 100644 (file)
@@ -15,9 +15,6 @@ sources = files('rte_eventdev.c',
                'rte_event_crypto_adapter.c',
                'rte_event_eth_tx_adapter.c')
 headers = files('rte_eventdev.h',
-               'rte_eventdev_pmd.h',
-               'rte_eventdev_pmd_pci.h',
-               'rte_eventdev_pmd_vdev.h',
                'rte_eventdev_trace.h',
                'rte_eventdev_trace_fp.h',
                'rte_event_ring.h',
index b043121..d903cdd 100644 (file)
@@ -15,7 +15,7 @@
 #include <rte_service_component.h>
 
 #include "rte_eventdev.h"
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_eventdev_trace.h"
 #include "rte_event_crypto_adapter.h"
 
index 3c73046..d8c635e 100644 (file)
@@ -19,7 +19,7 @@
 #include <rte_interrupts.h>
 
 #include "rte_eventdev.h"
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_eventdev_trace.h"
 #include "rte_event_eth_rx_adapter.h"
 
index cc27bbc..5b4c42d 100644 (file)
@@ -5,7 +5,7 @@
 #include <rte_service_component.h>
 #include <rte_ethdev.h>
 
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_eventdev_trace.h"
 #include "rte_event_eth_tx_adapter.h"
 
index 4c5e49e..dd7b830 100644 (file)
@@ -21,7 +21,7 @@
 #include <rte_cycles.h>
 
 #include "rte_eventdev.h"
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_eventdev_trace.h"
 #include "rte_event_timer_adapter.h"
 #include "rte_event_timer_adapter_pmd.h"
index afbadc5..b57363f 100644 (file)
@@ -35,7 +35,7 @@
 #include <rte_telemetry.h>
 
 #include "rte_eventdev.h"
-#include "rte_eventdev_pmd.h"
+#include "eventdev_pmd.h"
 #include "rte_eventdev_trace.h"
 
 static struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS];
diff --git a/lib/librte_eventdev/rte_eventdev_pmd.h b/lib/librte_eventdev/rte_eventdev_pmd.h
deleted file mode 100644 (file)
index 9e83993..0000000
+++ /dev/null
@@ -1,1148 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016 Cavium, Inc
- */
-
-#ifndef _RTE_EVENTDEV_PMD_H_
-#define _RTE_EVENTDEV_PMD_H_
-
-/** @file
- * RTE Event PMD APIs
- *
- * @note
- * These API are from event PMD only and user applications should not call
- * them directly.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <string.h>
-
-#include <rte_common.h>
-#include <rte_compat.h>
-#include <rte_config.h>
-#include <rte_dev.h>
-#include <rte_log.h>
-#include <rte_malloc.h>
-#include <rte_mbuf.h>
-#include <rte_mbuf_dyn.h>
-
-#include "rte_eventdev.h"
-#include "rte_event_timer_adapter_pmd.h"
-
-/* Logging Macros */
-#define RTE_EDEV_LOG_ERR(...) \
-       RTE_LOG(ERR, EVENTDEV, \
-               RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
-                       __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
-
-#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
-#define RTE_EDEV_LOG_DEBUG(...) \
-       RTE_LOG(DEBUG, EVENTDEV, \
-               RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
-                       __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
-#else
-#define RTE_EDEV_LOG_DEBUG(...) (void)0
-#endif
-
-/* Macros to check for valid device */
-#define RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, retval) do { \
-       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
-               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
-               return retval; \
-       } \
-} while (0)
-
-#define RTE_EVENTDEV_VALID_DEVID_OR_ERRNO_RET(dev_id, errno, retval) do { \
-       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
-               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
-               rte_errno = errno; \
-               return retval; \
-       } \
-} while (0)
-
-#define RTE_EVENTDEV_VALID_DEVID_OR_RET(dev_id) do { \
-       if (!rte_event_pmd_is_valid_dev((dev_id))) { \
-               RTE_EDEV_LOG_ERR("Invalid dev_id=%d\n", dev_id); \
-               return; \
-       } \
-} while (0)
-
-#define RTE_EVENT_ETH_RX_ADAPTER_SW_CAP \
-               ((RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID) | \
-                       (RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ))
-
-#define RTE_EVENT_CRYPTO_ADAPTER_SW_CAP \
-               RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA
-
-/**< Ethernet Rx adapter cap to return If the packet transfers from
- * the ethdev to eventdev use a SW service function
- */
-
-#define RTE_EVENTDEV_DETACHED  (0)
-#define RTE_EVENTDEV_ATTACHED  (1)
-
-struct rte_eth_dev;
-
-/** Global structure used for maintaining state of allocated event devices */
-struct rte_eventdev_global {
-       uint8_t nb_devs;        /**< Number of devices found */
-};
-
-extern struct rte_eventdev *rte_eventdevs;
-/** The pool of rte_eventdev structures. */
-
-/**
- * Get the rte_eventdev structure device pointer for the named device.
- *
- * @param name
- *   device name to select the device structure.
- *
- * @return
- *   - The rte_eventdev structure pointer for the given device ID.
- */
-static inline struct rte_eventdev *
-rte_event_pmd_get_named_dev(const char *name)
-{
-       struct rte_eventdev *dev;
-       unsigned int i;
-
-       if (name == NULL)
-               return NULL;
-
-       for (i = 0; i < RTE_EVENT_MAX_DEVS; i++) {
-               dev = &rte_eventdevs[i];
-               if ((dev->attached == RTE_EVENTDEV_ATTACHED) &&
-                               (strcmp(dev->data->name, name) == 0))
-                       return dev;
-       }
-
-       return NULL;
-}
-
-/**
- * Validate if the event device index is valid attached event device.
- *
- * @param dev_id
- *   Event device index.
- *
- * @return
- *   - If the device index is valid (1) or not (0).
- */
-static inline unsigned
-rte_event_pmd_is_valid_dev(uint8_t dev_id)
-{
-       struct rte_eventdev *dev;
-
-       if (dev_id >= RTE_EVENT_MAX_DEVS)
-               return 0;
-
-       dev = &rte_eventdevs[dev_id];
-       if (dev->attached != RTE_EVENTDEV_ATTACHED)
-               return 0;
-       else
-               return 1;
-}
-
-/**
- * Definitions of all functions exported by a driver through the
- * the generic structure of type *event_dev_ops* supplied in the
- * *rte_eventdev* structure associated with a device.
- */
-
-/**
- * Get device information of a device.
- *
- * @param dev
- *   Event device pointer
- * @param dev_info
- *   Event device information structure
- *
- * @return
- *   Returns 0 on success
- */
-typedef void (*eventdev_info_get_t)(struct rte_eventdev *dev,
-               struct rte_event_dev_info *dev_info);
-
-/**
- * Configure a device.
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *   Returns 0 on success
- */
-typedef int (*eventdev_configure_t)(const struct rte_eventdev *dev);
-
-/**
- * Start a configured device.
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *   Returns 0 on success
- */
-typedef int (*eventdev_start_t)(struct rte_eventdev *dev);
-
-/**
- * Stop a configured device.
- *
- * @param dev
- *   Event device pointer
- */
-typedef void (*eventdev_stop_t)(struct rte_eventdev *dev);
-
-/**
- * Close a configured device.
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- * - 0 on success
- * - (-EAGAIN) if can't close as device is busy
- */
-typedef int (*eventdev_close_t)(struct rte_eventdev *dev);
-
-/**
- * Retrieve the default event queue configuration.
- *
- * @param dev
- *   Event device pointer
- * @param queue_id
- *   Event queue index
- * @param[out] queue_conf
- *   Event queue configuration structure
- *
- */
-typedef void (*eventdev_queue_default_conf_get_t)(struct rte_eventdev *dev,
-               uint8_t queue_id, struct rte_event_queue_conf *queue_conf);
-
-/**
- * Setup an event queue.
- *
- * @param dev
- *   Event device pointer
- * @param queue_id
- *   Event queue index
- * @param queue_conf
- *   Event queue configuration structure
- *
- * @return
- *   Returns 0 on success.
- */
-typedef int (*eventdev_queue_setup_t)(struct rte_eventdev *dev,
-               uint8_t queue_id,
-               const struct rte_event_queue_conf *queue_conf);
-
-/**
- * Release resources allocated by given event queue.
- *
- * @param dev
- *   Event device pointer
- * @param queue_id
- *   Event queue index
- *
- */
-typedef void (*eventdev_queue_release_t)(struct rte_eventdev *dev,
-               uint8_t queue_id);
-
-/**
- * Retrieve the default event port configuration.
- *
- * @param dev
- *   Event device pointer
- * @param port_id
- *   Event port index
- * @param[out] port_conf
- *   Event port configuration structure
- *
- */
-typedef void (*eventdev_port_default_conf_get_t)(struct rte_eventdev *dev,
-               uint8_t port_id, struct rte_event_port_conf *port_conf);
-
-/**
- * Setup an event port.
- *
- * @param dev
- *   Event device pointer
- * @param port_id
- *   Event port index
- * @param port_conf
- *   Event port configuration structure
- *
- * @return
- *   Returns 0 on success.
- */
-typedef int (*eventdev_port_setup_t)(struct rte_eventdev *dev,
-               uint8_t port_id,
-               const struct rte_event_port_conf *port_conf);
-
-/**
- * Release memory resources allocated by given event port.
- *
- * @param port
- *   Event port pointer
- *
- */
-typedef void (*eventdev_port_release_t)(void *port);
-
-/**
- * Link multiple source event queues to destination event port.
- *
- * @param dev
- *   Event device pointer
- * @param port
- *   Event port pointer
- * @param queues
- *   Points to an array of *nb_links* event queues to be linked
- *   to the event port.
- * @param priorities
- *   Points to an array of *nb_links* service priorities associated with each
- *   event queue link to event port.
- * @param nb_links
- *   The number of links to establish
- *
- * @return
- *   Returns 0 on success.
- *
- */
-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
- *   An array of *nb_unlinks* event queues to be unlinked from the event port.
- * @param nb_unlinks
- *   The number of unlinks to establish
- *
- * @return
- *   Returns 0 on success.
- *
- */
-typedef int (*eventdev_port_unlink_t)(struct rte_eventdev *dev, void *port,
-               uint8_t queues[], uint16_t nb_unlinks);
-
-/**
- * Unlinks in progress. Returns number of unlinks that the PMD is currently
- * performing, but have not yet been completed.
- *
- * @param dev
- *   Event device pointer
- *
- * @param port
- *   Event port pointer
- *
- * @return
- *   Returns the number of in-progress unlinks. Zero is returned if none are
- *   in progress.
- */
-typedef int (*eventdev_port_unlinks_in_progress_t)(struct rte_eventdev *dev,
-               void *port);
-
-/**
- * Converts nanoseconds to *timeout_ticks* value for rte_event_dequeue()
- *
- * @param dev
- *   Event device pointer
- * @param ns
- *   Wait time in nanosecond
- * @param[out] timeout_ticks
- *   Value for the *timeout_ticks* parameter in rte_event_dequeue() function
- *
- * @return
- *   Returns 0 on success.
- *
- */
-typedef int (*eventdev_dequeue_timeout_ticks_t)(struct rte_eventdev *dev,
-               uint64_t ns, uint64_t *timeout_ticks);
-
-/**
- * Dump internal information
- *
- * @param dev
- *   Event device pointer
- * @param f
- *   A pointer to a file for output
- *
- */
-typedef void (*eventdev_dump_t)(struct rte_eventdev *dev, FILE *f);
-
-/**
- * Retrieve a set of statistics from device
- *
- * @param dev
- *   Event device pointer
- * @param mode
- *   Level (device, port or queue)
- * @param queue_port_id
- *   Queue or port number depending on mode
- * @param ids
- *   The stat ids to retrieve
- * @param values
- *   The returned stat values
- * @param n
- *   The number of id values and entries in the values array
- * @return
- *   The number of stat values successfully filled into the values array
- */
-typedef int (*eventdev_xstats_get_t)(const struct rte_eventdev *dev,
-               enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id,
-               const unsigned int ids[], uint64_t values[], unsigned int n);
-
-/**
- * Resets the statistic values in xstats for the device, based on mode.
- */
-typedef int (*eventdev_xstats_reset_t)(struct rte_eventdev *dev,
-               enum rte_event_dev_xstats_mode mode,
-               int16_t queue_port_id,
-               const uint32_t ids[],
-               uint32_t nb_ids);
-
-/**
- * Get names of extended stats of an event device
- *
- * @param dev
- *   Event device pointer
- * @param mode
- *   Level (device, port or queue)
- * @param queue_port_id
- *   Queue or port number depending on mode
- * @param xstats_names
- *   Array of name values to be filled in
- * @param ids
- *   The stat ids to retrieve
- * @param size
- *   Number of values in the xstats_names array
- * @return
- *   When size >= the number of stats, return the number of stat values filled
- *   into the array.
- *   When size < the number of available stats, return the number of stats
- *   values, and do not fill in any data into xstats_names.
- */
-typedef int (*eventdev_xstats_get_names_t)(const struct rte_eventdev *dev,
-               enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id,
-               struct rte_event_dev_xstats_name *xstats_names,
-               unsigned int *ids, unsigned int size);
-
-/**
- * Get value of one stats and optionally return its id
- *
- * @param dev
- *   Event device pointer
- * @param name
- *   The name of the stat to retrieve
- * @param id
- *   Pointer to an unsigned int where we store the stat-id for future reference.
- *   This pointer may be null if the id is not required.
- * @return
- *   The value of the stat, or (uint64_t)-1 if the stat is not found.
- *   If the stat is not found, the id value will be returned as (unsigned)-1,
- *   if id pointer is non-NULL
- */
-typedef uint64_t (*eventdev_xstats_get_by_name)(const struct rte_eventdev *dev,
-               const char *name, unsigned int *id);
-
-
-/**
- * Retrieve the event device's ethdev Rx adapter capabilities for the
- * specified ethernet port
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param[out] caps
- *   A pointer to memory filled with Rx event adapter capabilities.
- *
- * @return
- *   - 0: Success, driver provides Rx event adapter capabilities for the
- *     ethernet device.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_eth_rx_adapter_caps_get_t)
-                                       (const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev,
-                                       uint32_t *caps);
-
-struct rte_event_eth_rx_adapter_queue_conf;
-
-/**
- * Retrieve the event device's timer adapter capabilities, as well as the ops
- * structure that an event timer adapter should call through to enter the
- * driver
- *
- * @param dev
- *   Event device pointer
- *
- * @param flags
- *   Flags that can be used to determine how to select an event timer
- *   adapter ops structure
- *
- * @param[out] caps
- *   A pointer to memory filled with Rx event adapter capabilities.
- *
- * @param[out] ops
- *   A pointer to the ops pointer to set with the address of the desired ops
- *   structure
- *
- * @return
- *   - 0: Success, driver provides Rx event adapter capabilities for the
- *     ethernet device.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_timer_adapter_caps_get_t)(
-                               const struct rte_eventdev *dev,
-                               uint64_t flags,
-                               uint32_t *caps,
-                               const struct rte_event_timer_adapter_ops **ops);
-
-/**
- * Add ethernet Rx queues to event device. This callback is invoked if
- * the caps returned from rte_eventdev_eth_rx_adapter_caps_get(, eth_port_id)
- * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param rx_queue_id
- *   Ethernet device receive queue index
- *
- * @param queue_conf
- *  Additional configuration structure
-
- * @return
- *   - 0: Success, ethernet receive queue added successfully.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_eth_rx_adapter_queue_add_t)(
-               const struct rte_eventdev *dev,
-               const struct rte_eth_dev *eth_dev,
-               int32_t rx_queue_id,
-               const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
-
-/**
- * Delete ethernet Rx queues from event device. This callback is invoked if
- * the caps returned from eventdev_eth_rx_adapter_caps_get(, eth_port_id)
- * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param rx_queue_id
- *   Ethernet device receive queue index
- *
- * @return
- *   - 0: Success, ethernet receive queue deleted successfully.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_eth_rx_adapter_queue_del_t)
-                                       (const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev,
-                                       int32_t rx_queue_id);
-
-/**
- * Start ethernet Rx adapter. This callback is invoked if
- * the caps returned from eventdev_eth_rx_adapter_caps_get(.., eth_port_id)
- * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set and Rx queues
- * from eth_port_id have been added to the event device.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @return
- *   - 0: Success, ethernet Rx adapter started successfully.
- *   - <0: Error code returned by the driver function.
- */
-typedef int (*eventdev_eth_rx_adapter_start_t)
-                                       (const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev);
-
-/**
- * Stop ethernet Rx adapter. This callback is invoked if
- * the caps returned from eventdev_eth_rx_adapter_caps_get(..,eth_port_id)
- * has RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT set and Rx queues
- * from eth_port_id have been added to the event device.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @return
- *   - 0: Success, ethernet Rx adapter stopped successfully.
- *   - <0: Error code returned by the driver function.
- */
-typedef int (*eventdev_eth_rx_adapter_stop_t)
-                                       (const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev);
-
-struct rte_event_eth_rx_adapter_stats;
-
-/**
- * Retrieve ethernet Rx adapter statistics.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param[out] stats
- *   Pointer to stats structure
- *
- * @return
- *   Return 0 on success.
- */
-
-typedef int (*eventdev_eth_rx_adapter_stats_get)
-                       (const struct rte_eventdev *dev,
-                       const struct rte_eth_dev *eth_dev,
-                       struct rte_event_eth_rx_adapter_stats *stats);
-/**
- * Reset ethernet Rx adapter statistics.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @return
- *   Return 0 on success.
- */
-typedef int (*eventdev_eth_rx_adapter_stats_reset)
-                       (const struct rte_eventdev *dev,
-                       const struct rte_eth_dev *eth_dev);
-/**
- * Start eventdev selftest.
- *
- * @return
- *   Return 0 on success.
- */
-typedef int (*eventdev_selftest)(void);
-
-typedef uint32_t rte_event_pmd_selftest_seqn_t;
-extern int rte_event_pmd_selftest_seqn_dynfield_offset;
-
-/**
- * Read test sequence number from mbuf.
- *
- * @param mbuf Structure to read from.
- * @return pointer to test sequence number.
- */
-__rte_internal
-static inline rte_event_pmd_selftest_seqn_t *
-rte_event_pmd_selftest_seqn(struct rte_mbuf *mbuf)
-{
-       return RTE_MBUF_DYNFIELD(mbuf,
-               rte_event_pmd_selftest_seqn_dynfield_offset,
-               rte_event_pmd_selftest_seqn_t *);
-}
-
-struct rte_cryptodev;
-
-/**
- * This API may change without prior notice
- *
- * Retrieve the event device's crypto adapter capabilities for the
- * specified cryptodev
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   cryptodev pointer
- *
- * @param[out] caps
- *   A pointer to memory filled with event adapter capabilities.
- *   It is expected to be pre-allocated & initialized by caller.
- *
- * @return
- *   - 0: Success, driver provides event adapter capabilities for the
- *     cryptodev.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_crypto_adapter_caps_get_t)
-                                       (const struct rte_eventdev *dev,
-                                        const struct rte_cryptodev *cdev,
-                                        uint32_t *caps);
-
-/**
- * This API may change without prior notice
- *
- * Add crypto queue pair to event device. This callback is invoked if
- * the caps returned from rte_event_crypto_adapter_caps_get(, cdev_id)
- * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   cryptodev pointer
- *
- * @param queue_pair_id
- *   cryptodev queue pair identifier.
- *
- * @param event
- *  Event information required for binding cryptodev queue pair to event queue.
- *  This structure will have a valid value for only those HW PMDs supporting
- *  @see RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_QP_EV_BIND capability.
- *
- * @return
- *   - 0: Success, cryptodev queue pair added successfully.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_crypto_adapter_queue_pair_add_t)
-                       (const struct rte_eventdev *dev,
-                        const struct rte_cryptodev *cdev,
-                        int32_t queue_pair_id,
-                        const struct rte_event *event);
-
-
-/**
- * This API may change without prior notice
- *
- * Delete crypto queue pair to event device. This callback is invoked if
- * the caps returned from rte_event_crypto_adapter_caps_get(, cdev_id)
- * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   cryptodev pointer
- *
- * @param queue_pair_id
- *   cryptodev queue pair identifier.
- *
- * @return
- *   - 0: Success, cryptodev queue pair deleted successfully.
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_crypto_adapter_queue_pair_del_t)
-                                       (const struct rte_eventdev *dev,
-                                        const struct rte_cryptodev *cdev,
-                                        int32_t queue_pair_id);
-
-/**
- * Start crypto adapter. This callback is invoked if
- * the caps returned from rte_event_crypto_adapter_caps_get(.., cdev_id)
- * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set and queue pairs
- * from cdev_id have been added to the event device.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   Crypto device pointer
- *
- * @return
- *   - 0: Success, crypto adapter started successfully.
- *   - <0: Error code returned by the driver function.
- */
-typedef int (*eventdev_crypto_adapter_start_t)
-                                       (const struct rte_eventdev *dev,
-                                        const struct rte_cryptodev *cdev);
-
-/**
- * Stop crypto adapter. This callback is invoked if
- * the caps returned from rte_event_crypto_adapter_caps_get(.., cdev_id)
- * has RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_* set and queue pairs
- * from cdev_id have been added to the event device.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   Crypto device pointer
- *
- * @return
- *   - 0: Success, crypto adapter stopped successfully.
- *   - <0: Error code returned by the driver function.
- */
-typedef int (*eventdev_crypto_adapter_stop_t)
-                                       (const struct rte_eventdev *dev,
-                                        const struct rte_cryptodev *cdev);
-
-struct rte_event_crypto_adapter_stats;
-
-/**
- * Retrieve crypto adapter statistics.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   Crypto device pointer
- *
- * @param[out] stats
- *   Pointer to stats structure
- *
- * @return
- *   Return 0 on success.
- */
-
-typedef int (*eventdev_crypto_adapter_stats_get)
-                       (const struct rte_eventdev *dev,
-                        const struct rte_cryptodev *cdev,
-                        struct rte_event_crypto_adapter_stats *stats);
-
-/**
- * Reset crypto adapter statistics.
- *
- * @param dev
- *   Event device pointer
- *
- * @param cdev
- *   Crypto device pointer
- *
- * @return
- *   Return 0 on success.
- */
-
-typedef int (*eventdev_crypto_adapter_stats_reset)
-                       (const struct rte_eventdev *dev,
-                        const struct rte_cryptodev *cdev);
-
-/**
- * Retrieve the event device's eth Tx adapter capabilities.
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param[out] caps
- *   A pointer to memory filled with eth Tx adapter capabilities.
- *
- * @return
- *   - 0: Success, driver provides eth Tx adapter capabilities
- *   - <0: Error code returned by the driver function.
- *
- */
-typedef int (*eventdev_eth_tx_adapter_caps_get_t)
-                                       (const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev,
-                                       uint32_t *caps);
-
-/**
- * Create adapter callback.
- *
- * @param id
- *   Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *   - 0: Success.
- *   - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_create_t)(uint8_t id,
-                                       const struct rte_eventdev *dev);
-
-/**
- * Free adapter callback.
- *
- * @param id
- *   Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *   - 0: Success.
- *   - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_free_t)(uint8_t id,
-                                       const struct rte_eventdev *dev);
-
-/**
- * Add a Tx queue to the adapter.
- * A queue value of -1 is used to indicate all
- * queues within the device.
- *
- * @param id
- *   Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param tx_queue_id
- *   Transmit queue index
- *
- * @return
- *   - 0: Success.
- *   - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_queue_add_t)(
-                                       uint8_t id,
-                                       const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev,
-                                       int32_t tx_queue_id);
-
-/**
- * Delete a Tx queue from the adapter.
- * A queue value of -1 is used to indicate all
- * queues within the device, that have been added to this
- * adapter.
- *
- * @param id
- *   Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @param eth_dev
- *   Ethernet device pointer
- *
- * @param tx_queue_id
- *   Transmit queue index
- *
- * @return
- *  - 0: Success, Queues deleted successfully.
- *  - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_queue_del_t)(
-                                       uint8_t id,
-                                       const struct rte_eventdev *dev,
-                                       const struct rte_eth_dev *eth_dev,
-                                       int32_t tx_queue_id);
-
-/**
- * Start the adapter.
- *
- * @param id
- *   Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *  - 0: Success, Adapter started correctly.
- *  - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_start_t)(uint8_t id,
-                                       const struct rte_eventdev *dev);
-
-/**
- * Stop the adapter.
- *
- * @param id
- *  Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *  - 0: Success.
- *  - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_stop_t)(uint8_t id,
-                                       const struct rte_eventdev *dev);
-
-struct rte_event_eth_tx_adapter_stats;
-
-/**
- * Retrieve statistics for an adapter
- *
- * @param id
- *  Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @param [out] stats
- *  A pointer to structure used to retrieve statistics for an adapter
- *
- * @return
- *  - 0: Success, statistics retrieved successfully.
- *  - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_stats_get_t)(
-                               uint8_t id,
-                               const struct rte_eventdev *dev,
-                               struct rte_event_eth_tx_adapter_stats *stats);
-
-/**
- * Reset statistics for an adapter
- *
- * @param id
- *  Adapter identifier
- *
- * @param dev
- *   Event device pointer
- *
- * @return
- *  - 0: Success, statistics retrieved successfully.
- *  - <0: Error code on failure.
- */
-typedef int (*eventdev_eth_tx_adapter_stats_reset_t)(uint8_t id,
-                                       const struct rte_eventdev *dev);
-
-/** Event device operations function pointer table */
-struct rte_eventdev_ops {
-       eventdev_info_get_t dev_infos_get;      /**< Get device info. */
-       eventdev_configure_t dev_configure;     /**< Configure device. */
-       eventdev_start_t dev_start;             /**< Start device. */
-       eventdev_stop_t dev_stop;               /**< Stop device. */
-       eventdev_close_t dev_close;             /**< Close device. */
-
-       eventdev_queue_default_conf_get_t queue_def_conf;
-       /**< Get default queue configuration. */
-       eventdev_queue_setup_t queue_setup;
-       /**< Set up an event queue. */
-       eventdev_queue_release_t queue_release;
-       /**< Release an event queue. */
-
-       eventdev_port_default_conf_get_t port_def_conf;
-       /**< Get default port configuration. */
-       eventdev_port_setup_t port_setup;
-       /**< Set up an event port. */
-       eventdev_port_release_t port_release;
-       /**< Release an event port. */
-
-       eventdev_port_link_t port_link;
-       /**< Link event queues to an event port. */
-       eventdev_port_unlink_t port_unlink;
-       /**< Unlink event queues from an event port. */
-       eventdev_port_unlinks_in_progress_t port_unlinks_in_progress;
-       /**< Unlinks in progress on an event port. */
-       eventdev_dequeue_timeout_ticks_t timeout_ticks;
-       /**< Converts ns to *timeout_ticks* value for rte_event_dequeue() */
-       eventdev_dump_t dump;
-       /* Dump internal information */
-
-       eventdev_xstats_get_t xstats_get;
-       /**< Get extended device statistics. */
-       eventdev_xstats_get_names_t xstats_get_names;
-       /**< Get names of extended stats. */
-       eventdev_xstats_get_by_name xstats_get_by_name;
-       /**< Get one value by name. */
-       eventdev_xstats_reset_t xstats_reset;
-       /**< Reset the statistics values in xstats. */
-
-       eventdev_eth_rx_adapter_caps_get_t eth_rx_adapter_caps_get;
-       /**< Get ethernet Rx adapter capabilities */
-       eventdev_eth_rx_adapter_queue_add_t eth_rx_adapter_queue_add;
-       /**< Add Rx queues to ethernet Rx adapter */
-       eventdev_eth_rx_adapter_queue_del_t eth_rx_adapter_queue_del;
-       /**< Delete Rx queues from ethernet Rx adapter */
-       eventdev_eth_rx_adapter_start_t eth_rx_adapter_start;
-       /**< Start ethernet Rx adapter */
-       eventdev_eth_rx_adapter_stop_t eth_rx_adapter_stop;
-       /**< Stop ethernet Rx adapter */
-       eventdev_eth_rx_adapter_stats_get eth_rx_adapter_stats_get;
-       /**< Get ethernet Rx stats */
-       eventdev_eth_rx_adapter_stats_reset eth_rx_adapter_stats_reset;
-       /**< Reset ethernet Rx stats */
-
-       eventdev_timer_adapter_caps_get_t timer_adapter_caps_get;
-       /**< Get timer adapter capabilities */
-
-       eventdev_crypto_adapter_caps_get_t crypto_adapter_caps_get;
-       /**< Get crypto adapter capabilities */
-       eventdev_crypto_adapter_queue_pair_add_t crypto_adapter_queue_pair_add;
-       /**< Add queue pair to crypto adapter */
-       eventdev_crypto_adapter_queue_pair_del_t crypto_adapter_queue_pair_del;
-       /**< Delete queue pair from crypto adapter */
-       eventdev_crypto_adapter_start_t crypto_adapter_start;
-       /**< Start crypto adapter */
-       eventdev_crypto_adapter_stop_t crypto_adapter_stop;
-       /**< Stop crypto adapter */
-       eventdev_crypto_adapter_stats_get crypto_adapter_stats_get;
-       /**< Get crypto stats */
-       eventdev_crypto_adapter_stats_reset crypto_adapter_stats_reset;
-       /**< Reset crypto stats */
-
-       eventdev_eth_tx_adapter_caps_get_t eth_tx_adapter_caps_get;
-       /**< Get ethernet Tx adapter capabilities */
-
-       eventdev_eth_tx_adapter_create_t eth_tx_adapter_create;
-       /**< Create adapter callback */
-       eventdev_eth_tx_adapter_free_t eth_tx_adapter_free;
-       /**< Free adapter callback */
-       eventdev_eth_tx_adapter_queue_add_t eth_tx_adapter_queue_add;
-       /**< Add Tx queues to the eth Tx adapter */
-       eventdev_eth_tx_adapter_queue_del_t eth_tx_adapter_queue_del;
-       /**< Delete Tx queues from the eth Tx adapter */
-       eventdev_eth_tx_adapter_start_t eth_tx_adapter_start;
-       /**< Start eth Tx adapter */
-       eventdev_eth_tx_adapter_stop_t eth_tx_adapter_stop;
-       /**< Stop eth Tx adapter */
-       eventdev_eth_tx_adapter_stats_get_t eth_tx_adapter_stats_get;
-       /**< Get eth Tx adapter statistics */
-       eventdev_eth_tx_adapter_stats_reset_t eth_tx_adapter_stats_reset;
-       /**< Reset eth Tx adapter statistics */
-
-       eventdev_selftest dev_selftest;
-       /**< Start eventdev Selftest */
-
-       eventdev_stop_flush_t dev_stop_flush;
-       /**< User-provided event flush function */
-};
-
-/**
- * Allocates a new eventdev slot for an event device and returns the pointer
- * to that slot for the driver to use.
- *
- * @param name
- *   Unique identifier name for each device
- * @param socket_id
- *   Socket to allocate resources on.
- * @return
- *   - Slot in the rte_dev_devices array for a new device;
- */
-struct rte_eventdev *
-rte_event_pmd_allocate(const char *name, int socket_id);
-
-/**
- * Release the specified eventdev device.
- *
- * @param eventdev
- * The *eventdev* pointer is the address of the *rte_eventdev* structure.
- * @return
- *   - 0 on success, negative on error
- */
-int
-rte_event_pmd_release(struct rte_eventdev *eventdev);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTE_EVENTDEV_PMD_H_ */
diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h
deleted file mode 100644 (file)
index 5f238bf..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016-2017 Cavium, Inc
- */
-
-#ifndef _RTE_EVENTDEV_PMD_PCI_H_
-#define _RTE_EVENTDEV_PMD_PCI_H_
-
-/** @file
- * RTE Eventdev PCI PMD APIs
- *
- * @note
- * These API are from event PCI PMD only and user applications should not call
- * them directly.
- */
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <string.h>
-
-#include <rte_config.h>
-#include <rte_eal.h>
-#include <rte_lcore.h>
-#include <rte_pci.h>
-#include <rte_bus_pci.h>
-
-#include "rte_eventdev_pmd.h"
-
-typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev);
-
-/**
- * @internal
- * Wrapper for use by pci drivers as a .probe function to attach to an event
- * interface.  Same as rte_event_pmd_pci_probe, except caller can specify
- * the name.
- */
-__rte_experimental
-static inline int
-rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv,
-                             struct rte_pci_device *pci_dev,
-                             size_t private_data_size,
-                             eventdev_pmd_pci_callback_t devinit,
-                             const char *name)
-{
-       struct rte_eventdev *eventdev;
-       int retval;
-
-       if (devinit == NULL)
-               return -EINVAL;
-
-       eventdev = rte_event_pmd_allocate(name,
-                        pci_dev->device.numa_node);
-       if (eventdev == NULL)
-               return -ENOMEM;
-
-       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-               eventdev->data->dev_private =
-                               rte_zmalloc_socket(
-                                               "eventdev private structure",
-                                               private_data_size,
-                                               RTE_CACHE_LINE_SIZE,
-                                               rte_socket_id());
-
-               if (eventdev->data->dev_private == NULL)
-                       rte_panic("Cannot allocate memzone for private "
-                                       "device data");
-       }
-
-       eventdev->dev = &pci_dev->device;
-
-       /* Invoke PMD device initialization function */
-       retval = devinit(eventdev);
-       if (retval == 0)
-               return 0;
-
-       RTE_EDEV_LOG_ERR("driver %s: (vendor_id=0x%x device_id=0x%x)"
-                       " failed", pci_drv->driver.name,
-                       (unsigned int) pci_dev->id.vendor_id,
-                       (unsigned int) pci_dev->id.device_id);
-
-       rte_event_pmd_release(eventdev);
-
-       return -ENXIO;
-}
-
-/**
- * @internal
- * Wrapper for use by pci drivers as a .probe function to attach to a event
- * interface.
- */
-static inline int
-rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv,
-                           struct rte_pci_device *pci_dev,
-                           size_t private_data_size,
-                           eventdev_pmd_pci_callback_t devinit)
-{
-       char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN];
-
-       rte_pci_device_name(&pci_dev->addr, eventdev_name,
-                       sizeof(eventdev_name));
-
-       return rte_event_pmd_pci_probe_named(pci_drv,
-                                            pci_dev,
-                                            private_data_size,
-                                            devinit,
-                                            eventdev_name);
-}
-
-/**
- * @internal
- * Wrapper for use by pci drivers as a .remove function to detach a event
- * interface.
- */
-static inline int
-rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev,
-                            eventdev_pmd_pci_callback_t devuninit)
-{
-       struct rte_eventdev *eventdev;
-       char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN];
-       int ret = 0;
-
-       if (pci_dev == NULL)
-               return -EINVAL;
-
-       rte_pci_device_name(&pci_dev->addr, eventdev_name,
-                       sizeof(eventdev_name));
-
-       eventdev = rte_event_pmd_get_named_dev(eventdev_name);
-       if (eventdev == NULL)
-               return -ENODEV;
-
-       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-               ret = rte_event_dev_close(eventdev->data->dev_id);
-               if (ret < 0)
-                       return ret;
-       }
-
-       /* Invoke PMD device un-init function */
-       if (devuninit)
-               ret = devuninit(eventdev);
-       if (ret)
-               return ret;
-
-       /* Free event device */
-       rte_event_pmd_release(eventdev);
-
-       eventdev->dev = NULL;
-
-       return 0;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTE_EVENTDEV_PMD_PCI_H_ */
diff --git a/lib/librte_eventdev/rte_eventdev_pmd_vdev.h b/lib/librte_eventdev/rte_eventdev_pmd_vdev.h
deleted file mode 100644 (file)
index 8c64a06..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2016-2017 Cavium, Inc
- */
-
-#ifndef _RTE_EVENTDEV_PMD_VDEV_H_
-#define _RTE_EVENTDEV_PMD_VDEV_H_
-
-/** @file
- * RTE Eventdev VDEV PMD APIs
- *
- * @note
- * These API are from event VDEV PMD only and user applications should not call
- * them directly.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <string.h>
-
-#include <rte_config.h>
-#include <rte_debug.h>
-#include <rte_eal.h>
-#include <rte_bus_vdev.h>
-
-#include "rte_eventdev_pmd.h"
-
-/**
- * @internal
- * Creates a new virtual event device and returns the pointer to that device.
- *
- * @param name
- *   PMD type name
- * @param dev_private_size
- *   Size of event PMDs private data
- * @param socket_id
- *   Socket to allocate resources on.
- *
- * @return
- *   - Eventdev pointer if device is successfully created.
- *   - NULL if device cannot be created.
- */
-static inline struct rte_eventdev *
-rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
-               int socket_id)
-{
-
-       struct rte_eventdev *eventdev;
-
-       /* Allocate device structure */
-       eventdev = rte_event_pmd_allocate(name, socket_id);
-       if (eventdev == NULL)
-               return NULL;
-
-       /* Allocate private device structure */
-       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-               eventdev->data->dev_private =
-                               rte_zmalloc_socket("eventdev device private",
-                                               dev_private_size,
-                                               RTE_CACHE_LINE_SIZE,
-                                               socket_id);
-
-               if (eventdev->data->dev_private == NULL)
-                       rte_panic("Cannot allocate memzone for private device"
-                                       " data");
-       }
-
-       return eventdev;
-}
-
-/**
- * @internal
- * Destroy the given virtual event device
- *
- * @param name
- *   PMD type name
- * @return
- *   - 0 on success, negative on error
- */
-static inline int
-rte_event_pmd_vdev_uninit(const char *name)
-{
-       int ret;
-       struct rte_eventdev *eventdev;
-
-       if (name == NULL)
-               return -EINVAL;
-
-       eventdev = rte_event_pmd_get_named_dev(name);
-       if (eventdev == NULL)
-               return -ENODEV;
-
-       ret = rte_event_dev_close(eventdev->data->dev_id);
-       if (ret < 0)
-               return ret;
-
-       /* Free the event device */
-       rte_event_pmd_release(eventdev);
-
-       return 0;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTE_EVENTDEV_PMD_VDEV_H_ */