DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
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
102
103
#include <
rte_eventdev.h
>
104
105
#ifdef __cplusplus
106
extern
"C"
{
107
#endif
108
109
#define RTE_EVENT_VECTOR_ADAPTER_CAP_SOV_EOV RTE_BIT64(0)
116
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)
132
136
struct
rte_event_vector_adapter_conf
{
137
uint8_t
event_dev_id
;
139
uint32_t
socket_id
;
141
struct
rte_event
ev
;
154
struct
rte_event
ev_fallback
;
164
uint16_t
vector_sz
;
171
uint64_t
vector_timeout_ns
;
178
struct
rte_mempool
*
vector_mp
;
184
};
185
189
struct
rte_event_vector_adapter_info
{
190
uint8_t
max_vector_adapters_per_event_queue
;
192
uint16_t
min_vector_sz
;
194
uint16_t
max_vector_sz
;
196
uint64_t
min_vector_timeout_ns
;
198
uint64_t
max_vector_timeout_ns
;
200
uint8_t
log2_sz
;
202
};
203
207
struct
rte_event_vector_adapter_stats
{
208
uint64_t
vectorized
;
210
uint64_t
vectors_timedout
;
212
uint64_t
vectors_flushed
;
214
uint64_t
alloc_failures
;
216
};
217
218
struct
rte_event_vector_adapter
;
219
220
typedef
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);
224
228
struct
__rte_cache_aligned
rte_event_vector_adapter
{
229
rte_event_vector_adapter_enqueue_t
enqueue
;
231
struct
rte_event_vector_adapter_data *
data
;
233
const
struct
event_vector_adapter_ops *
ops
;
235
236
uint32_t
adapter_id
;
238
uint8_t
used
: 1;
240
};
241
245
typedef
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
268
struct
rte_event_vector_adapter
*
269
rte_event_vector_adapter_create
(
const
struct
rte_event_vector_adapter_conf
*conf);
270
294
__rte_experimental
295
struct
rte_event_vector_adapter
*
296
rte_event_vector_adapter_create_ext
(
const
struct
rte_event_vector_adapter_conf
*conf,
297
rte_event_vector_adapter_port_conf_cb_t
conf_cb,
298
void
*conf_arg);
299
313
__rte_experimental
314
struct
rte_event_vector_adapter
*
315
rte_event_vector_adapter_lookup
(uint32_t
adapter_id
);
316
328
__rte_experimental
329
int
330
rte_event_vector_adapter_destroy
(
struct
rte_event_vector_adapter
*adapter);
331
346
__rte_experimental
347
int
348
rte_event_vector_adapter_info_get
(uint8_t event_dev_id,
349
struct
rte_event_vector_adapter_info
*info);
350
363
__rte_experimental
364
int
365
rte_event_vector_adapter_conf_get
(
struct
rte_event_vector_adapter
*adapter,
366
struct
rte_event_vector_adapter_conf
*conf);
367
381
__rte_experimental
382
uint8_t
383
rte_event_vector_adapter_remaining
(uint8_t event_dev_id, uint8_t event_queue_id);
384
397
__rte_experimental
398
int
399
rte_event_vector_adapter_stats_get
(
struct
rte_event_vector_adapter
*adapter,
400
struct
rte_event_vector_adapter_stats
*stats);
401
412
__rte_experimental
413
int
414
rte_event_vector_adapter_stats_reset
(
struct
rte_event_vector_adapter
*adapter);
415
430
__rte_experimental
431
int
432
rte_event_vector_adapter_service_id_get
(
struct
rte_event_vector_adapter
*adapter,
433
uint32_t *service_id);
434
453
__rte_experimental
454
static
inline
int
455
rte_event_vector_adapter_enqueue
(
struct
rte_event_vector_adapter
*adapter, uint64_t objs[],
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_ */
__rte_cache_aligned
#define __rte_cache_aligned
Definition
rte_common.h:739
rte_errno
#define rte_errno
Definition
rte_errno.h:29
rte_event_vector_adapter_port_conf_cb_t
int(* rte_event_vector_adapter_port_conf_cb_t)(uint8_t event_dev_id, uint8_t *event_port_id, void *conf_arg)
Definition
rte_event_vector_adapter.h:245
rte_event_vector_adapter_stats_get
__rte_experimental int rte_event_vector_adapter_stats_get(struct rte_event_vector_adapter *adapter, struct rte_event_vector_adapter_stats *stats)
rte_event_vector_adapter_conf_get
__rte_experimental int rte_event_vector_adapter_conf_get(struct rte_event_vector_adapter *adapter, struct rte_event_vector_adapter_conf *conf)
rte_event_vector_adapter_create
__rte_experimental struct rte_event_vector_adapter * rte_event_vector_adapter_create(const struct rte_event_vector_adapter_conf *conf)
rte_event_vector_adapter_lookup
__rte_experimental struct rte_event_vector_adapter * rte_event_vector_adapter_lookup(uint32_t adapter_id)
rte_event_vector_adapter_stats_reset
__rte_experimental int rte_event_vector_adapter_stats_reset(struct rte_event_vector_adapter *adapter)
rte_event_vector_adapter_enqueue
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)
Definition
rte_event_vector_adapter.h:455
rte_event_vector_adapter_create_ext
__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_event_vector_adapter_info_get
__rte_experimental int rte_event_vector_adapter_info_get(uint8_t event_dev_id, struct rte_event_vector_adapter_info *info)
rte_event_vector_adapter_destroy
__rte_experimental int rte_event_vector_adapter_destroy(struct rte_event_vector_adapter *adapter)
rte_event_vector_adapter_service_id_get
__rte_experimental int rte_event_vector_adapter_service_id_get(struct rte_event_vector_adapter *adapter, uint32_t *service_id)
rte_event_vector_adapter_remaining
__rte_experimental uint8_t rte_event_vector_adapter_remaining(uint8_t event_dev_id, uint8_t event_queue_id)
rte_eventdev.h
rte_event_vector_adapter_conf
Definition
rte_event_vector_adapter.h:136
rte_event_vector_adapter_conf::event_dev_id
uint8_t event_dev_id
Definition
rte_event_vector_adapter.h:137
rte_event_vector_adapter_conf::vector_sz
uint16_t vector_sz
Definition
rte_event_vector_adapter.h:164
rte_event_vector_adapter_conf::socket_id
uint32_t socket_id
Definition
rte_event_vector_adapter.h:139
rte_event_vector_adapter_conf::vector_timeout_ns
uint64_t vector_timeout_ns
Definition
rte_event_vector_adapter.h:171
rte_event_vector_adapter_conf::vector_mp
struct rte_mempool * vector_mp
Definition
rte_event_vector_adapter.h:178
rte_event_vector_adapter_conf::ev
struct rte_event ev
Definition
rte_event_vector_adapter.h:141
rte_event_vector_adapter_conf::ev_fallback
struct rte_event ev_fallback
Definition
rte_event_vector_adapter.h:154
rte_event_vector_adapter_info
Definition
rte_event_vector_adapter.h:189
rte_event_vector_adapter_info::max_vector_timeout_ns
uint64_t max_vector_timeout_ns
Definition
rte_event_vector_adapter.h:198
rte_event_vector_adapter_info::min_vector_timeout_ns
uint64_t min_vector_timeout_ns
Definition
rte_event_vector_adapter.h:196
rte_event_vector_adapter_info::min_vector_sz
uint16_t min_vector_sz
Definition
rte_event_vector_adapter.h:192
rte_event_vector_adapter_info::max_vector_adapters_per_event_queue
uint8_t max_vector_adapters_per_event_queue
Definition
rte_event_vector_adapter.h:190
rte_event_vector_adapter_info::max_vector_sz
uint16_t max_vector_sz
Definition
rte_event_vector_adapter.h:194
rte_event_vector_adapter_info::log2_sz
uint8_t log2_sz
Definition
rte_event_vector_adapter.h:200
rte_event_vector_adapter_stats
Definition
rte_event_vector_adapter.h:207
rte_event_vector_adapter_stats::vectors_flushed
uint64_t vectors_flushed
Definition
rte_event_vector_adapter.h:212
rte_event_vector_adapter_stats::vectorized
uint64_t vectorized
Definition
rte_event_vector_adapter.h:208
rte_event_vector_adapter_stats::alloc_failures
uint64_t alloc_failures
Definition
rte_event_vector_adapter.h:214
rte_event_vector_adapter_stats::vectors_timedout
uint64_t vectors_timedout
Definition
rte_event_vector_adapter.h:210
rte_event_vector_adapter
Definition
rte_event_vector_adapter.h:228
rte_event_vector_adapter::ops
const struct event_vector_adapter_ops * ops
Definition
rte_event_vector_adapter.h:233
rte_event_vector_adapter::used
uint8_t used
Definition
rte_event_vector_adapter.h:238
rte_event_vector_adapter::adapter_id
uint32_t adapter_id
Definition
rte_event_vector_adapter.h:236
rte_event_vector_adapter::data
struct rte_event_vector_adapter_data * data
Definition
rte_event_vector_adapter.h:231
rte_event_vector_adapter::enqueue
rte_event_vector_adapter_enqueue_t enqueue
Definition
rte_event_vector_adapter.h:229
rte_event
Definition
rte_eventdev.h:1676
rte_mempool
Definition
rte_mempool.h:230
lib
eventdev
rte_event_vector_adapter.h
Generated by
1.17.0