30 static inline void rte_mb(
void);
39 static inline void rte_wmb(
void);
48 static inline void rte_rmb(
void);
160 #define rte_compiler_barrier() do { \ 161 asm volatile ("" : : : "memory"); \ 185 #ifdef RTE_FORCE_INTRINSICS 189 return __sync_bool_compare_and_swap(dst, exp, src);
203 #define RTE_ATOMIC16_INIT(val) { (val) } 225 static inline int16_t
256 __sync_fetch_and_add(&v->
cnt, inc);
270 __sync_fetch_and_sub(&v->
cnt, dec);
282 #ifdef RTE_FORCE_INTRINSICS 299 #ifdef RTE_FORCE_INTRINSICS 320 static inline int16_t
323 return __sync_add_and_fetch(&v->
cnt, inc);
340 static inline int16_t
343 return __sync_sub_and_fetch(&v->
cnt, dec);
359 #ifdef RTE_FORCE_INTRINSICS 362 return __sync_add_and_fetch(&v->
cnt, 1) == 0;
379 #ifdef RTE_FORCE_INTRINSICS 382 return __sync_sub_and_fetch(&v->
cnt, 1) == 0;
399 #ifdef RTE_FORCE_INTRINSICS 438 #ifdef RTE_FORCE_INTRINSICS 442 return __sync_bool_compare_and_swap(dst, exp, src);
456 #define RTE_ATOMIC32_INIT(val) { (val) } 478 static inline int32_t
509 __sync_fetch_and_add(&v->
cnt, inc);
523 __sync_fetch_and_sub(&v->
cnt, dec);
535 #ifdef RTE_FORCE_INTRINSICS 552 #ifdef RTE_FORCE_INTRINSICS 573 static inline int32_t
576 return __sync_add_and_fetch(&v->
cnt, inc);
593 static inline int32_t
596 return __sync_sub_and_fetch(&v->
cnt, dec);
612 #ifdef RTE_FORCE_INTRINSICS 615 return __sync_add_and_fetch(&v->
cnt, 1) == 0;
632 #ifdef RTE_FORCE_INTRINSICS 635 return __sync_sub_and_fetch(&v->
cnt, 1) == 0;
652 #ifdef RTE_FORCE_INTRINSICS 690 #ifdef RTE_FORCE_INTRINSICS 694 return __sync_bool_compare_and_swap(dst, exp, src);
708 #define RTE_ATOMIC64_INIT(val) { (val) } 719 #ifdef RTE_FORCE_INTRINSICS 729 while (success == 0) {
746 static inline int64_t
749 #ifdef RTE_FORCE_INTRINSICS 750 static inline int64_t
759 while (success == 0) {
781 #ifdef RTE_FORCE_INTRINSICS 791 while (success == 0) {
811 #ifdef RTE_FORCE_INTRINSICS 815 __sync_fetch_and_add(&v->
cnt, inc);
830 #ifdef RTE_FORCE_INTRINSICS 834 __sync_fetch_and_sub(&v->
cnt, dec);
847 #ifdef RTE_FORCE_INTRINSICS 864 #ifdef RTE_FORCE_INTRINSICS 885 static inline int64_t
888 #ifdef RTE_FORCE_INTRINSICS 889 static inline int64_t
892 return __sync_add_and_fetch(&v->
cnt, inc);
909 static inline int64_t
912 #ifdef RTE_FORCE_INTRINSICS 913 static inline int64_t
916 return __sync_sub_and_fetch(&v->
cnt, dec);
933 #ifdef RTE_FORCE_INTRINSICS 953 #ifdef RTE_FORCE_INTRINSICS 973 #ifdef RTE_FORCE_INTRINSICS 988 #ifdef RTE_FORCE_INTRINSICS static void rte_atomic32_inc(rte_atomic32_t *v)
static int64_t rte_atomic64_sub_return(rte_atomic64_t *v, int64_t dec)
static void rte_smp_rmb(void)
static int rte_atomic32_cmpset(volatile uint32_t *dst, uint32_t exp, uint32_t src)
static int16_t rte_atomic16_read(const rte_atomic16_t *v)
static void rte_wmb(void)
static void rte_atomic32_add(rte_atomic32_t *v, int32_t inc)
static int rte_atomic16_dec_and_test(rte_atomic16_t *v)
static int64_t rte_atomic64_read(rte_atomic64_t *v)
static int16_t rte_atomic16_sub_return(rte_atomic16_t *v, int16_t dec)
static void rte_atomic32_sub(rte_atomic32_t *v, int32_t dec)
static void rte_cio_rmb(void)
static void rte_atomic32_dec(rte_atomic32_t *v)
static int rte_atomic32_inc_and_test(rte_atomic32_t *v)
static void rte_io_mb(void)
static void rte_atomic64_inc(rte_atomic64_t *v)
static void rte_atomic32_set(rte_atomic32_t *v, int32_t new_value)
static int32_t rte_atomic32_add_return(rte_atomic32_t *v, int32_t inc)
static void rte_atomic16_add(rte_atomic16_t *v, int16_t inc)
static void rte_atomic32_init(rte_atomic32_t *v)
static void rte_atomic16_clear(rte_atomic16_t *v)
static int rte_atomic16_test_and_set(rte_atomic16_t *v)
static int rte_atomic64_cmpset(volatile uint64_t *dst, uint64_t exp, uint64_t src)
static void rte_atomic16_sub(rte_atomic16_t *v, int16_t dec)
static void rte_atomic16_set(rte_atomic16_t *v, int16_t new_value)
static void rte_io_wmb(void)
static void rte_atomic64_clear(rte_atomic64_t *v)
static int16_t rte_atomic16_add_return(rte_atomic16_t *v, int16_t inc)
static int rte_atomic64_dec_and_test(rte_atomic64_t *v)
static void rte_smp_wmb(void)
static int64_t rte_atomic64_add_return(rte_atomic64_t *v, int64_t inc)
static void rte_rmb(void)
static void rte_atomic32_clear(rte_atomic32_t *v)
static void rte_atomic16_inc(rte_atomic16_t *v)
static int rte_atomic16_inc_and_test(rte_atomic16_t *v)
static int rte_atomic16_cmpset(volatile uint16_t *dst, uint16_t exp, uint16_t src)
static int rte_atomic64_inc_and_test(rte_atomic64_t *v)
static int32_t rte_atomic32_sub_return(rte_atomic32_t *v, int32_t dec)
static void rte_atomic64_sub(rte_atomic64_t *v, int64_t dec)
static int rte_atomic32_test_and_set(rte_atomic32_t *v)
static void rte_smp_mb(void)
static void rte_atomic16_dec(rte_atomic16_t *v)
static void rte_atomic64_init(rte_atomic64_t *v)
static void rte_atomic64_dec(rte_atomic64_t *v)
static void rte_atomic16_init(rte_atomic16_t *v)
static int rte_atomic64_test_and_set(rte_atomic64_t *v)
static void rte_cio_wmb(void)
static int32_t rte_atomic32_read(const rte_atomic32_t *v)
static void rte_atomic64_set(rte_atomic64_t *v, int64_t new_value)
static int rte_atomic32_dec_and_test(rte_atomic32_t *v)
static void rte_atomic64_add(rte_atomic64_t *v, int64_t inc)
static void rte_io_rmb(void)