On 17/05/2016 18:15, Sergey Fedorov wrote:
> 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?

The previous patch adds atomic_set_release.

Paolo

> 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)
> 

Reply via email to