X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=snapshot-interface.h;h=d0fcbb70fc9e137daae11d04f5443310d101a319;hb=448991da4be411c39be8ce3a56615a8eae2811d3;hp=ecc60ec6453a9ca4991c92e27d248622a201b7c5;hpb=6e5c0bb2359b9fba6160957ffa88974233ba18ac;p=c11tester.git diff --git a/snapshot-interface.h b/snapshot-interface.h index ecc60ec6..d0fcbb70 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,39 +1,19 @@ -/** @file snapshot-interface.h - * @brief C++ layer on top of snapshotting system. +/** + * @file snapshot-interface.h + * @brief C interface layer on top of snapshotting system */ - #ifndef __SNAPINTERFACE_H #define __SNAPINTERFACE_H -#include "mymemory.h" +#include typedef unsigned int snapshot_id; - 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; -}; - -class SnapshotStack { - public: - SnapshotStack(); - ~SnapshotStack(); - int backTrackBeforeStep(int seq_index); - void snapshotStep(int seq_index); - MEMALLOC - private: - struct stackEntry *stack; -}; +void snapshot_system_init(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