10 #ifndef _RTE_RING_CORE_H_
11 #define _RTE_RING_CORE_H_
31 #include <rte_config.h>
40 #define RTE_TAILQ_RING_NAME "RTE_RING"
50 #define RTE_RING_MZ_PREFIX "RG_"
52 #define RTE_RING_NAMESIZE (RTE_MEMZONE_NAMESIZE - \
53 sizeof(RTE_RING_MZ_PREFIX) + 1)
80 union __rte_ring_rts_poscnt {
89 struct rte_ring_rts_headtail {
90 volatile union __rte_ring_rts_poscnt tail;
93 volatile union __rte_ring_rts_poscnt head;
96 union __rte_ring_hts_pos {
105 struct rte_ring_hts_headtail {
106 volatile union __rte_ring_hts_pos ht;
136 struct rte_ring_hts_headtail hts_prod;
137 struct rte_ring_rts_headtail rts_prod;
146 struct rte_ring_hts_headtail hts_cons;
147 struct rte_ring_rts_headtail rts_cons;
153 #define RING_F_SP_ENQ 0x0001
154 #define RING_F_SC_DEQ 0x0002
163 #define RING_F_EXACT_SZ 0x0004
164 #define RTE_RING_SZ_MASK (0x7fffffffU)
166 #define RING_F_MP_RTS_ENQ 0x0008
167 #define RING_F_MC_RTS_DEQ 0x0010
169 #define RING_F_MP_HTS_ENQ 0x0020
170 #define RING_F_MC_HTS_DEQ 0x0040