};
/* Tx modes */
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_##name,
#undef T
};
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_seg_##name,
return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id);
}
-static struct rte_eventdev_ops cn10k_sso_dev_ops = {
+static struct eventdev_ops cn10k_sso_dev_ops = {
.dev_infos_get = cn10k_sso_info_get,
.dev_configure = cn10k_sso_dev_configure,
.queue_def_conf = cnxk_sso_queue_def_conf,
};
/* Tx modes */
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_##name,
#undef T
};
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_seg_##name,
#undef T
};
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_dual_tx_adptr_enq[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_tx_adptr_enq_##name,
#undef T
};
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
sso_hws_dual_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = \
return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id);
}
-static struct rte_eventdev_ops cn9k_sso_dev_ops = {
+static struct eventdev_ops cn9k_sso_dev_ops = {
.dev_infos_get = cn9k_sso_info_get,
.dev_configure = cn9k_sso_dev_configure,
.queue_def_conf = cnxk_sso_queue_def_conf,
struct dlb2_eventdev *dlb2;
/* Expose PMD's eventdev interface */
- static struct rte_eventdev_ops dlb2_eventdev_entry_ops = {
+ static struct eventdev_ops dlb2_eventdev_entry_ops = {
.dev_infos_get = dlb2_eventdev_info_get,
.dev_configure = dlb2_eventdev_configure,
.dev_start = dlb2_eventdev_start,
return nb_events;
}
-static struct rte_eventdev_ops dpaa_eventdev_ops = {
+static struct eventdev_ops dpaa_eventdev_ops = {
.dev_infos_get = dpaa_event_dev_info_get,
.dev_configure = dpaa_event_dev_configure,
.dev_start = dpaa_event_dev_start,
return nb_events;
}
-static struct rte_eventdev_ops dpaa2_eventdev_ops = {
+static struct eventdev_ops dpaa2_eventdev_ops = {
.dev_infos_get = dpaa2_eventdev_info_get,
.dev_configure = dpaa2_eventdev_configure,
.dev_start = dpaa2_eventdev_start,
return 0;
}
-static struct rte_eventdev_ops dsw_evdev_ops = {
+static struct eventdev_ops dsw_evdev_ops = {
.port_setup = dsw_port_setup,
.port_def_conf = dsw_port_def_conf,
.port_release = dsw_port_release,
}
/* Initialize and register event driver with DPDK Application */
-static struct rte_eventdev_ops ssovf_ops = {
+static struct eventdev_ops ssovf_ops = {
.dev_infos_get = ssovf_info_get,
.dev_configure = ssovf_configure,
.queue_def_conf = ssovf_queue_def_conf,
dev->ca_enqueue = ssow_crypto_adapter_enqueue;
- const event_tx_adapter_enqueue ssow_txa_enqueue[2][2][2][2] = {
+ const event_tx_adapter_enqueue_t ssow_txa_enqueue[2][2][2][2] = {
#define T(name, f3, f2, f1, f0, sz, flags) \
[f3][f2][f1][f0] = sso_event_tx_adapter_enqueue_ ##name,
-SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
+ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
#undef T
};
};
/* Tx modes */
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
ssogws_tx_adptr_enq[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = \
otx2_ssogws_tx_adptr_enq_ ## name,
-SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
+ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
#undef T
- };
+ };
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
ssogws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = \
otx2_ssogws_tx_adptr_enq_seg_ ## name,
-SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
+ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
#undef T
- };
+ };
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
ssogws_dual_tx_adptr_enq[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = \
otx2_ssogws_dual_tx_adptr_enq_ ## name,
-SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
+ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
#undef T
- };
+ };
- const event_tx_adapter_enqueue
+ const event_tx_adapter_enqueue_t
ssogws_dual_tx_adptr_enq_seg[2][2][2][2][2][2][2] = {
#define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \
[f6][f5][f4][f3][f2][f1][f0] = \
otx2_ssogws_dual_tx_adptr_enq_seg_ ## name,
-SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
+ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC
#undef T
- };
+ };
event_dev->enqueue = otx2_ssogws_enq;
event_dev->enqueue_burst = otx2_ssogws_enq_burst;
}
/* Initialize and register event driver with DPDK Application */
-static struct rte_eventdev_ops otx2_sso_ops = {
+static struct eventdev_ops otx2_sso_ops = {
.dev_infos_get = otx2_sso_info_get,
.dev_configure = otx2_sso_configure,
.queue_def_conf = otx2_sso_queue_def_conf,
static int
opdl_probe(struct rte_vdev_device *vdev)
{
- static struct rte_eventdev_ops evdev_opdl_ops = {
+ static struct eventdev_ops evdev_opdl_ops = {
.dev_configure = opdl_dev_configure,
.dev_infos_get = opdl_info_get,
.dev_close = opdl_close,
/* Initialize and register event driver with DPDK Application */
-static struct rte_eventdev_ops skeleton_eventdev_ops = {
+static struct eventdev_ops skeleton_eventdev_ops = {
.dev_infos_get = skeleton_eventdev_info_get,
.dev_configure = skeleton_eventdev_configure,
.dev_start = skeleton_eventdev_start,
static int
sw_probe(struct rte_vdev_device *vdev)
{
- static struct rte_eventdev_ops evdev_sw_ops = {
+ static struct eventdev_ops evdev_sw_ops = {
.dev_configure = sw_dev_configure,
.dev_infos_get = sw_info_get,
.dev_close = sw_close,
* @return
* - The rte_eventdev structure pointer for the given device ID.
*/
+__rte_internal
static inline struct rte_eventdev *
rte_event_pmd_get_named_dev(const char *name)
{
* @return
* - If the device index is valid (1) or not (0).
*/
+__rte_internal
static inline unsigned
rte_event_pmd_is_valid_dev(uint8_t dev_id)
{
const struct rte_eventdev *dev);
/** Event device operations function pointer table */
-struct rte_eventdev_ops {
+struct 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. */
* @return
* - Slot in the rte_dev_devices array for a new device;
*/
+__rte_internal
struct rte_eventdev *
rte_event_pmd_allocate(const char *name, int socket_id);
* @return
* - 0 on success, negative on error
*/
+__rte_internal
int
rte_event_pmd_release(struct rte_eventdev *eventdev);
* interface. Same as rte_event_pmd_pci_probe, except caller can specify
* the name.
*/
-__rte_experimental
+__rte_internal
static inline int
rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv,
struct rte_pci_device *pci_dev,
* Wrapper for use by pci drivers as a .probe function to attach to a event
* interface.
*/
+__rte_internal
static inline int
rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv,
struct rte_pci_device *pci_dev,
* Wrapper for use by pci drivers as a .remove function to detach a event
* interface.
*/
+__rte_internal
static inline int
rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev,
eventdev_pmd_pci_callback_t devuninit)
* - Eventdev pointer if device is successfully created.
* - NULL if device cannot be created.
*/
+__rte_internal
static inline struct rte_eventdev *
rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
int socket_id)
* @return
* - 0 on success, negative on error
*/
+__rte_internal
static inline int
rte_event_pmd_vdev_uninit(const char *name)
{
'rte_event_crypto_adapter.h',
'rte_event_eth_tx_adapter.h',
)
+driver_sdk_headers += files(
+ 'eventdev_pmd.h',
+ 'eventdev_pmd_pci.h',
+ 'eventdev_pmd_vdev.h',
+)
+
deps += ['ring', 'ethdev', 'hash', 'mempool', 'mbuf', 'timer', 'cryptodev']
deps += ['telemetry']
#include <stdint.h>
#include "rte_eventdev.h"
-#include "eventdev_pmd.h"
/**
* Crypto event adapter mode
rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id,
uint32_t *caps);
-struct rte_eventdev_ops;
+struct eventdev_ops;
struct rte_eventdev;
typedef uint16_t (*event_enqueue_t)(void *port, const struct rte_event *ev);
uint16_t nb_events, uint64_t timeout_ticks);
/**< @internal Dequeue burst of events from port of a device */
-typedef uint16_t (*event_tx_adapter_enqueue)(void *port,
- struct rte_event ev[], uint16_t nb_events);
+typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port,
+ struct rte_event ev[],
+ uint16_t nb_events);
/**< @internal Enqueue burst of events on port of a device */
-typedef uint16_t (*event_tx_adapter_enqueue_same_dest)(void *port,
- struct rte_event ev[], uint16_t nb_events);
+typedef uint16_t (*event_tx_adapter_enqueue_same_dest_t)(void *port,
+ struct rte_event ev[],
+ uint16_t nb_events);
/**< @internal Enqueue burst of events on port of a device supporting
* burst having same destination Ethernet port & Tx queue.
*/
-typedef uint16_t (*event_crypto_adapter_enqueue)(void *port,
- struct rte_event ev[], uint16_t nb_events);
+typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port,
+ struct rte_event ev[],
+ uint16_t nb_events);
/**< @internal Enqueue burst of events on crypto adapter */
#define RTE_EVENTDEV_NAME_MAX_LEN (64)
/**< Pointer to PMD dequeue function. */
event_dequeue_burst_t dequeue_burst;
/**< Pointer to PMD dequeue burst function. */
- event_tx_adapter_enqueue_same_dest txa_enqueue_same_dest;
+ event_tx_adapter_enqueue_same_dest_t txa_enqueue_same_dest;
/**< Pointer to PMD eth Tx adapter burst enqueue function with
* events destined to same Eth port & Tx queue.
*/
- event_tx_adapter_enqueue txa_enqueue;
+ event_tx_adapter_enqueue_t txa_enqueue;
/**< Pointer to PMD eth Tx adapter enqueue function. */
struct rte_eventdev_data *data;
/**< Pointer to device data */
- struct rte_eventdev_ops *dev_ops;
+ struct eventdev_ops *dev_ops;
/**< Functions exported by PMD */
struct rte_device *dev;
/**< Device info. supplied by probing */
uint8_t attached : 1;
/**< Flag indicating the device is attached */
- event_crypto_adapter_enqueue ca_enqueue;
+ event_crypto_adapter_enqueue_t ca_enqueue;
/**< Pointer to PMD crypto adapter enqueue function. */
uint64_t reserved_64s[4]; /**< Reserved for future fields */
rte_event_eth_tx_adapter_stats_get;
rte_event_eth_tx_adapter_stats_reset;
rte_event_eth_tx_adapter_stop;
- rte_event_pmd_allocate;
- rte_event_pmd_pci_probe;
- rte_event_pmd_pci_remove;
- rte_event_pmd_release;
- rte_event_pmd_vdev_init;
- rte_event_pmd_vdev_uninit;
rte_event_port_attr_get;
rte_event_port_default_conf_get;
rte_event_port_link;
# changed in 20.11
__rte_eventdev_trace_port_setup;
- # added in 20.11
- rte_event_pmd_pci_probe_named;
# added in 21.11
rte_event_eth_rx_adapter_create_with_params;
global:
rte_event_pmd_selftest_seqn_dynfield_offset;
+ rte_event_pmd_allocate;
+ rte_event_pmd_get_named_dev;
+ rte_event_pmd_is_valid_dev;
+ rte_event_pmd_pci_probe;
+ rte_event_pmd_pci_probe_named;
+ rte_event_pmd_pci_remove;
+ rte_event_pmd_release;
+ rte_event_pmd_vdev_init;
+ rte_event_pmd_vdev_uninit;
};