DPDK  21.02.0
rte_pmd_ark.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2020 Atomic Rules LLC
3  */
4 
5 #ifndef RTE_PMD_ARK_H
6 #define RTE_PMD_ARK_H
7 
13 #include <rte_mbuf.h>
14 #include <rte_mbuf_dyn.h>
15 
16 #ifndef RTE_PMD_ARK_TX_USERDATA_ENABLE
17 #define RTE_PMD_ARK_TX_USERDATA_ENABLE 0
18 #endif
19 
20 #ifndef RTE_PMD_ARK_RX_USERDATA_ENABLE
21 #define RTE_PMD_ARK_RX_USERDATA_ENABLE 0
22 #endif
23 
24 typedef uint32_t rte_pmd_ark_tx_userdata_t;
25 typedef uint64_t rte_pmd_ark_rx_userdata_t;
26 
27 extern int rte_pmd_ark_tx_userdata_dynfield_offset;
28 extern int rte_pmd_ark_rx_userdata_dynfield_offset;
29 
31 #define RTE_PMD_ARK_TX_USERDATA_DYNFIELD_NAME "rte_net_ark_dynfield_tx_userdata"
32 
33 #define RTE_PMD_ARK_RX_USERDATA_DYNFIELD_NAME "rte_net_ark_dynfield_rx_userdata"
34 
44 __rte_experimental
45 static inline rte_pmd_ark_tx_userdata_t
47 {
48 #if RTE_PMD_ARK_TX_USERDATA_ENABLE
49  return *RTE_MBUF_DYNFIELD(mbuf, rte_pmd_ark_tx_userdata_dynfield_offset,
50  rte_pmd_ark_tx_userdata_t *);
51 #else
52  RTE_SET_USED(mbuf);
53  return 0;
54 #endif
55 }
56 
66 __rte_experimental
67 static inline void
69  rte_pmd_ark_tx_userdata_t data)
70 {
71 #if RTE_PMD_ARK_TX_USERDATA_ENABLE
72  *RTE_MBUF_DYNFIELD(mbuf, rte_pmd_ark_tx_userdata_dynfield_offset,
73  rte_pmd_ark_tx_userdata_t *) = data;
74 #else
75  RTE_SET_USED(mbuf);
76  RTE_SET_USED(data);
77 #endif
78 }
79 
89 __rte_experimental
90 static inline rte_pmd_ark_rx_userdata_t
92 {
93 #if RTE_PMD_ARK_RX_USERDATA_ENABLE
94  return *RTE_MBUF_DYNFIELD(mbuf, rte_pmd_ark_rx_userdata_dynfield_offset,
95  rte_pmd_ark_rx_userdata_t *);
96 #else
97  RTE_SET_USED(mbuf);
98  return 0;
99 #endif
100 }
101 
111 __rte_experimental
112 static inline void
114  rte_pmd_ark_rx_userdata_t data)
115 {
116 #if RTE_PMD_ARK_RX_USERDATA_ENABLE
117  *RTE_MBUF_DYNFIELD(mbuf, rte_pmd_ark_rx_userdata_dynfield_offset,
118  rte_pmd_ark_rx_userdata_t *) = data;
119 #else
120  RTE_SET_USED(mbuf);
121  RTE_SET_USED(data);
122 #endif
123 }
124 
125 #endif /* RTE_PMD_ARK_H */
#define RTE_MBUF_DYNFIELD(m, offset, type)
Definition: rte_mbuf_dyn.h:235
static __rte_experimental void rte_pmd_ark_mbuf_tx_userdata_set(struct rte_mbuf *mbuf, rte_pmd_ark_tx_userdata_t data)
Definition: rte_pmd_ark.h:68
static __rte_experimental void rte_pmd_ark_mbuf_rx_userdata_set(struct rte_mbuf *mbuf, rte_pmd_ark_rx_userdata_t data)
Definition: rte_pmd_ark.h:113
#define RTE_SET_USED(x)
Definition: rte_common.h:131
static __rte_experimental rte_pmd_ark_tx_userdata_t rte_pmd_ark_mbuf_tx_userdata_get(const struct rte_mbuf *mbuf)
Definition: rte_pmd_ark.h:46
static __rte_experimental rte_pmd_ark_rx_userdata_t rte_pmd_ark_mbuf_rx_userdata_get(const struct rte_mbuf *mbuf)
Definition: rte_pmd_ark.h:91