X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.h;h=53107ea81762d33ab6a63ef2fa7e69176b379b1c;hb=06c0e4f929e94ae837186b50d7d75138bf2d0fd2;hp=62141749d5efafc34dc1bbe3fef6656b344571ec;hpb=99fa967b684157d23b0316d419731aa8af26b86e;p=model-checker.git diff --git a/action.h b/action.h index 6214174..53107ea 100644 --- a/action.h +++ b/action.h @@ -14,12 +14,16 @@ typedef enum action_type { THREAD_YIELD, THREAD_JOIN, ATOMIC_READ, - ATOMIC_WRITE + ATOMIC_WRITE, + ATOMIC_RMW } action_type_t; /* Forward declaration */ class Node; class ClockVector; +/** + * The ModelAction class encapsulates an atomic action. + */ class ModelAction { public: @@ -56,14 +60,29 @@ public: MEMALLOC private: + + /** Type of action (read, write, thread create, thread yield, thread join) */ action_type type; + + /** The memory order for this operation. */ memory_order order; + + /** A pointer to the memory location for this action. */ void *location; + + /** The thread id that performed this action. */ thread_id_t tid; + + /** The value written. This should probably be something longer. */ int value; + Node *node; + int seq_number; + /** The clock vector stored with this action if this action is a + * store release */ + ClockVector *cv; };