split header out to action.h
authorBrian Norris <banorris@uci.edu>
Mon, 30 Apr 2012 07:36:33 +0000 (00:36 -0700)
committerBrian Norris <banorris@uci.edu>
Mon, 30 Apr 2012 07:39:39 +0000 (00:39 -0700)
Makefile
action.h [new file with mode: 0644]
model.cc
model.h

index 1f91c5dd6b86b22182c0813e0d2906bfbed7664d..4a5360d96058701c69383197a38131f409b416dd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ USER_H=libthreads.h libatomic.h
 
 MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc malloc.c threads.cc tree.cc librace.cc
 MODEL_O=libthreads.o schedule.o libatomic.o model.o malloc.o threads.o tree.o librace.o
-MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h
+MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h action.h
 
 CPPFLAGS=-Wall -g
 LDFLAGS=-ldl
diff --git a/action.h b/action.h
new file mode 100644 (file)
index 0000000..f9f0c41
--- /dev/null
+++ b/action.h
@@ -0,0 +1,54 @@
+#ifndef __ACTION_H__
+#define __ACTION_H__
+
+#include <list>
+
+#include "libthreads.h"
+#include "libatomic.h"
+#include "threads.h"
+
+#define VALUE_NONE -1
+
+typedef enum action_type {
+       THREAD_CREATE,
+       THREAD_YIELD,
+       THREAD_JOIN,
+       ATOMIC_READ,
+       ATOMIC_WRITE
+} action_type_t;
+
+/* Forward declaration (tree.h) */
+class TreeNode;
+
+class ModelAction {
+public:
+       ModelAction(action_type_t type, memory_order order, void *loc, int value);
+       void print(void);
+
+       thread_id_t get_tid() { return tid; }
+       action_type get_type() { return type; }
+       memory_order get_mo() { return order; }
+       void * get_location() { return location; }
+
+       TreeNode * get_node() { return node; }
+       void set_node(TreeNode *n) { node = n; }
+
+       bool is_read();
+       bool is_write();
+       bool is_acquire();
+       bool is_release();
+       bool same_var(ModelAction *act);
+       bool same_thread(ModelAction *act);
+       bool is_dependent(ModelAction *act);
+private:
+       action_type type;
+       memory_order order;
+       void *location;
+       thread_id_t tid;
+       int value;
+       TreeNode *node;
+};
+
+typedef std::list<class ModelAction *> action_list_t;
+
+#endif /* __ACTION_H__ */
index 84b296e56b109e2a4295d312c1a7746a5267d30c..f447c1dfa50e98139b4b1b30a7cb5d9d5a6a5060 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -1,6 +1,8 @@
 #include <stdio.h>
 
 #include "model.h"
+#include "action.h"
+#include "tree.h"
 #include "schedule.h"
 #include "common.h"
 
diff --git a/model.h b/model.h
index d04fa6208a35a5498c4e8bc54c1067afa5078187..83db4d8f7c3985d72e1b7d151a259027db7fee55 100644 (file)
--- a/model.h
+++ b/model.h
 #include "libthreads.h"
 #include "libatomic.h"
 #include "threads.h"
-#include "tree.h"
+#include "action.h"
 
-#define VALUE_NONE -1
-
-typedef enum action_type {
-       THREAD_CREATE,
-       THREAD_YIELD,
-       THREAD_JOIN,
-       ATOMIC_READ,
-       ATOMIC_WRITE
-} action_type_t;
-
-typedef std::list<class ModelAction *> action_list_t;
-
-class ModelAction {
-public:
-       ModelAction(action_type_t type, memory_order order, void *loc, int value);
-       void print(void);
-
-       thread_id_t get_tid() { return tid; }
-       action_type get_type() { return type; }
-       memory_order get_mo() { return order; }
-       void * get_location() { return location; }
-
-       TreeNode * get_node() { return node; }
-       void set_node(TreeNode *n) { node = n; }
-
-       bool is_read();
-       bool is_write();
-       bool is_acquire();
-       bool is_release();
-       bool same_var(ModelAction *act);
-       bool same_thread(ModelAction *act);
-       bool is_dependent(ModelAction *act);
-private:
-       action_type type;
-       memory_order order;
-       void *location;
-       thread_id_t tid;
-       int value;
-       TreeNode *node;
-};
+/* Forward declaration */
+class TreeNode;
 
 class Backtrack {
 public: