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
dummy_event_enqueue(__rte_unused void * port,__rte_unused const struct rte_event * ev)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
dummy_event_enqueue_burst(__rte_unused void * port,__rte_unused const struct rte_event ev[],__rte_unused uint16_t nb_events)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
dummy_event_dequeue(__rte_unused void * port,__rte_unused struct rte_event * ev,__rte_unused uint64_t timeout_ticks)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
dummy_event_dequeue_burst(__rte_unused void * port,__rte_unused struct rte_event ev[],__rte_unused uint16_t nb_events,__rte_unused uint64_t timeout_ticks)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
dummy_event_maintain(__rte_unused void * port,__rte_unused int op)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
dummy_event_tx_adapter_enqueue(__rte_unused void * port,__rte_unused struct rte_event ev[],__rte_unused uint16_t nb_events)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
dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void * port,__rte_unused struct rte_event ev[],__rte_unused uint16_t nb_events)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
dummy_event_crypto_adapter_enqueue(__rte_unused void * port,__rte_unused struct rte_event ev[],__rte_unused uint16_t nb_events)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 void
event_dev_fp_ops_reset(struct rte_event_fp_ops * fp_op)85 event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op)
86 {
87 static void *dummy_data[RTE_MAX_QUEUES_PER_PORT];
88 static const struct rte_event_fp_ops dummy = {
89 .enqueue = dummy_event_enqueue,
90 .enqueue_burst = dummy_event_enqueue_burst,
91 .enqueue_new_burst = dummy_event_enqueue_burst,
92 .enqueue_forward_burst = dummy_event_enqueue_burst,
93 .dequeue = dummy_event_dequeue,
94 .dequeue_burst = dummy_event_dequeue_burst,
95 .maintain = dummy_event_maintain,
96 .txa_enqueue = dummy_event_tx_adapter_enqueue,
97 .txa_enqueue_same_dest =
98 dummy_event_tx_adapter_enqueue_same_dest,
99 .ca_enqueue = dummy_event_crypto_adapter_enqueue,
100 .data = dummy_data,
101 };
102
103 *fp_op = dummy;
104 }
105
106 void
event_dev_fp_ops_set(struct rte_event_fp_ops * fp_op,const struct rte_eventdev * dev)107 event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,
108 const struct rte_eventdev *dev)
109 {
110 fp_op->enqueue = dev->enqueue;
111 fp_op->enqueue_burst = dev->enqueue_burst;
112 fp_op->enqueue_new_burst = dev->enqueue_new_burst;
113 fp_op->enqueue_forward_burst = dev->enqueue_forward_burst;
114 fp_op->dequeue = dev->dequeue;
115 fp_op->dequeue_burst = dev->dequeue_burst;
116 fp_op->maintain = dev->maintain;
117 fp_op->txa_enqueue = dev->txa_enqueue;
118 fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest;
119 fp_op->ca_enqueue = dev->ca_enqueue;
120 fp_op->data = dev->data->ports;
121 }
122