X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=snapshot-interface.h;h=7f4de211badfe57b580d224306b08c3ffce5929b;hb=2d0d4ac38e05905a6633b3f2d5112ccadd45c27f;hp=cbebcd58f84a5902fcb784de16f0d439b137513b;hpb=10de861d3a9908e75b6f94283cc67b3f1b4d93ab;p=model-checker.git diff --git a/snapshot-interface.h b/snapshot-interface.h index cbebcd5..7f4de21 100644 --- a/snapshot-interface.h +++ b/snapshot-interface.h @@ -1,40 +1,20 @@ +/** + * @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 -#include -#include -#include -#include -#include "snapshot.h" -#include "libthreads.h" - -class snapshotStack; -typedef std::basic_string, MyAlloc > MyString; - -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); +typedef unsigned int snapshot_id; - private: - struct stackEntry * stack; -}; +typedef void (*VoidFuncPtr)(); +void snapshot_system_init(unsigned int numbackingpages, + unsigned int numsnapshots, unsigned int nummemoryregions, + unsigned int numheappages, VoidFuncPtr entryPoint); -/* 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_stack_init(); +void snapshot_record(int seq_index); +int snapshot_backtrack_before(int seq_index); -extern snapshotStack * snapshotObject; #endif