reformat some doxygen comments, remove newlines
[c11tester.git] / libatomic.cc
index daf058a916091e75551a056bc38092323a6b9527..531731966a862cacd2f704fa26163f6851cd6d52 100644 (file)
@@ -1,13 +1,24 @@
 #include "libatomic.h"
-#include "threads_internal.h"
+#include "model.h"
+#include "common.h"
 
 void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order)
 {
-       thread_switch_to_master();
+       DBG();
+       obj->value = value;
+       model->switch_to_master(new ModelAction(ATOMIC_WRITE, order, obj, value));
 }
 
 int atomic_load_explicit(struct atomic_object *obj, memory_order order)
 {
-       thread_switch_to_master();
-       return 0;
+       DBG();
+       model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj));
+       return thread_current()->get_return_value();
+}
+
+void atomic_init(struct atomic_object *obj, int value)
+{
+       DBG();
+       obj->value = value;
+       model->switch_to_master(new ModelAction(ATOMIC_INIT, memory_order_relaxed, obj, value));
 }