From 11b4b27470ecbaf996a699432dd67e2ca52239b5 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 31 Jul 2012 19:25:52 -0700 Subject: [PATCH] action: add stub ATOMIC_RMWR and ATOMIC_RMWC --- action.cc | 18 +++++++++++++++++- action.h | 6 +++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/action.cc b/action.cc index 87933374..74ba5aab 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 36cec25d..5ab36b36 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; -- 2.34.1