82 #ifndef RTE_WAIT_UNTIL_EQUAL_ARCH_DEFINED 87 assert(memorder == __ATOMIC_ACQUIRE || memorder == __ATOMIC_RELAXED);
89 while (__atomic_load_n(addr, memorder) != expected)
97 assert(memorder == __ATOMIC_ACQUIRE || memorder == __ATOMIC_RELAXED);
99 while (__atomic_load_n(addr, memorder) != expected)
107 assert(memorder == __ATOMIC_ACQUIRE || memorder == __ATOMIC_RELAXED);
109 while (__atomic_load_n(addr, memorder) != expected)
131 #define RTE_WAIT_UNTIL_MASKED(addr, mask, cond, expected, memorder) do { \ 132 RTE_BUILD_BUG_ON(!__builtin_constant_p(memorder)); \ 133 RTE_BUILD_BUG_ON(memorder != __ATOMIC_ACQUIRE && \ 134 memorder != __ATOMIC_RELAXED); \ 135 typeof(*(addr)) expected_value = (expected); \ 136 while (!((__atomic_load_n((addr), (memorder)) & (mask)) cond \ static __rte_always_inline void rte_wait_until_equal_64(volatile uint64_t *addr, uint64_t expected, int memorder)
#define __rte_always_inline
static void rte_pause(void)
static __rte_always_inline void rte_wait_until_equal_16(volatile uint16_t *addr, uint16_t expected, int memorder)
static __rte_always_inline void rte_wait_until_equal_32(volatile uint32_t *addr, uint32_t expected, int memorder)