From: Brian Norris Date: Wed, 1 Aug 2012 02:25:52 +0000 (-0700) Subject: action: add stub ATOMIC_RMWR and ATOMIC_RMWC X-Git-Tag: pldi2013~320 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=11b4b27470ecbaf996a699432dd67e2ca52239b5;p=model-checker.git action: add stub ATOMIC_RMWR and ATOMIC_RMWC --- diff --git a/action.cc b/action.cc index 8793337..74ba5aa 100644 --- a/action.cc +++ b/action.cc @@ -28,7 +28,7 @@ ModelAction::~ModelAction() bool ModelAction::is_read() const { - return type == ATOMIC_READ || type == ATOMIC_RMW; + return type == ATOMIC_READ || type == ATOMIC_RMWR || type == ATOMIC_RMW; } bool ModelAction::is_write() const @@ -36,11 +36,21 @@ bool ModelAction::is_write() const return type == ATOMIC_WRITE || type == ATOMIC_RMW || type == ATOMIC_INIT; } +bool ModelAction::is_rmwr() const +{ + return type == ATOMIC_RMWR; +} + bool ModelAction::is_rmw() const { return type == ATOMIC_RMW; } +bool ModelAction::is_rmwc() const +{ + return type == ATOMIC_RMWC; +} + bool ModelAction::is_initialization() const { return type == ATOMIC_INIT; @@ -183,6 +193,12 @@ void ModelAction::print(void) const case ATOMIC_RMW: type_str = "atomic rmw"; break; + case ATOMIC_RMWR: + type_str = "atomic rmwr"; + break; + case ATOMIC_RMWC: + type_str = "atomic rmwc"; + break; case ATOMIC_INIT: type_str = "init atomic"; break; diff --git a/action.h b/action.h index 36cec25..5ab36b3 100644 --- a/action.h +++ b/action.h @@ -34,7 +34,9 @@ typedef enum action_type { THREAD_JOIN, /**< A thread join action */ ATOMIC_READ, /**< An atomic read action */ ATOMIC_WRITE, /**< An atomic write action */ - ATOMIC_RMW, /**< An atomic read-modify-write action */ + ATOMIC_RMWR, /**< The read of an atomic read-modify-write action */ + ATOMIC_RMW, /**< The write of an atomic read-modify-write action */ + ATOMIC_RMWC, /**< Terminate an atomic read-modify-write action w/o write */ ATOMIC_INIT /**< Initialization of an atomic object (e.g., * atomic_init()) */ } action_type_t; @@ -65,6 +67,8 @@ public: bool is_read() const; bool is_write() const; + bool is_rmwr() const; + bool is_rmwc() const; bool is_rmw() const; bool is_initialization() const; bool is_acquire() const;