X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=action.h;h=5ec109883118af17cc3abf860594d58383ab0909;hb=05d91de8ac8098425d51e9af2704eb91e04a7f9b;hp=be87eca33f7400da44e308a598c6c3084044d620;hpb=fe45c6f997fc39b80e8cfeb326b7cd514c0eda3b;p=model-checker.git diff --git a/action.h b/action.h index be87eca..5ec1098 100644 --- a/action.h +++ b/action.h @@ -24,12 +24,10 @@ using std::memory_order_acq_rel; using std::memory_order_seq_cst; /** Note that this value can be legitimately used by a program, and - hence by iteself does not indicate no value. */ - + * hence by iteself does not indicate no value. */ #define VALUE_NONE 0xdeadbeef /** A special value to represent a successful trylock */ - #define VALUE_TRYSUCCESS 1 /** A special value to represent a failed trylock */ @@ -45,6 +43,7 @@ typedef enum action_type { THREAD_YIELD, /**< A thread yield action */ THREAD_JOIN, /**< A thread join action */ THREAD_FINISH, /**< A thread completion action */ + ATOMIC_UNINIT, /**< Represents an uninitialized atomic */ ATOMIC_READ, /**< An atomic read action */ ATOMIC_WRITE, /**< An atomic write action */ ATOMIC_RMWR, /**< The read part of an atomic RMW action */ @@ -82,7 +81,7 @@ public: uint64_t get_value() const { return value; } const ModelAction * get_reads_from() const { return reads_from; } - Node * get_node() const { return node; } + Node * get_node() const; void set_node(Node *n) { node = n; } void set_read_from(const ModelAction *act); @@ -107,6 +106,8 @@ public: bool is_notify_one() const; bool is_success_lock() const; bool is_failed_trylock() const; + bool is_atomic_var() const; + bool is_uninitialized() const; bool is_read() const; bool is_write() const; bool could_be_write() const;