4754a826800ab3cee4d6d32baf152905fb3d2d70
[c11tester.git] / cmodelint.cc
1 #include "model.h"
2 #include "cmodelint.h"
3
4 uint64_t model_read_action(void * obj, memory_order ord) {
5         model->switch_to_master(new ModelAction(ATOMIC_READ, ord, obj));
6         return thread_current()->get_return_value();
7 }
8
9 void model_write_action(void * obj, memory_order ord, uint64_t val) {
10         model->switch_to_master(new ModelAction(ATOMIC_WRITE, ord, obj, val));
11 }
12
13 void model_init_action(void * obj, uint64_t val) {
14         model->switch_to_master(new ModelAction(ATOMIC_INIT, memory_order_relaxed, obj, val));
15 }
16
17 uint64_t model_rmwr_action(void *obj, memory_order ord) {
18         model->switch_to_master(new ModelAction(ATOMIC_RMWR, ord, obj));
19         return thread_current()->get_return_value();
20 }
21
22 void model_rmw_action(void *obj, memory_order ord, uint64_t val) {
23         model->switch_to_master(new ModelAction(ATOMIC_RMW, ord, obj, val));
24 }
25
26 void model_rmwc_action(void *obj, memory_order ord) {
27         model->switch_to_master(new ModelAction(ATOMIC_RMWC, ord, obj));
28 }