X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=snapshot-interface.h;h=548ae05335ac89ed6cd9c1cd530b9eeb5b3fda49;hp=0fab53b1ea9fb5ffa0514955bb743f9972acb77e;hb=25d73096cfc14c655f94b01bb235cc5efd1d5696;hpb=b42e7645d3eaab0a2ab5e618cd322215f8164390 diff --git a/snapshot-interface.h b/snapshot-interface.h index 0fab53b1..548ae053 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,31 +1,21 @@ +/** + * @file snapshot-interface.h + * @brief C interface layer on top of snapshotting system + */ + #ifndef __SNAPINTERFACE_H #define __SNAPINTERFACE_H -#include "snapshot.h" -#include "mymemory.h" -#include "snapshot.h" - -void SnapshotGlobalSegments(); - -struct stackEntry { - struct stackEntry *next; - snapshot_id snapshotid; - int index; -}; +#include -class snapshotStack { - public: - MEMALLOC - snapshotStack( ); - ~snapshotStack(); - int backTrackBeforeStep(int seq_index); - void snapshotStep(int seq_index); +typedef unsigned int snapshot_id; +typedef void (*VoidFuncPtr)(); - private: - struct stackEntry * stack; -}; +void snapshot_system_init(unsigned int numbackingpages, + unsigned int numsnapshots, unsigned int nummemoryregions, + unsigned int numheappages); +void startExecution(); +snapshot_id take_snapshot(); +void snapshot_roll_back(snapshot_id theSnapShot); -/* 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