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