crypto/mlx5: add maximum segments configuration
[dpdk.git] / lib / port / rte_port_eventdev.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2019 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_RTE_PORT_EVENTDEV_H__
6 #define __INCLUDE_RTE_PORT_EVENTDEV_H__
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 /**
13  * @file
14  * RTE Port Eventdev Interface
15  *
16  * eventdev_reader: input port built on top of pre-initialized eventdev
17  * interface
18  * eventdev_writer: output port built on top of pre-initialized eventdev
19  * interface
20  *
21 **/
22
23 #include <stdint.h>
24 #include <rte_eventdev.h>
25
26 #include "rte_port.h"
27
28 /** Eventdev_reader port parameters */
29 struct rte_port_eventdev_reader_params {
30         /** Eventdev Device ID */
31         uint8_t eventdev_id;
32
33         /** Eventdev Port ID */
34         uint8_t port_id;
35 };
36
37 /** Eventdev_reader port operations. */
38 extern struct rte_port_in_ops rte_port_eventdev_reader_ops;
39
40 /** Eventdev_writer port parameters. */
41 struct rte_port_eventdev_writer_params {
42         /** Eventdev Device ID. */
43         uint8_t eventdev_id;
44
45         /** Eventdev Port ID. */
46         uint8_t port_id;
47
48         /** Eventdev Queue ID. */
49         uint8_t queue_id;
50
51         /** Burst size to eventdev interface. */
52         uint32_t enq_burst_sz;
53
54         /** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/
55         uint8_t sched_type;
56
57         /** The type of eventdev enqueue operation - new/forward/release */
58         uint8_t evt_op;
59 };
60
61 /** Eventdev_writer port operations. */
62 extern struct rte_port_out_ops rte_port_eventdev_writer_ops;
63
64 /** Event_writer_nodrop port parameters. */
65 struct rte_port_eventdev_writer_nodrop_params {
66         /** Eventdev Device ID. */
67         uint8_t eventdev_id;
68
69         /** Eventdev Port ID. */
70         uint16_t port_id;
71
72         /** Eventdev Queue ID. */
73         uint16_t queue_id;
74
75         /** Burst size to eventdev interface. */
76         uint32_t enq_burst_sz;
77
78         /** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/
79         uint8_t sched_type;
80
81         /** The type of eventdev enqueue operation - new/forward/release */
82         uint8_t evt_op;
83
84         /** Maximum number of retries, 0 for no limit. */
85         uint32_t n_retries;
86 };
87
88 /** Eventdev_writer_nodrop port operations. */
89 extern struct rte_port_out_ops rte_port_eventdev_writer_nodrop_ops;
90
91 #ifdef __cplusplus
92 }
93 #endif
94
95 #endif