1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
5 #include "cn9k_worker.h"
6 #include "cnxk_eventdev.h"
7 #include "cnxk_worker.h"
9 #define R(name, f5, f4, f3, f2, f1, f0, flags) \
10 uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_##name( \
11 void *port, struct rte_event *ev, uint64_t timeout_ticks) \
13 struct cn9k_sso_hws_dual *dws = port; \
16 RTE_SET_USED(timeout_ticks); \
17 if (dws->swtag_req) { \
19 cnxk_sso_hws_swtag_wait( \
20 dws->ws_state[!dws->vws].tag_op); \
24 gw = cn9k_sso_hws_dual_get_work(&dws->ws_state[dws->vws], \
25 &dws->ws_state[!dws->vws], ev, \
26 flags | CPT_RX_WQE_F, \
27 dws->lookup_mem, dws->tstamp); \
28 dws->vws = !dws->vws; \
32 uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_burst_##name( \
33 void *port, struct rte_event ev[], uint16_t nb_events, \
34 uint64_t timeout_ticks) \
36 RTE_SET_USED(nb_events); \
38 return cn9k_sso_hws_dual_deq_ca_##name(port, ev, \
42 uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_##name( \
43 void *port, struct rte_event *ev, uint64_t timeout_ticks) \
45 struct cn9k_sso_hws_dual *dws = port; \
48 RTE_SET_USED(timeout_ticks); \
49 if (dws->swtag_req) { \
51 cnxk_sso_hws_swtag_wait( \
52 dws->ws_state[!dws->vws].tag_op); \
56 gw = cn9k_sso_hws_dual_get_work( \
57 &dws->ws_state[dws->vws], &dws->ws_state[!dws->vws], \
58 ev, flags | NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F, \
59 dws->lookup_mem, dws->tstamp); \
60 dws->vws = !dws->vws; \
64 uint16_t __rte_hot cn9k_sso_hws_dual_deq_ca_seg_burst_##name( \
65 void *port, struct rte_event ev[], uint16_t nb_events, \
66 uint64_t timeout_ticks) \
68 RTE_SET_USED(nb_events); \
70 return cn9k_sso_hws_dual_deq_ca_seg_##name(port, ev, \