xref: /dpdk/lib/eventdev/eventdev_private.c (revision 34e3ad3a1e423a874d0d2388efa04d5d6ebee340)
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_burst(__rte_unused void *port,
10d35e6132SPavan Nikhilesh 			  __rte_unused const struct rte_event ev[],
11d35e6132SPavan Nikhilesh 			  __rte_unused uint16_t nb_events)
12d35e6132SPavan Nikhilesh {
13d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
14d35e6132SPavan Nikhilesh 		"event enqueue burst requested for unconfigured event device");
15d35e6132SPavan Nikhilesh 	return 0;
16d35e6132SPavan Nikhilesh }
17d35e6132SPavan Nikhilesh 
18d35e6132SPavan Nikhilesh static uint16_t
19d35e6132SPavan Nikhilesh dummy_event_dequeue_burst(__rte_unused void *port,
20d35e6132SPavan Nikhilesh 			  __rte_unused struct rte_event ev[],
21d35e6132SPavan Nikhilesh 			  __rte_unused uint16_t nb_events,
22d35e6132SPavan Nikhilesh 			  __rte_unused uint64_t timeout_ticks)
23d35e6132SPavan Nikhilesh {
24d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
25d35e6132SPavan Nikhilesh 		"event dequeue burst requested for unconfigured event device");
26d35e6132SPavan Nikhilesh 	return 0;
27d35e6132SPavan Nikhilesh }
28d35e6132SPavan Nikhilesh 
2954f17843SMattias Rönnblom static void
3054f17843SMattias Rönnblom dummy_event_maintain(__rte_unused void *port, __rte_unused int op)
3154f17843SMattias Rönnblom {
3254f17843SMattias Rönnblom 	RTE_EDEV_LOG_ERR(
3354f17843SMattias Rönnblom 		"maintenance requested for unconfigured event device");
3454f17843SMattias Rönnblom }
3554f17843SMattias Rönnblom 
36d35e6132SPavan Nikhilesh static uint16_t
37d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue(__rte_unused void *port,
38d35e6132SPavan Nikhilesh 			       __rte_unused struct rte_event ev[],
39d35e6132SPavan Nikhilesh 			       __rte_unused uint16_t nb_events)
40d35e6132SPavan Nikhilesh {
41d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
42d35e6132SPavan Nikhilesh 		"event Tx adapter enqueue requested for unconfigured event device");
43d35e6132SPavan Nikhilesh 	return 0;
44d35e6132SPavan Nikhilesh }
45d35e6132SPavan Nikhilesh 
46d35e6132SPavan Nikhilesh static uint16_t
47d35e6132SPavan Nikhilesh dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port,
48d35e6132SPavan Nikhilesh 					 __rte_unused struct rte_event ev[],
49d35e6132SPavan Nikhilesh 					 __rte_unused uint16_t nb_events)
50d35e6132SPavan Nikhilesh {
51d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
52d35e6132SPavan Nikhilesh 		"event Tx adapter enqueue same destination requested for unconfigured event device");
53d35e6132SPavan Nikhilesh 	return 0;
54d35e6132SPavan Nikhilesh }
55d35e6132SPavan Nikhilesh 
56d35e6132SPavan Nikhilesh static uint16_t
57d35e6132SPavan Nikhilesh dummy_event_crypto_adapter_enqueue(__rte_unused void *port,
58d35e6132SPavan Nikhilesh 				   __rte_unused struct rte_event ev[],
59d35e6132SPavan Nikhilesh 				   __rte_unused uint16_t nb_events)
60d35e6132SPavan Nikhilesh {
61d35e6132SPavan Nikhilesh 	RTE_EDEV_LOG_ERR(
62d35e6132SPavan Nikhilesh 		"event crypto adapter enqueue requested for unconfigured event device");
63d35e6132SPavan Nikhilesh 	return 0;
64d35e6132SPavan Nikhilesh }
65d35e6132SPavan Nikhilesh 
6666a30a29SAmit Prakash Shukla static uint16_t
6766a30a29SAmit Prakash Shukla dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[],
6866a30a29SAmit Prakash Shukla 			       __rte_unused uint16_t nb_events)
6966a30a29SAmit Prakash Shukla {
7066a30a29SAmit Prakash Shukla 	RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device");
7166a30a29SAmit Prakash Shukla 	return 0;
7266a30a29SAmit Prakash Shukla }
7366a30a29SAmit Prakash Shukla 
74d007a7f3SPavan Nikhilesh static int
75d007a7f3SPavan Nikhilesh dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id)
76d007a7f3SPavan Nikhilesh {
77d007a7f3SPavan Nikhilesh 	RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device");
78d007a7f3SPavan Nikhilesh 	return -EINVAL;
79d007a7f3SPavan Nikhilesh }
80d007a7f3SPavan Nikhilesh 
81c1bdd86dSPavan Nikhilesh static int
82c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify(__rte_unused void *port,
83c1bdd86dSPavan Nikhilesh 				    __rte_unused enum rte_event_dev_preschedule_type preschedule)
84c1bdd86dSPavan Nikhilesh {
85c1bdd86dSPavan Nikhilesh 	RTE_EDEV_LOG_ERR("modify pre-schedule requested for unconfigured event device");
86c1bdd86dSPavan Nikhilesh 	return -EINVAL;
87c1bdd86dSPavan Nikhilesh }
88c1bdd86dSPavan Nikhilesh 
89c1bdd86dSPavan Nikhilesh static int
90c1bdd86dSPavan Nikhilesh dummy_event_port_preschedule_modify_hint(
91c1bdd86dSPavan Nikhilesh 	__rte_unused void *port, __rte_unused enum rte_event_dev_preschedule_type preschedule)
92c1bdd86dSPavan Nikhilesh {
93c1bdd86dSPavan Nikhilesh 	return -ENOTSUP;
94c1bdd86dSPavan Nikhilesh }
95c1bdd86dSPavan Nikhilesh 
96*4ade669cSPavan Nikhilesh static void
97*4ade669cSPavan Nikhilesh dummy_event_port_preschedule(__rte_unused void *port,
98*4ade669cSPavan Nikhilesh 			     __rte_unused enum rte_event_dev_preschedule_type preschedule)
99*4ade669cSPavan Nikhilesh {
100*4ade669cSPavan Nikhilesh 	RTE_EDEV_LOG_ERR("pre-schedule requested for unconfigured event device");
101*4ade669cSPavan Nikhilesh }
102*4ade669cSPavan Nikhilesh 
103*4ade669cSPavan Nikhilesh static void
104*4ade669cSPavan Nikhilesh dummy_event_port_preschedule_hint(__rte_unused void *port,
105*4ade669cSPavan Nikhilesh 				  __rte_unused enum rte_event_dev_preschedule_type preschedule)
106*4ade669cSPavan Nikhilesh {
107*4ade669cSPavan Nikhilesh }
108*4ade669cSPavan Nikhilesh 
109d35e6132SPavan Nikhilesh void
110d35e6132SPavan Nikhilesh event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op)
111d35e6132SPavan Nikhilesh {
112d35e6132SPavan Nikhilesh 	static void *dummy_data[RTE_MAX_QUEUES_PER_PORT];
113d35e6132SPavan Nikhilesh 	static const struct rte_event_fp_ops dummy = {
114d35e6132SPavan Nikhilesh 		.enqueue_burst = dummy_event_enqueue_burst,
115d35e6132SPavan Nikhilesh 		.enqueue_new_burst = dummy_event_enqueue_burst,
116d35e6132SPavan Nikhilesh 		.enqueue_forward_burst = dummy_event_enqueue_burst,
117d35e6132SPavan Nikhilesh 		.dequeue_burst = dummy_event_dequeue_burst,
11854f17843SMattias Rönnblom 		.maintain = dummy_event_maintain,
119d35e6132SPavan Nikhilesh 		.txa_enqueue = dummy_event_tx_adapter_enqueue,
120*4ade669cSPavan Nikhilesh 		.txa_enqueue_same_dest = dummy_event_tx_adapter_enqueue_same_dest,
121d35e6132SPavan Nikhilesh 		.ca_enqueue = dummy_event_crypto_adapter_enqueue,
12266a30a29SAmit Prakash Shukla 		.dma_enqueue = dummy_event_dma_adapter_enqueue,
123d007a7f3SPavan Nikhilesh 		.profile_switch = dummy_event_port_profile_switch,
124c1bdd86dSPavan Nikhilesh 		.preschedule_modify = dummy_event_port_preschedule_modify,
125*4ade669cSPavan Nikhilesh 		.preschedule = dummy_event_port_preschedule,
126d35e6132SPavan Nikhilesh 		.data = dummy_data,
127d35e6132SPavan Nikhilesh 	};
128d35e6132SPavan Nikhilesh 
129d35e6132SPavan Nikhilesh 	*fp_op = dummy;
130d35e6132SPavan Nikhilesh }
131d35e6132SPavan Nikhilesh 
132d35e6132SPavan Nikhilesh void
133d35e6132SPavan Nikhilesh event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,
134d35e6132SPavan Nikhilesh 		     const struct rte_eventdev *dev)
135d35e6132SPavan Nikhilesh {
136d35e6132SPavan Nikhilesh 	fp_op->enqueue_burst = dev->enqueue_burst;
137d35e6132SPavan Nikhilesh 	fp_op->enqueue_new_burst = dev->enqueue_new_burst;
138d35e6132SPavan Nikhilesh 	fp_op->enqueue_forward_burst = dev->enqueue_forward_burst;
139d35e6132SPavan Nikhilesh 	fp_op->dequeue_burst = dev->dequeue_burst;
14054f17843SMattias Rönnblom 	fp_op->maintain = dev->maintain;
141d35e6132SPavan Nikhilesh 	fp_op->txa_enqueue = dev->txa_enqueue;
142d35e6132SPavan Nikhilesh 	fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest;
143d35e6132SPavan Nikhilesh 	fp_op->ca_enqueue = dev->ca_enqueue;
14466a30a29SAmit Prakash Shukla 	fp_op->dma_enqueue = dev->dma_enqueue;
145d007a7f3SPavan Nikhilesh 	fp_op->profile_switch = dev->profile_switch;
146c1bdd86dSPavan Nikhilesh 	fp_op->preschedule_modify = dev->preschedule_modify;
147*4ade669cSPavan Nikhilesh 	fp_op->preschedule = dev->preschedule;
148d35e6132SPavan Nikhilesh 	fp_op->data = dev->data->ports;
149c1bdd86dSPavan Nikhilesh 
150c1bdd86dSPavan Nikhilesh 	if (fp_op->preschedule_modify == NULL)
151c1bdd86dSPavan Nikhilesh 		fp_op->preschedule_modify = dummy_event_port_preschedule_modify_hint;
152*4ade669cSPavan Nikhilesh 
153*4ade669cSPavan Nikhilesh 	if (fp_op->preschedule == NULL)
154*4ade669cSPavan Nikhilesh 		fp_op->preschedule = dummy_event_port_preschedule_hint;
155d35e6132SPavan Nikhilesh }
156