On 14/05/16 06:34, Emilio G. Cota wrote: > This new helper expands to __atomic_test_and_set with acquire semantics > where available; otherwise it expands to __sync_test_and_set, which > has acquire semantics.
Why don't also add atomic_clear_release() for completeness? Kind regards, Sergey > > Signed-off-by: Emilio G. Cota <c...@braap.org> > --- > include/qemu/atomic.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h > index 5bc4d6c..6061a46 100644 > --- a/include/qemu/atomic.h > +++ b/include/qemu/atomic.h > @@ -113,6 +113,7 @@ > } while(0) > #endif > > +#define atomic_test_and_set_acquire(ptr) __atomic_test_and_set(ptr, > __ATOMIC_ACQUIRE) > > /* All the remaining operations are fully sequentially consistent */ > > @@ -327,6 +328,8 @@ > #endif > #endif > > +#define atomic_test_and_set_acquire(ptr) __sync_lock_test_and_set(ptr, true) > + > /* Provide shorter names for GCC atomic builtins. */ > #define atomic_fetch_inc(ptr) __sync_fetch_and_add(ptr, 1) > #define atomic_fetch_dec(ptr) __sync_fetch_and_add(ptr, -1)