dissolve snapshotimp.h
authorBrian Norris <banorris@uci.edu>
Thu, 3 Jan 2013 01:48:28 +0000 (17:48 -0800)
committerBrian Norris <banorris@uci.edu>
Thu, 3 Jan 2013 03:12:03 +0000 (19:12 -0800)
snapshotimp.h was being used as a way to expose some of the snapshotting
implementation to mymemory.cc, just for fork-based snapshotting. I've
removed that exposure, so now I can pull the entire header into
snapshot.cc.

mymemory.cc
snapshot.cc
snapshotimp.h [deleted file]

index 5c11d473a34d5420c6b1a01e109f9f619355058f..44985fa3aebc0d3fc32f97c0606b3c7ef11154a8 100644 (file)
@@ -7,7 +7,6 @@
 
 #include "mymemory.h"
 #include "snapshot.h"
-#include "snapshotimp.h"
 #include "common.h"
 
 #define REQUESTS_BEFORE_ALLOC 1024
index e6b38b58ff2fbd148f30695aff830a27a5810112..114473d50d27e21b476f9ab48e57232f888e3eda 100644 (file)
@@ -10,7 +10,6 @@
 
 #include "hashtable.h"
 #include "snapshot.h"
-#include "snapshotimp.h"
 #include "mymemory.h"
 #include "common.h"
 
 #define SSDEBUG(...)   do { } while (0)
 #endif
 
-/* extern declaration definition */
-struct SnapShot *snapshotrecord = NULL;
+#if USE_MPROTECT_SNAPSHOT
+/* Each snapshotrecord lists the firstbackingpage that must be written to
+ * revert to that snapshot */
+struct SnapShotRecord {
+       unsigned int firstBackingPage;
+};
+
+/** @brief Backing store page */
+typedef unsigned char snapshot_page_t[PAGESIZE];
+
+/* List the base address of the corresponding page in the backing store so we
+ * know where to copy it to */
+struct BackingPageRecord {
+       void *basePtrOfPage;
+};
+
+/* Struct for each memory region */
+struct MemoryRegion {
+       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
+       snapshot_page_t *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
+       unsigned int lastRegion; //Stores the next memory region to be used
+
+       unsigned int maxRegions; //Stores the max number of memory regions we support
+       unsigned int maxBackingPages; //Stores the total number of backing pages
+       unsigned int maxSnapShots; //Stores the total number of snapshots we allow
+};
+
+#else
+
+#include <ucontext.h>
+
+#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
+
+struct SnapShot {
+       void *mSharedMemoryBase;
+       void *mStackBase;
+       size_t mStackSize;
+       volatile snapshot_id mIDToRollback;
+       ucontext_t mContextToRollback;
+       snapshot_id currSnapShotID;
+};
+#endif
+
+static struct SnapShot *snapshotrecord = NULL;
 
 /** PageAlignedAdressUpdate return a page aligned address for the
  * address being added as a side effect the numBytes are also changed.
diff --git a/snapshotimp.h b/snapshotimp.h
deleted file mode 100644 (file)
index 6efdbd9..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/** @file snapshotimp.h
- *     @brief Snapshotting implementation header file..
- */
-
-#ifndef __SNAPSHOTIMP_H__
-#define __SNAPSHOTIMP_H__
-
-#include <stddef.h>
-
-#include "snapshot.h"
-
-#if USE_MPROTECT_SNAPSHOT
-//Each snapshotrecord lists the firstbackingpage that must be written to revert to that snapshot
-struct SnapShotRecord {
-       unsigned int firstBackingPage;
-};
-
-/** @brief Backing store page */
-typedef unsigned char snapshot_page_t[PAGESIZE];
-
-//List the base address of the corresponding page in the backing store so we know where to copy it to
-struct BackingPageRecord {
-       void *basePtrOfPage;
-};
-
-//Stuct for each memory region
-struct MemoryRegion {
-       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
-       snapshot_page_t *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
-       unsigned int lastRegion; //Stores the next memory region to be used
-
-       unsigned int maxRegions; //Stores the max number of memory regions we support
-       unsigned int maxBackingPages; //Stores the total number of backing pages
-       unsigned int maxSnapShots; //Stores the total number of snapshots we allow
-};
-
-#else
-
-#include <ucontext.h>
-
-#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
-
-struct SnapShot {
-       void *mSharedMemoryBase;
-       void *mStackBase;
-       size_t mStackSize;
-       volatile snapshot_id mIDToRollback;
-       ucontext_t mContextToRollback;
-       snapshot_id currSnapShotID;
-};
-#endif
-
-//Global reference to snapshot data structure
-extern struct SnapShot *snapshotrecord;
-
-#endif /* __SNAPSHOTIMP_H__ */