xref: /dpdk/lib/port/rte_port_eventdev.h (revision daa02b5cddbb8e11b31d41e2bf7bb1ae64dcae2f)
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
96