* @brief Snapshotting implementation header file..
*/
-#ifndef _SNAPSHOTIMP_H
-#define _SNAPSHOTIMP_H
+#ifndef __SNAPSHOTIMP_H__
+#define __SNAPSHOTIMP_H__
+
+#include <stddef.h>
+
#include "snapshot.h"
-#include <iostream>
-#include <inttypes.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <csignal>
+
#define SHARED_MEMORY_DEFAULT (100 * ((size_t)1 << 20)) // 100mb for the shared memory
#define STACK_SIZE_DEFAULT (((size_t)1 << 20) * 20) // 20 mb out of the above 100 mb for my stack
//List the base address of the corresponding page in the backing store so we know where to copy it to
struct BackingPageRecord {
- void * basePtrOfPage;
+ void *basePtrOfPage;
};
//Stuct for each memory region
struct MemoryRegion {
- void * basePtr; //base of memory region
+ void *basePtr; //base of memory region
int sizeInPages; //size of memory region in pages
};
//Primary struct for snapshotting system....
struct SnapShot {
- struct MemoryRegion * regionsToSnapShot; //This pointer references an array of memory regions to snapshot
- struct SnapShotPage * backingStore; //This pointer references an array of snapshotpage's that form the backing store
- void * backingStoreBasePtr; //This pointer references an array of snapshotpage's that form the backing store
- struct BackingPageRecord * backingRecords; //This pointer references an array of backingpagerecord's (same number of elements as backingstore
- struct SnapShotRecord * snapShots; //This pointer references the snapshot array
+ struct MemoryRegion *regionsToSnapShot; //This pointer references an array of memory regions to snapshot
+ struct SnapShotPage *backingStore; //This pointer references an array of snapshotpage's that form the backing store
+ void *backingStoreBasePtr; //This pointer references an array of snapshotpage's that form the backing store
+ struct BackingPageRecord *backingRecords; //This pointer references an array of backingpagerecord's (same number of elements as backingstore
+ struct SnapShotRecord *snapShots; //This pointer references the snapshot array
unsigned int lastSnapShot; //Stores the next snapshot record we should use
unsigned int lastBackingPage; //Stores the next backingpage we should use
};
#else
+
+#include <ucontext.h>
+
struct SnapShot {
void *mSharedMemoryBase;
void *mStackBase;
#endif
//Global reference to snapshot data structure
-extern struct SnapShot * snapshotrecord;
-#endif
+extern struct SnapShot *snapshotrecord;
+
+#endif /* __SNAPSHOTIMP_H__ */