95d711f9b3b9e278b9ede12833d8452f7eac4ca0
[dpdk.git] / drivers / event / cnxk / cn9k_worker_dual_tx_enq_seg.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #include "cn9k_worker.h"
6
7 #define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags)                         \
8         uint16_t __rte_hot cn9k_sso_hws_dual_tx_adptr_enq_seg_##name(          \
9                 void *port, struct rte_event ev[], uint16_t nb_events)         \
10         {                                                                      \
11                 uint64_t cmd[(sz) + CNXK_NIX_TX_MSEG_SG_DWORDS - 2];           \
12                 struct cn9k_sso_hws_dual *ws = port;                           \
13                                                                                \
14                 RTE_SET_USED(nb_events);                                       \
15                 return cn9k_sso_hws_event_tx(                                  \
16                         ws->base[!ws->vws], &ev[0], cmd,                       \
17                         (const uint64_t(*)[RTE_MAX_QUEUES_PER_PORT]) &         \
18                                 ws->tx_adptr_data,                             \
19                         (flags) | NIX_TX_MULTI_SEG_F);                         \
20         }
21
22 NIX_TX_FASTPATH_MODES
23 #undef T