clockvector: add print() method
[c11tester.git] / libatomic.h
index f861445cb0789b547a708150eb598547d59e78d3..1806f21968b75405c1675a9456b4e79afa6f421f 100644 (file)
@@ -1,22 +1,33 @@
 #ifndef __LIBATOMIC_H__
 #define __LIBATOMIC_H__
 
-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 {
-} atomic_int;
-
-void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+       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);
+       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
+}
+#endif
+
 #endif /* __LIBATOMIC_H__ */