X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/654684c51db9ad1cf35745bb56bae4db4731d528..475eb62ac657b1f90903930e170369175278ab19:/src/mc/mc_private.h diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index c47f9315ba..259afeedcc 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -142,6 +142,7 @@ void mc_free_page_snapshot_region(size_t* pagenos, size_t page_count); void mc_restore_page_snapshot_region(mc_mem_region_t region, size_t page_count, uint64_t* pagemap, mc_mem_region_t reference_region); mc_mem_region_t mc_region_new_sparse(int type, void *start_addr, size_t size, mc_mem_region_t ref_reg); +void MC_region_destroy(mc_mem_region_t reg); void mc_region_restore_sparse(mc_mem_region_t reg, mc_mem_region_t ref_reg); void mc_softdirty_reset(); @@ -156,7 +157,7 @@ void* mc_snapshot_read(void* addr, mc_snapshot_t snapshot, void* target, size_t int mc_snapshot_region_memcmp( void* addr1, mc_mem_region_t region1, void* addr2, mc_mem_region_t region2, size_t size); -int mc_snapshot_memcp( +int mc_snapshot_memcmp( void* addr1, mc_snapshot_t snapshot1, void* addr2, mc_snapshot_t snapshot2, size_t size); @@ -737,14 +738,17 @@ void* mc_snapshot_read_pointer(void* addr, mc_snapshot_t snapshot) static inline __attribute__((always_inline)) void* mc_snapshot_read_region(void* addr, mc_mem_region_t region, void* target, size_t size) { - uintptr_t offset = (uintptr_t) addr - (uintptr_t) region->start_addr; + if (region==NULL) + return addr; + + uintptr_t offset = (char*) addr - (char*) region->start_addr; xbt_assert(addr >= region->start_addr && (char*) addr+size <= (char*)region->start_addr+region->size, "Trying to read out of the region boundary."); // Linear memory region: if (region->data) { - return (void*) ((uintptr_t) region->data + offset); + return (char*) region->data + offset; } // Fragmented memory region: