action: switch from "libatomic" to C++-spec "memory_order_*" macros
[c11tester.git] / libatomic.h
index 71482c3d0a505d050fafc912951d8c084ee7fac6..c804fbc78f039092327c6dbc9535e4d5043ba8f7 100644 (file)
@@ -5,31 +5,18 @@
 #ifndef __LIBATOMIC_H__
 #define __LIBATOMIC_H__
 
+#include "memoryorder.h"
+
 #ifdef __cplusplus
+using std::memory_order;
+using std::memory_order_relaxed;
+using std::memory_order_acquire;
+using std::memory_order_release;
+using std::memory_order_acq_rel;
+using std::memory_order_seq_cst;
 extern "C" {
 #endif
 
-       /** @brief The memory orders specified by the C11/C++11 memory models */
-       typedef enum memory_order {
-               memory_order_relaxed,
-               memory_order_consume,
-               memory_order_acquire,
-               memory_order_release,
-               memory_order_acq_rel,
-               memory_order_seq_cst
-       } memory_order;
-
-       typedef struct atomic_object {
-               int value;
-       } atomic_int;
-
-       void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order);
-#define atomic_store(A, B) atomic_store_explicit((A), (B), memory_order_seq_cst)
-
-       int atomic_load_explicit(struct atomic_object *obj, memory_order order);
-#define atomic_load(A) atomic_load_explicit((A), memory_order_seq_cst)
-
-       void atomic_init(struct atomic_object *obj, int value);
 
 #ifdef __cplusplus
 }