From: Witold Kręcicki Date: Mon, 21 Jan 2019 08:32:36 +0000 (+0100) Subject: Add atomic_store_relaxed and atomic_load_relaxed macros to isc/atomic.h, fix issues... X-Git-Tag: v9.13.6~35^2~3 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=814bfa23b208b0fd35e47047f0f012de8d6d599e;p=thirdparty%2Fbind9.git Add atomic_store_relaxed and atomic_load_relaxed macros to isc/atomic.h, fix issues in isc/stdatomic.h --- diff --git a/lib/isc/include/isc/atomic.h b/lib/isc/include/isc/atomic.h index d6f95de111c..893f5526fd0 100644 --- a/lib/isc/include/isc/atomic.h +++ b/lib/isc/include/isc/atomic.h @@ -16,3 +16,12 @@ #else #include #endif + +/* + * We define a few additional macros to make things easier + */ + +#define atomic_store_relaxed(o, v) atomic_store_explicit((o), \ + (v), \ + memory_order_relaxed) +#define atomic_load_relaxed(o) atomic_load_explicit((o), memory_order_relaxed) diff --git a/lib/isc/include/isc/stdatomic.h b/lib/isc/include/isc/stdatomic.h index 723ed1e5a82..e85027855e3 100644 --- a/lib/isc/include/isc/stdatomic.h +++ b/lib/isc/include/isc/stdatomic.h @@ -11,6 +11,8 @@ #pragma once +#include + #if !defined(__has_feature) #define __has_feature(x) 0 #endif @@ -134,11 +136,11 @@ typedef uint_fast64_t atomic_uint_fast64_t; #define atomic_load(obj) \ atomic_load_explicit(obj, memory_order_seq_cst) -#define atomic_store(obj) \ - atomic_store_explicit(obj, memory_order_seq_cst) -#define atomic_fetch_add(obj) \ +#define atomic_store(obj, arg) \ + atomic_store_explicit(obj, arg, memory_order_seq_cst) +#define atomic_fetch_add(obj, arg) \ atomic_fetch_add_explicit(obj, arg, memory_order_seq_cst) -#define atomic_fetch_sub(obj) \ +#define atomic_fetch_sub(obj, arg) \ atomic_fetch_sub_explicit(obj, arg, memory_order_seq_cst) #define atomic_compare_exchange_strong(obj, expected, desired) \ atomic_compare_exchange_strong_explicit(obj, expected, desired, memory_order_seq_cst, memory_order_seq_cst)