X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e47b3e4c9b5ea0bd18d8c088320844200e4ff07e..50b36cfb6864e719576327d1289cf9ba31d652da:/src/mc/mc_process.c diff --git a/src/mc/mc_process.c b/src/mc/mc_process.c index e3f4eb8378..ba3968cfbc 100644 --- a/src/mc/mc_process.c +++ b/src/mc/mc_process.c @@ -507,7 +507,17 @@ const void* MC_process_read_simple(mc_process_t process, { e_adress_space_read_flags_t flags = MC_PROCESS_NO_FLAG; int index = MC_PROCESS_INDEX_ANY; - return MC_process_read(process, flags, local, remote, len, index); + MC_process_read(process, flags, local, remote, len, index); + return local; +} + +const void* MC_process_read_dynar_element(mc_process_t process, + void* local, const void* remote_dynar, size_t i) +{ + s_xbt_dynar_t d; + MC_process_read_simple(process, &d, remote_dynar, sizeof(d)); + MC_process_read_simple(process, local, xbt_dynar_get_ptr(&d, i), i); + return local; } void MC_process_write(mc_process_t process, const void* local, void* remote, size_t len) @@ -520,6 +530,16 @@ void MC_process_write(mc_process_t process, const void* local, void* remote, siz } } +unsigned long MC_process_read_dynar_length(mc_process_t process, const void* remote_dynar) +{ + if (!remote_dynar) + return 0; + unsigned long res; + MC_process_read_simple(process, &res, + &((xbt_dynar_t)remote_dynar)->used, sizeof(res)); + return res; +} + static pthread_once_t zero_buffer_flag = PTHREAD_ONCE_INIT; static const void* zero_buffer; static const int zero_buffer_size = 10 * 4096;