diff options
author | Jarno Rajahalme <jrajahalme@nicira.com> | 2014-07-07 13:18:46 -0700 |
---|---|---|
committer | Jarno Rajahalme <jrajahalme@nicira.com> | 2014-07-07 13:19:45 -0700 |
commit | 25045d755e1161fd6d0097db683a91d9bd5d2913 (patch) | |
tree | d2cf8f54135c597eea0172d515ff1188b42d505e /lib/ovs-atomic-pthreads.h | |
parent | 541bfad20a51d6dc3c051368d70d49e13b040fb9 (diff) | |
download | openvswitch-25045d755e1161fd6d0097db683a91d9bd5d2913.tar.gz |
lib/ovs-atomic: Add atomic compare_exchange.
Add support for atomic compare_exchange operations.
Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/ovs-atomic-pthreads.h')
-rw-r--r-- | lib/ovs-atomic-pthreads.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/ovs-atomic-pthreads.h b/lib/ovs-atomic-pthreads.h index 33270c6a2..12234e79e 100644 --- a/lib/ovs-atomic-pthreads.h +++ b/lib/ovs-atomic-pthreads.h @@ -67,6 +67,16 @@ atomic_signal_fence(memory_order order OVS_UNUSED) #define atomic_read_explicit(SRC, DST, ORDER) \ ((void) (ORDER), atomic_read(SRC, DST)) +#define atomic_compare_exchange_strong(DST, EXP, SRC) \ + atomic_compare_exchange_locked(DST, EXP, SRC) +#define atomic_compare_exchange_strong_explicit(DST, EXP, SRC, ORD1, ORD2) \ + ((void) (ORD1), (void) (ORD2), \ + atomic_compare_exchange_strong(DST, EXP, SRC)) +#define atomic_compare_exchange_weak \ + atomic_compare_exchange_strong +#define atomic_compare_exchange_weak_explicit \ + atomic_compare_exchange_strong_explicit + #define atomic_add(RMW, ARG, ORIG) atomic_op_locked(RMW, add, ARG, ORIG) #define atomic_sub(RMW, ARG, ORIG) atomic_op_locked(RMW, sub, ARG, ORIG) #define atomic_or( RMW, ARG, ORIG) atomic_op_locked(RMW, or, ARG, ORIG) |