From: Gabriel Corona Date: Fri, 6 Feb 2015 14:55:48 +0000 (+0100) Subject: [mc] Add MCer handling for MC_MESSAGE_IGNORE_HEAP and MC_MESSAGE_UNIGNORE_HEAP X-Git-Tag: v3_12~732^2~126 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/983883d65cbcf86c675a323208f9dd15ffbbf583 [mc] Add MCer handling for MC_MESSAGE_IGNORE_HEAP and MC_MESSAGE_UNIGNORE_HEAP --- diff --git a/src/mc/mc_server.cpp b/src/mc/mc_server.cpp index d9a024f443..c9dc25f939 100644 --- a/src/mc/mc_server.cpp +++ b/src/mc/mc_server.cpp @@ -153,30 +153,41 @@ void s_mc_server::handle_events() switch(base_message.type) { case MC_MESSAGE_IGNORE_HEAP: - XBT_DEBUG("Received ignored region"); - if (size != sizeof(s_mc_ignore_heap_message_t)) - xbt_die("Broken messsage"); - // TODO, handle the message - break; + { + XBT_DEBUG("Received ignored region"); + s_mc_ignore_heap_message_t message; + if (size != sizeof(message)) + xbt_die("Broken messsage"); + memcpy(&message, buffer, sizeof(message)); + mc_heap_ignore_region_t region = xbt_new(s_mc_heap_ignore_region_t, 1); + *region = message.region; + MC_heap_region_ignore_insert(region); + break; + } + case MC_MESSAGE_UNIGNORE_HEAP: - XBT_DEBUG("Received unignored region"); - if (size != sizeof(s_mc_ignore_memory_message_t)) - xbt_die("Broken messsage"); - // TODO, handle the message - break; + { + XBT_DEBUG("Received unignored region"); + s_mc_ignore_memory_message_t message; + if (size != sizeof(message)) + xbt_die("Broken messsage"); + memcpy(&message, buffer, sizeof(message)); + MC_remove_ignore_heap(message.addr, message.size); + break; + } case MC_MESSAGE_IGNORE_MEMORY: { XBT_DEBUG("Received ignored memory"); - if (size != sizeof(s_mc_ignore_memory_message_t)) - xbt_die("Broken messsage"); s_mc_ignore_memory_message_t message; + if (size != sizeof(message)) + xbt_die("Broken messsage"); memcpy(&message, buffer, sizeof(message)); MC_process_ignore_memory(&mc_model_checker->process, message.addr, message.size); + break; } - break; case MC_MESSAGE_STACK_REGION: {