X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker.git;a=blobdiff_plain;f=snapshot-interface.h;h=9912a1b78f2beba07c08b624b483c71492fd9e3a;hp=5f5f4ea01246b8fa506e06dcfb5cba5f3a38ef81;hb=8574719911b1f66fbcbaedef47eebb84b860d526;hpb=810306cb85accaaace9a50f174264f105991230b diff --git a/snapshot-interface.h b/snapshot-interface.h index 5f5f4ea..9912a1b 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,19 +1,18 @@ +/** @file snapshot-interface.h + * @brief C++ layer on top of snapshotting system. + */ + + #ifndef __SNAPINTERFACE_H #define __SNAPINTERFACE_H -#include "snapshot.h" #include "mymemory.h" -#include -#include -#include -#include -#include -#include "snapshot.h" -#include "libthreads.h" -class snapshotStack; -typedef std::basic_string, MyAlloc > MyString; +typedef unsigned int snapshot_id; -void SnapshotGlobalSegments(); +typedef void (*VoidFuncPtr)(); +void initSnapShotLibrary(unsigned int numbackingpages, + unsigned int numsnapshots, unsigned int nummemoryregions, + unsigned int numheappages, VoidFuncPtr entryPoint); struct stackEntry { struct stackEntry *next; @@ -21,15 +20,20 @@ struct stackEntry { int index; }; -class snapshotStack { +class SnapshotStack { public: MEMALLOC - snapshotStack( ); - ~snapshotStack(); + SnapshotStack( ); + ~SnapshotStack(); int backTrackBeforeStep(int seq_index); void snapshotStep(int seq_index); - private: + private: struct stackEntry * stack; }; + +/* Not sure what it even means to have more than one snapshot object, + so let's just make a global reference to it.*/ + +extern SnapshotStack * snapshotObject; #endif