1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
7 #include "cn9k_worker.h"
8 #include "cn9k_cryptodev_ops.h"
11 cn9k_sso_hws_enq(void *port, const struct rte_event *ev)
13 struct cn9k_sso_hws *ws = port;
16 case RTE_EVENT_OP_NEW:
17 return cn9k_sso_hws_new_event(ws, ev);
18 case RTE_EVENT_OP_FORWARD:
19 cn9k_sso_hws_forward_event(ws, ev);
21 case RTE_EVENT_OP_RELEASE:
22 cnxk_sso_hws_swtag_flush(ws->tag_op, ws->swtag_flush_op);
32 cn9k_sso_hws_enq_burst(void *port, const struct rte_event ev[],
35 RTE_SET_USED(nb_events);
36 return cn9k_sso_hws_enq(port, ev);
40 cn9k_sso_hws_enq_new_burst(void *port, const struct rte_event ev[],
43 struct cn9k_sso_hws *ws = port;
46 for (i = 0; i < nb_events && rc; i++)
47 rc = cn9k_sso_hws_new_event(ws, &ev[i]);
53 cn9k_sso_hws_enq_fwd_burst(void *port, const struct rte_event ev[],
56 struct cn9k_sso_hws *ws = port;
58 RTE_SET_USED(nb_events);
59 cn9k_sso_hws_forward_event(ws, ev);
67 cn9k_sso_hws_dual_enq(void *port, const struct rte_event *ev)
69 struct cn9k_sso_hws_dual *dws = port;
70 struct cn9k_sso_hws_state *vws;
72 vws = &dws->ws_state[!dws->vws];
74 case RTE_EVENT_OP_NEW:
75 return cn9k_sso_hws_dual_new_event(dws, ev);
76 case RTE_EVENT_OP_FORWARD:
77 cn9k_sso_hws_dual_forward_event(dws, vws, ev);
79 case RTE_EVENT_OP_RELEASE:
80 cnxk_sso_hws_swtag_flush(vws->tag_op, vws->swtag_flush_op);
90 cn9k_sso_hws_dual_enq_burst(void *port, const struct rte_event ev[],
93 RTE_SET_USED(nb_events);
94 return cn9k_sso_hws_dual_enq(port, ev);
98 cn9k_sso_hws_dual_enq_new_burst(void *port, const struct rte_event ev[],
101 struct cn9k_sso_hws_dual *dws = port;
104 for (i = 0; i < nb_events && rc; i++)
105 rc = cn9k_sso_hws_dual_new_event(dws, &ev[i]);
111 cn9k_sso_hws_dual_enq_fwd_burst(void *port, const struct rte_event ev[],
114 struct cn9k_sso_hws_dual *dws = port;
116 RTE_SET_USED(nb_events);
117 cn9k_sso_hws_dual_forward_event(dws, &dws->ws_state[!dws->vws], ev);
123 cn9k_sso_hws_ca_enq(void *port, struct rte_event ev[], uint16_t nb_events)
125 struct cn9k_sso_hws *ws = port;
127 RTE_SET_USED(nb_events);
129 return cn9k_cpt_crypto_adapter_enqueue(ws->tag_op, ev->event_ptr);
133 cn9k_sso_hws_dual_ca_enq(void *port, struct rte_event ev[], uint16_t nb_events)
135 struct cn9k_sso_hws_dual *dws = port;
137 RTE_SET_USED(nb_events);
139 return cn9k_cpt_crypto_adapter_enqueue(dws->ws_state[!dws->vws].tag_op,