X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=snapshot.cc;h=99b9d7958753d49b77513e279ff40bd4196ad178;hb=7d2149ffbbc1a3514838d721a71bb0d4c81054b3;hp=0e47ac00f5cb22508bac587039d6d38246c54490;hpb=288cd6dafe35fdb02c6802b75b968f1aeb3299c0;p=model-checker.git diff --git a/snapshot.cc b/snapshot.cc index 0e47ac0..99b9d79 100644 --- a/snapshot.cc +++ b/snapshot.cc @@ -29,7 +29,7 @@ #if USE_MPROTECT_SNAPSHOT struct SnapShot * snapshotrecord = NULL; #else -struct Snapshot_t * sTheRecord = NULL; +struct Snapshot * sTheRecord = NULL; #endif #if !USE_MPROTECT_SNAPSHOT @@ -38,8 +38,22 @@ static ucontext_t savedUserSnapshotContext; static snapshot_id snapshotid = 0; #endif +/** PageAlignedAdressUpdate return a page aligned address for the + * address being added as a side effect the numBytes are also changed. + */ +static void * PageAlignAddressUpward(void * addr) { + return (void *)((((uintptr_t)addr)+PAGESIZE-1)&~(PAGESIZE-1)); +} + #if USE_MPROTECT_SNAPSHOT +/** ReturnPageAlignedAddress returns a page aligned address for the + * address being added as a side effect the numBytes are also changed. + */ +static void * ReturnPageAlignedAddress(void * addr) { + return (void *)(((uintptr_t)addr)&~(PAGESIZE-1)); +} + /** The initSnapShotRecord method initialized the snapshotting data * structures for the mprotect based snapshot. */ @@ -90,21 +104,6 @@ void HandlePF( int sig, siginfo_t *si, void * unused){ #endif //nothing to handle for non snapshotting case. } -/** ReturnPageAlignedAddress returns a page aligned address for the - * address being added as a side effect the numBytes are also changed. - */ - -void * ReturnPageAlignedAddress(void * addr) { - return (void *)(((uintptr_t)addr)&~(PAGESIZE-1)); -} - -/** PageAlignedAdressUpdate return a page aligned address for the - * address being added as a side effect the numBytes are also changed. - */ - -void * PageAlignAddressUpward(void * addr) { - return (void *)((((uintptr_t)addr)+PAGESIZE-1)&~(PAGESIZE-1)); -} void createSharedLibrary(){ #if !USE_MPROTECT_SNAPSHOT //step 1. create shared memory. @@ -114,8 +113,8 @@ void createSharedLibrary(){ 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 = ( struct Snapshot * )memMapBase; + sTheRecord->mSharedMemoryBase = memMapBase + sizeof( struct Snapshot ); sTheRecord->mStackBase = ( char * )memMapBase + ( size_t )SHARED_MEMORY_DEFAULT; sTheRecord->mStackSize = STACK_SIZE_DEFAULT; sTheRecord->mIDToRollback = -1;