@@ -72,6 +72,7 @@ terms of the MIT license. A copy of the license can be found in the file
7272#define mi_atomic_load_relaxed (p ) mi_atomic(load_explicit)(p,mi_memory_order(relaxed))
7373#define mi_atomic_store_release (p,x ) mi_atomic(store_explicit)(p,x,mi_memory_order(release))
7474#define mi_atomic_store_relaxed (p,x ) mi_atomic(store_explicit)(p,x,mi_memory_order(relaxed))
75+ #define mi_atomic_exchange_relaxed (p,x ) mi_atomic(exchange_explicit)(p,x,mi_memory_order(relaxed))
7576#define mi_atomic_exchange_release (p,x ) mi_atomic(exchange_explicit)(p,x,mi_memory_order(release))
7677#define mi_atomic_exchange_acq_rel (p,x ) mi_atomic(exchange_explicit)(p,x,mi_memory_order(acq_rel))
7778#define mi_atomic_cas_weak_release (p,exp,des ) mi_atomic_cas_weak(p,exp,des,mi_memory_order(release),mi_memory_order(relaxed))
@@ -110,6 +111,7 @@ static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub);
110111#define mi_atomic_cas_ptr_weak_release (tp,p,exp,des ) mi_atomic_cas_weak_release(p,exp,(tp*)des)
111112#define mi_atomic_cas_ptr_weak_acq_rel (tp,p,exp,des ) mi_atomic_cas_weak_acq_rel(p,exp,(tp*)des)
112113#define mi_atomic_cas_ptr_strong_release (tp,p,exp,des ) mi_atomic_cas_strong_release(p,exp,(tp*)des)
114+ #define mi_atomic_exchange_ptr_relaxed (tp,p,x ) mi_atomic_exchange_relaxed(p,(tp*)x)
113115#define mi_atomic_exchange_ptr_release (tp,p,x ) mi_atomic_exchange_release(p,(tp*)x)
114116#define mi_atomic_exchange_ptr_acq_rel (tp,p,x ) mi_atomic_exchange_acq_rel(p,(tp*)x)
115117#else
@@ -118,6 +120,7 @@ static inline intptr_t mi_atomic_subi(_Atomic(intptr_t)*p, intptr_t sub);
118120#define mi_atomic_cas_ptr_weak_release (tp,p,exp,des ) mi_atomic_cas_weak_release(p,exp,des)
119121#define mi_atomic_cas_ptr_weak_acq_rel (tp,p,exp,des ) mi_atomic_cas_weak_acq_rel(p,exp,des)
120122#define mi_atomic_cas_ptr_strong_release (tp,p,exp,des ) mi_atomic_cas_strong_release(p,exp,des)
123+ #define mi_atomic_exchange_ptr_relaxed (tp,p,x ) mi_atomic_exchange_relaxed(p,x)
121124#define mi_atomic_exchange_ptr_release (tp,p,x ) mi_atomic_exchange_release(p,x)
122125#define mi_atomic_exchange_ptr_acq_rel (tp,p,x ) mi_atomic_exchange_acq_rel(p,x)
123126#endif
0 commit comments