add function calls for volatile loads and stores
[c11tester.git] / action.h
index 4eb1f7ed19799943b3cf906e4f0a1a2017f1a95d..735b20015da604df4c13ca0ee304360866ac957b 100644 (file)
--- a/action.h
+++ b/action.h
@@ -25,6 +25,7 @@ using std::memory_order_acquire;
 using std::memory_order_release;
 using std::memory_order_acq_rel;
 using std::memory_order_seq_cst;
+using std::volatile_order;
 
 /**
  * @brief A recognizable don't-care value for use in the ModelAction::value
@@ -70,6 +71,8 @@ typedef enum action_type {
        ATOMIC_NOTIFY_ALL,      // < A notify all action
        ATOMIC_WAIT,    // < A wait action
        ATOMIC_ANNOTATION,      // < An annotation action to pass information to a trace analysis
+       VOLATILE_READ,
+       VOLATILE_WRITE,
        NOOP    // no operation, which returns control to scheduler
 } action_type_t;
 
@@ -202,7 +205,7 @@ private:
        /** @brief The last fence release from the same thread */
        const ModelAction *last_fence_release;
        ModelAction * uninitaction;
-       
+
        /**
         * @brief The clock vector for this operation
         *
@@ -212,7 +215,7 @@ private:
         */
        ClockVector *cv;
        ClockVector *rf_cv;
-       
+
        /** @brief The value written (for write or RMW; undefined for read) */
        uint64_t value;