11#ifndef _RTE_RING_C11_PVT_H_
12#define _RTE_RING_C11_PVT_H_
53 uint32_t *old_head, uint32_t *new_head, uint32_t *entries)
60 *old_head = rte_atomic_load_explicit(&d->head, rte_memory_order_relaxed);
66 stail = rte_atomic_load_explicit(&s->tail, rte_memory_order_acquire);
71 *entries = capacity + stail - *old_head;
78 *new_head = *old_head + n;
79 rte_atomic_store_explicit(&d->head, *new_head, rte_memory_order_relaxed);
116 uint32_t *old_head, uint32_t *new_head, uint32_t *entries)
120 unsigned int max = n;
129 *old_head = rte_atomic_load_explicit(&d->head,
130 rte_memory_order_acquire);
141 stail = rte_atomic_load_explicit(&s->tail,
142 rte_memory_order_acquire);
149 *entries = (capacity + stail - *old_head);
159 *new_head = *old_head + n;
170 success = rte_atomic_compare_exchange_strong_explicit(
171 &d->head, old_head, *new_head,
172 rte_memory_order_release,
173 rte_memory_order_acquire);
#define __rte_always_inline