model: add documentation
[model-checker.git] / model.h
diff --git a/model.h b/model.h
index fbf1b3f0909ff3fd67fbb10e905d1c0b7ff9003b..e62ff00cac3083279506d0cc0f045028235919fa 100644 (file)
--- a/model.h
+++ b/model.h
@@ -1,5 +1,5 @@
 /** @file model.h
- *  @brief Core model checker. 
+ *  @brief Core model checker.
  */
 
 #ifndef __MODEL_H__
@@ -54,7 +54,7 @@ public:
        modelclock_t get_next_seq_num();
 
        int switch_to_master(ModelAction *act);
-
+       ClockVector * get_cv(thread_id_t tid);
        bool next_execution();
 
        MEMALLOC
@@ -80,6 +80,7 @@ private:
        void add_action_to_lists(ModelAction *act);
        ModelAction * get_last_action(thread_id_t tid);
        ModelAction * get_parent_action(thread_id_t tid);
+       ModelAction * get_last_seq_cst(const void *location);
        void build_reads_from_past(ModelAction *curr);
 
        ModelAction *current_action;
@@ -89,6 +90,11 @@ private:
        ucontext_t *system_context;
        action_list_t *action_trace;
        std::map<int, Thread *> *thread_map;
+
+       /** Per-object list of actions. Maps an object (i.e., memory location)
+        * to a trace of all actions performed on the object. */
+       std::map<const void *, action_list_t> *obj_map;
+
        std::map<void *, std::vector<action_list_t> > *obj_thrd_map;
        std::vector<ModelAction *> *thrd_last_action;
        NodeStack *node_stack;