- case MC_MESSAGE_SIMCALL_HANDLE: {
- s_mc_simcall_handle_message_t message;
- if (received_size != sizeof(message))
- xbt_die("Unexpected size for SIMCALL_HANDLE");
- memcpy(&message, message_buffer, sizeof(message));
- smx_actor_t process = SIMIX_process_from_PID(message.pid);
- if (not process)
- xbt_die("Invalid pid %lu", (unsigned long)message.pid);
- SIMIX_simcall_handle(&process->simcall, message.value);
- if (channel_.send(MC_MESSAGE_WAITING))
- xbt_die("Could not send MESSAGE_WAITING to model-checker");
- } break;
-
- case MC_MESSAGE_RESTORE: {
- s_mc_restore_message_t message;
- if (received_size != sizeof(message))
- xbt_die("Unexpected size for SIMCALL_HANDLE");
- memcpy(&message, message_buffer, sizeof(message));
-#if HAVE_SMPI
- smpi_really_switch_data_segment(message.index);
-#endif
- } break;
+ case MC_MESSAGE_SIMCALL_HANDLE:
+ xbt_assert(received_size == sizeof(s_mc_message_simcall_handle_t),
+ "Unexpected size for SIMCALL_HANDLE (%zu != %zu)", received_size,
+ sizeof(s_mc_message_simcall_handle_t));
+ handleSimcall((s_mc_message_simcall_handle_t*)message_buffer);
+ break;
+
+ case MC_MESSAGE_RESTORE:
+ xbt_assert(received_size == sizeof(mc_message_t), "Unexpected size for MESSAGE_RESTORE (%zu != %zu)",
+ received_size, sizeof(mc_message_t));
+ handleRestore((s_mc_message_restore_t*)message_buffer);
+ break;