split these defs out of other stuff
[model-checker.git] / libatomic.cc
1 #include "libatomic.h"
2 #include "model.h"
3 #include "common.h"
4
5 void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order)
6 {
7         DBG();
8         model->switch_to_master(new ModelAction(ATOMIC_WRITE, order, obj, value));
9 }
10
11 int atomic_load_explicit(struct atomic_object *obj, memory_order order)
12 {
13         DBG();
14         model->switch_to_master(new ModelAction(ATOMIC_READ, order, obj));
15         return (int) thread_current()->get_return_value();
16 }
17
18 void atomic_init(struct atomic_object *obj, int value)
19 {
20         DBG();
21         model->switch_to_master(new ModelAction(ATOMIC_INIT, memory_order_relaxed, obj, value));
22 }