xref: /dpdk/lib/eventdev/eventdev_private.c (revision c1bdd86d04d161c07c61ec1be8ef081108d29d2a)
1d35e6132SPavan Nikhilesh /* SPDX-License-Identifier: BSD-3-Clause
2d35e6132SPavan Nikhilesh  * Copyright(C) 2021 Marvell.
3d35e6132SPavan Nikhilesh  */
4d35e6132SPavan Nikhilesh 
5d35e6132SPavan Nikhilesh #include "eventdev_pmd.h"
6d35e6132SPavan Nikhilesh #include "rte_eventdev.h"
7d35e6132SPavan Nikhilesh 
8d35e6132SPavan Nikhilesh static uint16_t
9d35e6132SPavan Nikhilesh dummy_event_enqueue(__rte_unused void *port,
10d35e6132SPavan Nikhilesh 		    __rte_unused const struct rte_event *ev)
11d35e6132SPavan Nikhilesh {
12d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
13d35e6132SPavan Nikhilesh 		"event enqueue requested for unconfigured event device");
14d35e6132SPavan Nikhilesh 	return 0;
15d35e6132SPavan Nikhilesh }
16d35e6132SPavan Nikhilesh 
17d35e6132SPavan Nikhilesh static uint16_t
18d35e6132SPavan Nikhilesh dummy_event_enqueue_burst(__rte_unused void *port,
19d35e6132SPavan Nikhilesh 			  __rte_unused const struct rte_event ev[],
20d35e6132SPavan Nikhilesh 			  __rte_unused uint16_t nb_events)
21d35e6132SPavan Nikhilesh {
22d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
23d35e6132SPavan Nikhilesh 		"event enqueue burst requested for unconfigured event device");
24d35e6132SPavan Nikhilesh 	return 0;
25d35e6132SPavan Nikhilesh }
26d35e6132SPavan Nikhilesh 
27d35e6132SPavan Nikhilesh static uint16_t
28d35e6132SPavan Nikhilesh dummy_event_dequeue(__rte_unused void *port, __rte_unused struct rte_event *ev,
29d35e6132SPavan Nikhilesh 		    __rte_unused uint64_t timeout_ticks)
30d35e6132SPavan Nikhilesh {
31d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
32d35e6132SPavan Nikhilesh 		"event dequeue requested for unconfigured event device");
33d35e6132SPavan Nikhilesh 	return 0;
34d35e6132SPavan Nikhilesh }
35d35e6132SPavan Nikhilesh 
36d35e6132SPavan Nikhilesh static uint16_t
37d35e6132SPavan Nikhilesh dummy_event_dequeue_burst(__rte_unused void *port,
38d35e6132SPavan Nikhilesh 			  __rte_unused struct rte_event ev[],
39d35e6132SPavan Nikhilesh 			  __rte_unused uint16_t nb_events,
40d35e6132SPavan Nikhilesh 			  __rte_unused uint64_t timeout_ticks)
41d35e6132SPavan Nikhilesh {
42d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
43d35e6132SPavan Nikhilesh 		"event dequeue burst requested for unconfigured event device");
44d35e6132SPavan Nikhilesh 	return 0;
45d35e6132SPavan Nikhilesh }
46d35e6132SPavan Nikhilesh 
4754f17843SMattias Rönnblom static void
4854f17843SMattias Rönnblom dummy_event_maintain(__rte_unused void *port, __rte_unused int op)
4954f17843SMattias Rönnblom {
5054f17843SMattias Rönnblom 	RTE_EDEV_LOG_ERR(
5154f17843SMattias Rönnblom 		"maintenance requested for unconfigured event device");
5254f17843SMattias Rönnblom }
5354f17843SMattias Rönnblom 
54d35e6132SPavan Nikhilesh static uint16_t
55d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue(__rte_unused void *port,
56d35e6132SPavan Nikhilesh 			       __rte_unused struct rte_event ev[],
57d35e6132SPavan Nikhilesh 			       __rte_unused uint16_t nb_events)
58d35e6132SPavan Nikhilesh {
59d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
60d35e6132SPavan Nikhilesh 		"event Tx adapter enqueue requested for unconfigured event device");
61d35e6132SPavan Nikhilesh 	return 0;
62d35e6132SPavan Nikhilesh }
63d35e6132SPavan Nikhilesh 
64d35e6132SPavan Nikhilesh static uint16_t
65d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port,
66d35e6132SPavan Nikhilesh 					 __rte_unused struct rte_event ev[],
67d35e6132SPavan Nikhilesh 					 __rte_unused uint16_t nb_events)
68d35e6132SPavan Nikhilesh {
69d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
70d35e6132SPavan Nikhilesh 		"event Tx adapter enqueue same destination requested for unconfigured event device");
71d35e6132SPavan Nikhilesh 	return 0;
72d35e6132SPavan Nikhilesh }
73d35e6132SPavan Nikhilesh 
74d35e6132SPavan Nikhilesh static uint16_t
75d35e6132SPavan Nikhilesh dummy_event_crypto_adapter_enqueue(__rte_unused void *port,
76d35e6132SPavan Nikhilesh 				   __rte_unused struct rte_event ev[],
77d35e6132SPavan Nikhilesh 				   __rte_unused uint16_t nb_events)
78d35e6132SPavan Nikhilesh {
79d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
80d35e6132SPavan Nikhilesh 		"event crypto adapter enqueue requested for unconfigured event device");
81d35e6132SPavan Nikhilesh 	return 0;
82d35e6132SPavan Nikhilesh }
83d35e6132SPavan Nikhilesh 
8466a30a29SAmit Prakash Shukla static uint16_t
8566a30a29SAmit Prakash Shukla dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[],
8666a30a29SAmit Prakash Shukla 			       __rte_unused uint16_t nb_events)
8766a30a29SAmit Prakash Shukla {
8866a30a29SAmit Prakash Shukla 	RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device");
8966a30a29SAmit Prakash Shukla 	return 0;
9066a30a29SAmit Prakash Shukla }
9166a30a29SAmit Prakash Shukla 
92d007a7f3SPavan Nikhilesh static int
93d007a7f3SPavan Nikhilesh dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id)
94d007a7f3SPavan Nikhilesh {
95d007a7f3SPavan Nikhilesh 	RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device");
96d007a7f3SPavan Nikhilesh 	return -EINVAL;
97d007a7f3SPavan Nikhilesh }
98d007a7f3SPavan Nikhilesh 
99*c1bdd86dSPavan Nikhilesh static int
100*c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify(__rte_unused void *port,
101*c1bdd86dSPavan Nikhilesh 				    __rte_unused enum rte_event_dev_preschedule_type preschedule)
102*c1bdd86dSPavan Nikhilesh {
103*c1bdd86dSPavan Nikhilesh 	RTE_EDEV_LOG_ERR("modify pre-schedule requested for unconfigured event device");
104*c1bdd86dSPavan Nikhilesh 	return -EINVAL;
105*c1bdd86dSPavan Nikhilesh }
106*c1bdd86dSPavan Nikhilesh 
107*c1bdd86dSPavan Nikhilesh static int
108*c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify_hint(
109*c1bdd86dSPavan Nikhilesh 	__rte_unused void *port, __rte_unused enum rte_event_dev_preschedule_type preschedule)
110*c1bdd86dSPavan Nikhilesh {
111*c1bdd86dSPavan Nikhilesh 	return -ENOTSUP;
112*c1bdd86dSPavan Nikhilesh }
113*c1bdd86dSPavan Nikhilesh 
114d35e6132SPavan Nikhilesh void
115d35e6132SPavan Nikhilesh event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op)
116d35e6132SPavan Nikhilesh {
117d35e6132SPavan Nikhilesh 	static void *dummy_data[RTE_MAX_QUEUES_PER_PORT];
118d35e6132SPavan Nikhilesh 	static const struct rte_event_fp_ops dummy = {
119d35e6132SPavan Nikhilesh 		.enqueue = dummy_event_enqueue,
120d35e6132SPavan Nikhilesh 		.enqueue_burst = dummy_event_enqueue_burst,
121d35e6132SPavan Nikhilesh 		.enqueue_new_burst = dummy_event_enqueue_burst,
122d35e6132SPavan Nikhilesh 		.enqueue_forward_burst = dummy_event_enqueue_burst,
123d35e6132SPavan Nikhilesh 		.dequeue = dummy_event_dequeue,
124d35e6132SPavan Nikhilesh 		.dequeue_burst = dummy_event_dequeue_burst,
12554f17843SMattias Rönnblom 		.maintain = dummy_event_maintain,
126d35e6132SPavan Nikhilesh 		.txa_enqueue = dummy_event_tx_adapter_enqueue,
127d35e6132SPavan Nikhilesh 		.txa_enqueue_same_dest =
128d35e6132SPavan Nikhilesh 			dummy_event_tx_adapter_enqueue_same_dest,
129d35e6132SPavan Nikhilesh 		.ca_enqueue = dummy_event_crypto_adapter_enqueue,
13066a30a29SAmit Prakash Shukla 		.dma_enqueue = dummy_event_dma_adapter_enqueue,
131d007a7f3SPavan Nikhilesh 		.profile_switch = dummy_event_port_profile_switch,
132*c1bdd86dSPavan Nikhilesh 		.preschedule_modify = dummy_event_port_preschedule_modify,
133d35e6132SPavan Nikhilesh 		.data = dummy_data,
134d35e6132SPavan Nikhilesh 	};
135d35e6132SPavan Nikhilesh 
136d35e6132SPavan Nikhilesh 	*fp_op = dummy;
137d35e6132SPavan Nikhilesh }
138d35e6132SPavan Nikhilesh 
139d35e6132SPavan Nikhilesh void
140d35e6132SPavan Nikhilesh event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,
141d35e6132SPavan Nikhilesh 		     const struct rte_eventdev *dev)
142d35e6132SPavan Nikhilesh {
143d35e6132SPavan Nikhilesh 	fp_op->enqueue = dev->enqueue;
144d35e6132SPavan Nikhilesh 	fp_op->enqueue_burst = dev->enqueue_burst;
145d35e6132SPavan Nikhilesh 	fp_op->enqueue_new_burst = dev->enqueue_new_burst;
146d35e6132SPavan Nikhilesh 	fp_op->enqueue_forward_burst = dev->enqueue_forward_burst;
147d35e6132SPavan Nikhilesh 	fp_op->dequeue = dev->dequeue;
148d35e6132SPavan Nikhilesh 	fp_op->dequeue_burst = dev->dequeue_burst;
14954f17843SMattias Rönnblom 	fp_op->maintain = dev->maintain;
150d35e6132SPavan Nikhilesh 	fp_op->txa_enqueue = dev->txa_enqueue;
151d35e6132SPavan Nikhilesh 	fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest;
152d35e6132SPavan Nikhilesh 	fp_op->ca_enqueue = dev->ca_enqueue;
15366a30a29SAmit Prakash Shukla 	fp_op->dma_enqueue = dev->dma_enqueue;
154d007a7f3SPavan Nikhilesh 	fp_op->profile_switch = dev->profile_switch;
155*c1bdd86dSPavan Nikhilesh 	fp_op->preschedule_modify = dev->preschedule_modify;
156d35e6132SPavan Nikhilesh 	fp_op->data = dev->data->ports;
157*c1bdd86dSPavan Nikhilesh 
158*c1bdd86dSPavan Nikhilesh 	if (fp_op->preschedule_modify == NULL)
159*c1bdd86dSPavan Nikhilesh 		fp_op->preschedule_modify = dummy_event_port_preschedule_modify_hint;
160d35e6132SPavan Nikhilesh }
161