X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/475eb62ac657b1f90903930e170369175278ab19..c57842fe897f53b46f0be3da87f7c996674be7d6:/src/mc/mc_private.h diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index 259afeedcc..899168c3d9 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -139,7 +139,7 @@ int mc_important_snapshot(mc_snapshot_t snapshot); size_t* mc_take_page_snapshot_region(void* data, size_t page_count, uint64_t* pagemap, size_t* reference_pages); 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); +void mc_restore_page_snapshot_region(void* start_addr, size_t page_count, size_t* pagenos, uint64_t* pagemap, size_t* reference_pagenos); 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); @@ -380,7 +380,7 @@ typedef struct s_mc_visited_state{ }s_mc_visited_state_t, *mc_visited_state_t; extern xbt_dynar_t visited_states; -int is_visited_state(void); +mc_visited_state_t is_visited_state(void); void visited_state_free(mc_visited_state_t state); void visited_state_free_voidp(void *s); @@ -629,6 +629,7 @@ typedef struct s_mc_comm_pattern{ void *data; }s_mc_comm_pattern_t, *mc_comm_pattern_t; +extern xbt_dynar_t initial_communications_pattern; extern xbt_dynar_t communications_pattern; extern xbt_dynar_t incomplete_communications_pattern; @@ -743,7 +744,7 @@ void* mc_snapshot_read_region(void* addr, mc_mem_region_t region, void* target, uintptr_t offset = (char*) addr - (char*) region->start_addr; - xbt_assert(addr >= region->start_addr && (char*) addr+size <= (char*)region->start_addr+region->size, + xbt_assert(mc_region_contain(region, addr), "Trying to read out of the region boundary."); // Linear memory region: @@ -753,6 +754,7 @@ void* mc_snapshot_read_region(void* addr, mc_mem_region_t region, void* target, // Fragmented memory region: else if (region->page_numbers) { + // Last byte of the region: void* end = (char*) addr + size - 1; if( mc_same_page(addr, end) ) { // The memory is contained in a single page: