X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Finclude%2Farch%2Fx86%2Frte_atomic.h;h=4eac66631c1ab8b5ba6c9f54aafb3e19cdad063f;hb=e8025211711a08257c4731a69bb5624d7de6d7c6;hp=e93e8eef24db87fbe9477503ae9de3a99c8c0aaf;hpb=a0d395597d41c63b06dbd6ddf53eb436c6433016;p=dpdk.git diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic.h b/lib/librte_eal/common/include/arch/x86/rte_atomic.h index e93e8eef24..4eac66631c 100644 --- a/lib/librte_eal/common/include/arch/x86/rte_atomic.h +++ b/lib/librte_eal/common/include/arch/x86/rte_atomic.h @@ -38,6 +38,8 @@ extern "C" { #endif +#include +#include #include #include "generic/rte_atomic.h" @@ -53,6 +55,18 @@ extern "C" { #define rte_rmb() _mm_lfence() +#define rte_smp_mb() rte_mb() + +#define rte_smp_wmb() rte_compiler_barrier() + +#define rte_smp_rmb() rte_compiler_barrier() + +#define rte_io_mb() rte_mb() + +#define rte_io_wmb() rte_compiler_barrier() + +#define rte_io_rmb() rte_compiler_barrier() + /*------------------------- 16 bit atomic operations -------------------------*/ #ifndef RTE_FORCE_INTRINSICS @@ -112,7 +126,7 @@ static inline int rte_atomic16_inc_and_test(rte_atomic16_t *v) : [cnt] "+m" (v->cnt), /* output */ [ret] "=qm" (ret) ); - return (ret != 0); + return ret != 0; } static inline int rte_atomic16_dec_and_test(rte_atomic16_t *v) @@ -125,7 +139,7 @@ static inline int rte_atomic16_dec_and_test(rte_atomic16_t *v) : [cnt] "+m" (v->cnt), /* output */ [ret] "=qm" (ret) ); - return (ret != 0); + return ret != 0; } /*------------------------- 32 bit atomic operations -------------------------*/ @@ -186,7 +200,7 @@ static inline int rte_atomic32_inc_and_test(rte_atomic32_t *v) : [cnt] "+m" (v->cnt), /* output */ [ret] "=qm" (ret) ); - return (ret != 0); + return ret != 0; } static inline int rte_atomic32_dec_and_test(rte_atomic32_t *v) @@ -199,7 +213,7 @@ static inline int rte_atomic32_dec_and_test(rte_atomic32_t *v) : [cnt] "+m" (v->cnt), /* output */ [ret] "=qm" (ret) ); - return (ret != 0); + return ret != 0; } #endif