snapshot: don't declare sTheRecord in both #if and #else
[model-checker.git] / snapshot.cc
index 51d2a3adbb4842902db2fab53ceda4f61dbb48d9..0e47ac00f5cb22508bac587039d6d38246c54490 100644 (file)
@@ -28,7 +28,6 @@
 /* extern declaration definition */
 #if USE_MPROTECT_SNAPSHOT
 struct SnapShot * snapshotrecord = NULL;
-struct Snapshot_t * sTheRecord = NULL;
 #else
 struct Snapshot_t * sTheRecord = NULL;
 #endif
@@ -106,30 +105,24 @@ void * ReturnPageAlignedAddress(void * addr) {
 void * PageAlignAddressUpward(void * addr) {
        return (void *)((((uintptr_t)addr)+PAGESIZE-1)&~(PAGESIZE-1));
 }
-#ifdef __cplusplus
-extern "C" {
-#endif
-       void createSharedLibrary(){
+void createSharedLibrary(){
 #if !USE_MPROTECT_SNAPSHOT
-               //step 1. create shared memory.
-               if( sTheRecord ) return;
-               int fd = shm_open( "/ModelChecker-Snapshotter", O_RDWR | O_CREAT, 0777 ); //universal permissions.
-               if( -1 == fd ) FAILURE("shm_open");
-               if( -1 == ftruncate( fd, ( size_t )SHARED_MEMORY_DEFAULT + ( size_t )STACK_SIZE_DEFAULT ) ) FAILURE( "ftruncate" );
-               char * memMapBase = ( char * ) mmap( 0, ( size_t )SHARED_MEMORY_DEFAULT + ( size_t )STACK_SIZE_DEFAULT, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
-               if( MAP_FAILED == memMapBase ) FAILURE("mmap");
-               sTheRecord = ( struct Snapshot_t * )memMapBase;
-               sTheRecord->mSharedMemoryBase = memMapBase + sizeof( struct Snapshot_t );
-               sTheRecord->mStackBase = ( char * )memMapBase + ( size_t )SHARED_MEMORY_DEFAULT;
-               sTheRecord->mStackSize = STACK_SIZE_DEFAULT;
-               sTheRecord->mIDToRollback = -1;
-               sTheRecord->currSnapShotID = 0;
-               sTheRecord->mbFinalize = false;
+       //step 1. create shared memory.
+       if( sTheRecord ) return;
+       int fd = shm_open( "/ModelChecker-Snapshotter", O_RDWR | O_CREAT, 0777 ); //universal permissions.
+       if( -1 == fd ) FAILURE("shm_open");
+       if( -1 == ftruncate( fd, ( size_t )SHARED_MEMORY_DEFAULT + ( size_t )STACK_SIZE_DEFAULT ) ) FAILURE( "ftruncate" );
+       char * memMapBase = ( char * ) mmap( 0, ( size_t )SHARED_MEMORY_DEFAULT + ( size_t )STACK_SIZE_DEFAULT, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
+       if( MAP_FAILED == memMapBase ) FAILURE("mmap");
+       sTheRecord = ( struct Snapshot_t * )memMapBase;
+       sTheRecord->mSharedMemoryBase = memMapBase + sizeof( struct Snapshot_t );
+       sTheRecord->mStackBase = ( char * )memMapBase + ( size_t )SHARED_MEMORY_DEFAULT;
+       sTheRecord->mStackSize = STACK_SIZE_DEFAULT;
+       sTheRecord->mIDToRollback = -1;
+       sTheRecord->currSnapShotID = 0;
+       sTheRecord->mbFinalize = false;
 #endif
-       }
-#ifdef __cplusplus
 }
-#endif
 
 /** The initSnapShotLibrary function initializes the Snapshot library.
  *  @param entryPoint the function that should run the program.