X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=snapshot-interface.h;h=ecc60ec6453a9ca4991c92e27d248622a201b7c5;hb=6e5c0bb2359b9fba6160957ffa88974233ba18ac;hp=cbebcd58f84a5902fcb784de16f0d439b137513b;hpb=10de861d3a9908e75b6f94283cc67b3f1b4d93ab;p=c11tester.git diff --git a/snapshot-interface.h b/snapshot-interface.h index cbebcd58..ecc60ec6 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,40 +1,39 @@ +/** @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; - snapshot_id snapshotid; - int index; + struct stackEntry *next; + snapshot_id snapshotid; + int index; }; -class snapshotStack { +class SnapshotStack { public: - MEMALLOC - snapshotStack( ); - ~snapshotStack(); - int backTrackBeforeStep(int seq_index); - void snapshotStep(int seq_index); - - private: - struct stackEntry * stack; + SnapshotStack(); + ~SnapshotStack(); + int backTrackBeforeStep(int seq_index); + void snapshotStep(int seq_index); + + MEMALLOC + 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; +extern SnapshotStack *snapshotObject; #endif