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