X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cf9a823f1cfd8b0098a039bff8ff6567e9beac91..02f267e2895f3985fe73344a8b96ac05363b8b62:/src/mc/mc_client.c diff --git a/src/mc/mc_client.c b/src/mc/mc_client.c index 55cc2ca388..c903246cce 100644 --- a/src/mc/mc_client.c +++ b/src/mc/mc_client.c @@ -13,10 +13,16 @@ #include #include +#include #include "mc_protocol.h" #include "mc_client.h" +// We won't need those once the separation MCer/MCed is complete: +#include "mc_mmalloc.h" +#include "mc_ignore.h" +#include "mc_model_checker.h" + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_client, mc, "MC client logic"); mc_client_t mc_client; @@ -56,6 +62,12 @@ void MC_client_hello(void) XBT_DEBUG("Greeted the MC server"); } +void MC_client_send_message(void* message, size_t size) +{ + if (MC_protocol_send(mc_client->fd, message, size)) + xbt_die("Could not send message %i", (int) ((mc_message_t)message)->type); +} + void MC_client_handle_messages(void) { while (1) { @@ -80,3 +92,21 @@ void MC_client_handle_messages(void) } } } + +void MC_ignore(void* addr, size_t size) +{ + if (mc_mode == MC_MODE_CLIENT) { + s_mc_ignore_memory_message_t message; + message.type = MC_MESSAGE_IGNORE_MEMORY; + message.addr = addr; + message.size = size; + MC_client_send_message(&message, sizeof(message)); + } + + // TODO, remove this once the migration has been completed + int raw_mem_set = (mmalloc_get_current_heap() == mc_heap); + MC_SET_MC_HEAP; + MC_process_ignore_memory(&mc_model_checker->process, addr, size); + if (!raw_mem_set) + MC_SET_STD_HEAP; +}