action: add stub ATOMIC_RMWR and ATOMIC_RMWC
authorBrian Norris <banorris@uci.edu>
Wed, 1 Aug 2012 02:25:52 +0000 (19:25 -0700)
committerBrian Norris <banorris@uci.edu>
Thu, 2 Aug 2012 17:12:45 +0000 (10:12 -0700)
action.cc
action.h

index 8793337448dda45a86ade51d63e6eba2b8960c0c..74ba5aabcf912355197f04fb94db562b41286a21 100644 (file)
--- 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;
index 36cec25dcf05cd9d24e971b22c6626e64585bde4..5ab36b360ffd0bd3889f456a53e61f6c9cfe7712 100644 (file)
--- 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;