X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fovs-atomic-gcc4%2B.h;h=b465181498ce4aa136d8a5b0c9e1516114a3f0eb;hb=db19b72b9f6d0d40b743214241d9666116e3b448;hp=b8649ede98fcb4394c1ff7868eb32f00919ae095;hpb=31a3fc6e3e9ce68d8bfebf65150d9455b9334dda;p=sliver-openvswitch.git diff --git a/lib/ovs-atomic-gcc4+.h b/lib/ovs-atomic-gcc4+.h index b8649ede9..b46518149 100644 --- a/lib/ovs-atomic-gcc4+.h +++ b/lib/ovs-atomic-gcc4+.h @@ -117,7 +117,7 @@ typedef enum { __builtin_choose_expr( \ __builtin_types_compatible_p(typeof(OBJECT), struct locked_uint64), \ (THEN), (ELSE)) -#define AS_LOCKED_UINT64(OBJECT) ((struct locked_uint64 *) (OBJECT)) +#define AS_LOCKED_UINT64(OBJECT) ((struct locked_uint64 *) (void *) (OBJECT)) #define AS_UINT64(OBJECT) ((uint64_t *) (OBJECT)) struct locked_uint64 { uint64_t value; @@ -135,7 +135,7 @@ uint64_t locked_uint64_and(struct locked_uint64 *, uint64_t arg); __builtin_choose_expr( \ __builtin_types_compatible_p(typeof(OBJECT), struct locked_int64), \ (THEN), (ELSE)) -#define AS_LOCKED_INT64(OBJECT) ((struct locked_int64 *) (OBJECT)) +#define AS_LOCKED_INT64(OBJECT) ((struct locked_int64 *) (void *) (OBJECT)) #define AS_INT64(OBJECT) ((int64_t *) (OBJECT)) struct locked_int64 { int64_t value; @@ -150,6 +150,7 @@ int64_t locked_int64_and(struct locked_int64 *, int64_t arg); #define ATOMIC_VAR_INIT(VALUE) { .value = (VALUE) } #define atomic_init(OBJECT, VALUE) ((OBJECT)->value = (VALUE), (void) 0) +#define atomic_destroy(OBJECT) ((void) (OBJECT)) static inline void atomic_thread_fence(memory_order order) @@ -238,6 +239,18 @@ typedef struct { } atomic_flag; #define ATOMIC_FLAG_INIT { false } +static inline void +atomic_flag_init(volatile atomic_flag *object OVS_UNUSED) +{ + /* Nothing to do. */ +} + +static inline void +atomic_flag_destroy(volatile atomic_flag *object OVS_UNUSED) +{ + /* Nothing to do. */ +} + static inline bool atomic_flag_test_and_set(volatile atomic_flag *object) {