DPDK 25.07.0
rte_event_vector_adapter.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2025 Marvell International Ltd.
3 * All rights reserved.
4 */
5
6#ifndef _RTE_EVENT_VECTOR_ADAPTER_H_
7#define _RTE_EVENT_VECTOR_ADAPTER_H_
8
103#include <rte_eventdev.h>
104
105#ifdef __cplusplus
106extern "C" {
107#endif
108
109#define RTE_EVENT_VECTOR_ADAPTER_CAP_SOV_EOV RTE_BIT64(0)
117#define RTE_EVENT_VECTOR_ENQ_SOV RTE_BIT64(0)
124#define RTE_EVENT_VECTOR_ENQ_EOV RTE_BIT64(1)
130#define RTE_EVENT_VECTOR_ENQ_FLUSH RTE_BIT64(2)
139 uint32_t socket_id;
141 struct rte_event ev;
164 uint16_t vector_sz;
184};
185
200 uint8_t log2_sz;
202};
203
208 uint64_t vectorized;
216};
217
219
220typedef int (*rte_event_vector_adapter_enqueue_t)(struct rte_event_vector_adapter *adapter,
221 uint64_t objs[], uint16_t num_elem,
222 uint64_t flags);
229 rte_event_vector_adapter_enqueue_t enqueue;
231 struct rte_event_vector_adapter_data *data;
233 const struct event_vector_adapter_ops *ops;
236 uint32_t adapter_id;
238 uint8_t used : 1;
240};
241
245typedef int (*rte_event_vector_adapter_port_conf_cb_t)(uint8_t event_dev_id, uint8_t *event_port_id,
246 void *conf_arg);
247
267__rte_experimental
270
294__rte_experimental
298 void *conf_arg);
299
313__rte_experimental
316
328__rte_experimental
329int
331
346__rte_experimental
347int
349 struct rte_event_vector_adapter_info *info);
350
363__rte_experimental
364int
366 struct rte_event_vector_adapter_conf *conf);
367
381__rte_experimental
382uint8_t
383rte_event_vector_adapter_remaining(uint8_t event_dev_id, uint8_t event_queue_id);
384
397__rte_experimental
398int
400 struct rte_event_vector_adapter_stats *stats);
401
412__rte_experimental
413int
415
430__rte_experimental
431int
433 uint32_t *service_id);
434
453__rte_experimental
454static inline int
456 uint16_t num_elem, uint64_t flags)
457{
458#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
459 if (adapter == NULL) {
460 rte_errno = EINVAL;
461 return 0;
462 }
463
464 if (adapter->used == false) {
465 rte_errno = EINVAL;
466 return 0;
467 }
468#endif
469 return adapter->enqueue(adapter, objs, num_elem, flags);
470}
471
472#ifdef __cplusplus
473}
474#endif
475
476#endif /* _RTE_EVENT_VECTOR_ADAPTER_H_ */
#define __rte_cache_aligned
Definition: rte_common.h:739
#define rte_errno
Definition: rte_errno.h:29
int(* rte_event_vector_adapter_port_conf_cb_t)(uint8_t event_dev_id, uint8_t *event_port_id, void *conf_arg)
__rte_experimental int rte_event_vector_adapter_stats_get(struct rte_event_vector_adapter *adapter, struct rte_event_vector_adapter_stats *stats)
__rte_experimental int rte_event_vector_adapter_conf_get(struct rte_event_vector_adapter *adapter, struct rte_event_vector_adapter_conf *conf)
__rte_experimental struct rte_event_vector_adapter * rte_event_vector_adapter_create(const struct rte_event_vector_adapter_conf *conf)
__rte_experimental struct rte_event_vector_adapter * rte_event_vector_adapter_lookup(uint32_t adapter_id)
__rte_experimental int rte_event_vector_adapter_stats_reset(struct rte_event_vector_adapter *adapter)
static __rte_experimental int rte_event_vector_adapter_enqueue(struct rte_event_vector_adapter *adapter, uint64_t objs[], uint16_t num_elem, uint64_t flags)
__rte_experimental struct rte_event_vector_adapter * rte_event_vector_adapter_create_ext(const struct rte_event_vector_adapter_conf *conf, rte_event_vector_adapter_port_conf_cb_t conf_cb, void *conf_arg)
__rte_experimental int rte_event_vector_adapter_info_get(uint8_t event_dev_id, struct rte_event_vector_adapter_info *info)
__rte_experimental int rte_event_vector_adapter_destroy(struct rte_event_vector_adapter *adapter)
__rte_experimental int rte_event_vector_adapter_service_id_get(struct rte_event_vector_adapter *adapter, uint32_t *service_id)
__rte_experimental uint8_t rte_event_vector_adapter_remaining(uint8_t event_dev_id, uint8_t event_queue_id)
const struct event_vector_adapter_ops * ops
struct rte_event_vector_adapter_data * data
rte_event_vector_adapter_enqueue_t enqueue