-#define atomic_fetch_add_explicit(ptr, val, mem) \
- ({ __sync_synchronize(); \
- typeof(*ptr) rval = __sync_fetch_and_add((ptr), (val)); \
- __sync_synchronize(); rval; })
-#define atomic_fetch_sub_explicit(ptr, val, mem) \
- ({ __sync_synchronize(); \
- typeof(*ptr) rval = __sync_fetch_and_sub((ptr), (val)); \
- __sync_synchronize(); rval; })
-
-#define atomic_compare_exchange_weak_explicit(atom, expect, desire, mem1, mem2) \
- ({ typeof(atom) _atom = (atom); typeof(expect) _expect = (expect); \
- typeof(desire) _desire = (desire); \
- __sync_synchronize(); \
- typeof(*atom) rval = __sync_val_compare_and_swap(_atom, *_expect, _desire); \
- __sync_synchronize(); \
- bool ret = (rval == *_expect); *_expect = rval; ret; })
+#define atomic_fetch_add_explicit(ptr, val, mem) \
+ ({ \
+ __sync_synchronize(); \
+ typeof(*ptr) rval = __sync_fetch_and_add((ptr), (val)); \
+ __sync_synchronize(); \
+ rval; \
+ })
+#define atomic_fetch_sub_explicit(ptr, val, mem) \
+ ({ \
+ __sync_synchronize(); \
+ typeof(*ptr) rval = __sync_fetch_and_sub((ptr), (val)); \
+ __sync_synchronize(); \
+ rval; \
+ })
+
+#define atomic_compare_exchange_weak_explicit(atom, expect, desire, mem1, \
+ mem2) \
+ ({ \
+ typeof(atom) _atom = (atom); \
+ typeof(expect) _expect = (expect); \
+ typeof(desire) _desire = (desire); \
+ __sync_synchronize(); \
+ typeof(*atom) rval = \
+ __sync_val_compare_and_swap(_atom, *_expect, _desire); \
+ __sync_synchronize(); \
+ bool ret = (rval == *_expect); \
+ *_expect = rval; \
+ ret; \
+ })
+#define atomic_fetch_and_explicit(ptr, val, mem) \
+ ({ \
+ __sync_synchronize(); \
+ typeof(*ptr) rval = __sync_fetch_and_and(ptr, val); \
+ __sync_synchronize(); \
+ rval; \
+ })
+#define atomic_fetch_or_explicit(ptr, val, mem) \
+ ({ \
+ __sync_synchronize(); \
+ typeof(*ptr) rval = __sync_fetch_and_or(ptr, val); \
+ __sync_synchronize(); \
+ rval; \
+ })