xref: /dpdk/lib/eventdev/eventdev_private.c (revision 1e472b5746aeb6189fa254ab82ce4cd27999f868)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4 
5 #include "eventdev_pmd.h"
6 #include "rte_eventdev.h"
7 
8 static uint16_t
9 dummy_event_enqueue(__rte_unused void *port,
10 		    __rte_unused const struct rte_event *ev)
11 {
12 	RTE_EDEV_LOG_ERR(
13 		"event enqueue requested for unconfigured event device");
14 	return 0;
15 }
16 
17 static uint16_t
18 dummy_event_enqueue_burst(__rte_unused void *port,
19 			  __rte_unused const struct rte_event ev[],
20 			  __rte_unused uint16_t nb_events)
21 {
22 	RTE_EDEV_LOG_ERR(
23 		"event enqueue burst requested for unconfigured event device");
24 	return 0;
25 }
26 
27 static uint16_t
28 dummy_event_dequeue(__rte_unused void *port, __rte_unused struct rte_event *ev,
29 		    __rte_unused uint64_t timeout_ticks)
30 {
31 	RTE_EDEV_LOG_ERR(
32 		"event dequeue requested for unconfigured event device");
33 	return 0;
34 }
35 
36 static uint16_t
37 dummy_event_dequeue_burst(__rte_unused void *port,
38 			  __rte_unused struct rte_event ev[],
39 			  __rte_unused uint16_t nb_events,
40 			  __rte_unused uint64_t timeout_ticks)
41 {
42 	RTE_EDEV_LOG_ERR(
43 		"event dequeue burst requested for unconfigured event device");
44 	return 0;
45 }
46 
47 static void
48 dummy_event_maintain(__rte_unused void *port, __rte_unused int op)
49 {
50 	RTE_EDEV_LOG_ERR(
51 		"maintenance requested for unconfigured event device");
52 }
53 
54 static uint16_t
55 dummy_event_tx_adapter_enqueue(__rte_unused void *port,
56 			       __rte_unused struct rte_event ev[],
57 			       __rte_unused uint16_t nb_events)
58 {
59 	RTE_EDEV_LOG_ERR(
60 		"event Tx adapter enqueue requested for unconfigured event device");
61 	return 0;
62 }
63 
64 static uint16_t
65 dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port,
66 					 __rte_unused struct rte_event ev[],
67 					 __rte_unused uint16_t nb_events)
68 {
69 	RTE_EDEV_LOG_ERR(
70 		"event Tx adapter enqueue same destination requested for unconfigured event device");
71 	return 0;
72 }
73 
74 static uint16_t
75 dummy_event_crypto_adapter_enqueue(__rte_unused void *port,
76 				   __rte_unused struct rte_event ev[],
77 				   __rte_unused uint16_t nb_events)
78 {
79 	RTE_EDEV_LOG_ERR(
80 		"event crypto adapter enqueue requested for unconfigured event device");
81 	return 0;
82 }
83 
84 static uint16_t
85 dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[],
86 			       __rte_unused uint16_t nb_events)
87 {
88 	RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device");
89 	return 0;
90 }
91 
92 static int
93 dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id)
94 {
95 	RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device");
96 	return -EINVAL;
97 }
98 
99 static int
100 dummy_event_port_preschedule_modify(__rte_unused void *port,
101 				    __rte_unused enum rte_event_dev_preschedule_type preschedule)
102 {
103 	RTE_EDEV_LOG_ERR("modify pre-schedule requested for unconfigured event device");
104 	return -EINVAL;
105 }
106 
107 static int
108 dummy_event_port_preschedule_modify_hint(
109 	__rte_unused void *port, __rte_unused enum rte_event_dev_preschedule_type preschedule)
110 {
111 	return -ENOTSUP;
112 }
113 
114 static void
115 dummy_event_port_preschedule(__rte_unused void *port,
116 			     __rte_unused enum rte_event_dev_preschedule_type preschedule)
117 {
118 	RTE_EDEV_LOG_ERR("pre-schedule requested for unconfigured event device");
119 }
120 
121 static void
122 dummy_event_port_preschedule_hint(__rte_unused void *port,
123 				  __rte_unused enum rte_event_dev_preschedule_type preschedule)
124 {
125 }
126 
127 void
128 event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op)
129 {
130 	static void *dummy_data[RTE_MAX_QUEUES_PER_PORT];
131 	static const struct rte_event_fp_ops dummy = {
132 		.enqueue = dummy_event_enqueue,
133 		.enqueue_burst = dummy_event_enqueue_burst,
134 		.enqueue_new_burst = dummy_event_enqueue_burst,
135 		.enqueue_forward_burst = dummy_event_enqueue_burst,
136 		.dequeue = dummy_event_dequeue,
137 		.dequeue_burst = dummy_event_dequeue_burst,
138 		.maintain = dummy_event_maintain,
139 		.txa_enqueue = dummy_event_tx_adapter_enqueue,
140 		.txa_enqueue_same_dest = dummy_event_tx_adapter_enqueue_same_dest,
141 		.ca_enqueue = dummy_event_crypto_adapter_enqueue,
142 		.dma_enqueue = dummy_event_dma_adapter_enqueue,
143 		.profile_switch = dummy_event_port_profile_switch,
144 		.preschedule_modify = dummy_event_port_preschedule_modify,
145 		.preschedule = dummy_event_port_preschedule,
146 		.data = dummy_data,
147 	};
148 
149 	*fp_op = dummy;
150 }
151 
152 void
153 event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,
154 		     const struct rte_eventdev *dev)
155 {
156 	fp_op->enqueue = dev->enqueue;
157 	fp_op->enqueue_burst = dev->enqueue_burst;
158 	fp_op->enqueue_new_burst = dev->enqueue_new_burst;
159 	fp_op->enqueue_forward_burst = dev->enqueue_forward_burst;
160 	fp_op->dequeue = dev->dequeue;
161 	fp_op->dequeue_burst = dev->dequeue_burst;
162 	fp_op->maintain = dev->maintain;
163 	fp_op->txa_enqueue = dev->txa_enqueue;
164 	fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest;
165 	fp_op->ca_enqueue = dev->ca_enqueue;
166 	fp_op->dma_enqueue = dev->dma_enqueue;
167 	fp_op->profile_switch = dev->profile_switch;
168 	fp_op->preschedule_modify = dev->preschedule_modify;
169 	fp_op->preschedule = dev->preschedule;
170 	fp_op->data = dev->data->ports;
171 
172 	if (fp_op->preschedule_modify == NULL)
173 		fp_op->preschedule_modify = dummy_event_port_preschedule_modify_hint;
174 
175 	if (fp_op->preschedule == NULL)
176 		fp_op->preschedule = dummy_event_port_preschedule_hint;
177 }
178