1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
5 #include "cn10k_worker.h"
6 #include "cnxk_eventdev.h"
7 #include "cnxk_worker.h"
9 #define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
10 uint16_t __rte_hot cn10k_sso_hws_deq_tmo_##name( \
11 void *port, struct rte_event *ev, uint64_t timeout_ticks) \
13 struct cn10k_sso_hws *ws = port; \
17 if (ws->swtag_req) { \
19 cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
23 ret = cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
24 for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
25 ret = cn10k_sso_hws_get_work(ws, ev, flags, \
31 uint16_t __rte_hot cn10k_sso_hws_deq_tmo_burst_##name( \
32 void *port, struct rte_event ev[], uint16_t nb_events, \
33 uint64_t timeout_ticks) \
35 RTE_SET_USED(nb_events); \
37 return cn10k_sso_hws_deq_tmo_##name(port, ev, timeout_ticks); \
40 uint16_t __rte_hot cn10k_sso_hws_deq_tmo_seg_##name( \
41 void *port, struct rte_event *ev, uint64_t timeout_ticks) \
43 struct cn10k_sso_hws *ws = port; \
47 if (ws->swtag_req) { \
49 cnxk_sso_hws_swtag_wait(ws->base + SSOW_LF_GWS_WQE0); \
53 ret = cn10k_sso_hws_get_work(ws, ev, flags, ws->lookup_mem); \
54 for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) \
55 ret = cn10k_sso_hws_get_work(ws, ev, flags, \
61 uint16_t __rte_hot cn10k_sso_hws_deq_tmo_seg_burst_##name( \
62 void *port, struct rte_event ev[], uint16_t nb_events, \
63 uint64_t timeout_ticks) \
65 RTE_SET_USED(nb_events); \
67 return cn10k_sso_hws_deq_tmo_seg_##name(port, ev, \