X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=snapshot-interface.h;h=4d27ae04cecfcd679b8d81d64061579391a25075;hp=e9746e1ebb35468ff20e0ea68fd9ee364a0e7cd6;hb=32442ab0e9d10b0a8a6a89ae04a3fcd80729da77;hpb=ca4375ba4697b8abe476e03f211523c491c3e2c3 diff --git a/snapshot-interface.h b/snapshot-interface.h index e9746e1e..4d27ae04 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,36 +1,21 @@ +/** + * @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); - -void SnapshotGlobalSegments(); - -struct stackEntry { - struct stackEntry *next; - snapshot_id snapshotid; - int index; -}; - -class SnapshotStack { - public: - MEMALLOC - SnapshotStack( ); - ~SnapshotStack(); - int backTrackBeforeStep(int seq_index); - void snapshotStep(int seq_index); - - 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.*/ +void snapshot_system_init(unsigned int numbackingpages, + unsigned int numsnapshots, unsigned int nummemoryregions, + unsigned int numheappages); +void startExecution(ucontext_t * context, VoidFuncPtr entryPoint); +void snapshot_stack_init(); +void snapshot_record(int seq_index); +int snapshot_backtrack_before(int seq_index); -extern SnapshotStack * snapshotObject; #endif