X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fovs-atomic-gcc4.7%2B.h;h=52e167fedbc8a45928172cccf41bd48c7152a542;hb=cc457b0fa2e45555b354d7107cabf9c9adc89183;hp=07bef2a53ab317b8d36bab354e3cc958f9d1b89e;hpb=85606e05b691be7c2f2d4bcf0e91170b71ec8fbb;p=sliver-openvswitch.git diff --git a/lib/ovs-atomic-gcc4.7+.h b/lib/ovs-atomic-gcc4.7+.h index 07bef2a53..52e167fed 100644 --- a/lib/ovs-atomic-gcc4.7+.h +++ b/lib/ovs-atomic-gcc4.7+.h @@ -107,35 +107,5 @@ typedef enum { (*(ORIG) = __atomic_fetch_xor(RMW, OPERAND, ORDER), (void) 0) #define atomic_and_explicit(RMW, OPERAND, ORIG, ORDER) \ (*(ORIG) = __atomic_fetch_and(RMW, OPERAND, ORDER), (void) 0) - -/* atomic_flag */ - -typedef struct { - unsigned char b; -} atomic_flag; -#define ATOMIC_FLAG_INIT { .b = false } - -static inline bool -atomic_flag_test_and_set_explicit(volatile atomic_flag *object, - memory_order order) -{ - return __atomic_test_and_set(&object->b, order); -} - -static inline bool -atomic_flag_test_and_set(volatile atomic_flag *object) -{ - return atomic_flag_test_and_set_explicit(object, memory_order_seq_cst); -} - -static inline void -atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order) -{ - __atomic_clear(object, order); -} - -static inline void -atomic_flag_clear(volatile atomic_flag *object) -{ - atomic_flag_clear_explicit(object, memory_order_seq_cst); -} + +#include "ovs-atomic-flag-gcc4.7+.h"