X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1d1294418fcdb34a66a0569033b173274db14fe8..14dfe30555fbd9ca939cd9b8e256e2a25dc54c3d:/src/mc/remote/mc_protocol.h diff --git a/src/mc/remote/mc_protocol.h b/src/mc/remote/mc_protocol.h index e6a798a850..6895fa0e54 100644 --- a/src/mc/remote/mc_protocol.h +++ b/src/mc/remote/mc_protocol.h @@ -8,12 +8,6 @@ // ***** Environment variables for passing context to the model-checked process -/** Environment variable name used to pass the communication socket. - * - * It is set by `simgrid-mc` to enable MC support in the children processes - */ -#define MC_ENV_SOCKET_FD "SIMGRID_MC_SOCKET_FD" - #ifdef __cplusplus #include "src/kernel/actor/SimcallObserver.hpp" @@ -27,18 +21,15 @@ #include // ***** Messages -namespace simgrid { -namespace mc { +namespace simgrid::mc { XBT_DECLARE_ENUM_CLASS(MessageType, NONE, INITIAL_ADDRESSES, CONTINUE, IGNORE_HEAP, UNIGNORE_HEAP, IGNORE_MEMORY, STACK_REGION, REGISTER_SYMBOL, DEADLOCK_CHECK, DEADLOCK_CHECK_REPLY, WAITING, SIMCALL_EXECUTE, - SIMCALL_EXECUTE_ANSWER, SIMCALL_IS_VISIBLE, SIMCALL_IS_VISIBLE_ANSWER, SIMCALL_DOT_LABEL, - SIMCALL_DOT_LABEL_ANSWER, ASSERTION_FAILED, ACTOR_ENABLED, ACTOR_ENABLED_REPLY, FINALIZE); - -} // namespace mc -} // namespace simgrid + SIMCALL_EXECUTE_ANSWER, ASSERTION_FAILED, ACTORS_STATUS, ACTORS_STATUS_REPLY, FINALIZE); +} // namespace simgrid::mc constexpr unsigned MC_MESSAGE_LENGTH = 512; +constexpr unsigned SIMCALL_SERIALIZATION_BUFFER_SIZE = 2048; /** Basic structure for a MC message * @@ -65,8 +56,6 @@ struct s_mc_message_initial_addresses_t { simgrid::mc::MessageType type; xbt_mheap_t mmalloc_default_mdp; unsigned long* maxpid; - xbt_dynar_t actors; - xbt_dynar_t dead_actors; }; struct s_mc_message_ignore_heap_t { @@ -103,8 +92,7 @@ struct s_mc_message_simcall_execute_t { }; struct s_mc_message_simcall_execute_answer_t { simgrid::mc::MessageType type; - simgrid::kernel::actor::SimcallObserver::Simcall simcall; - char buffer[2048]; + std::array buffer; }; struct s_mc_message_restore_t { @@ -112,29 +100,15 @@ struct s_mc_message_restore_t { int index; }; -struct s_mc_message_actor_enabled_t { - simgrid::mc::MessageType type; - aid_t aid; // actor ID -}; - -/* RPC */ -struct s_mc_message_simcall_is_visible_t { // MessageType::SIMCALL_IS_VISIBLE +struct s_mc_message_actors_status_answer_t { simgrid::mc::MessageType type; - aid_t aid; -}; -struct s_mc_message_simcall_is_visible_answer_t { // MessageType::SIMCALL_IS_VISIBLE_ANSWER - simgrid::mc::MessageType type; - bool value; + int count; }; - -struct s_mc_message_simcall_to_string_t { // MessageType::SIMCALL_DOT_LABEL - simgrid::mc::MessageType type; +struct s_mc_message_actors_status_one_t { // an array of `s_mc_message_actors_status_one_t[count]` is sent right after + // after a s_mc_message_actors_status_answer_t aid_t aid; - int time_considered; -}; -struct s_mc_message_simcall_to_string_answer_t { // MessageType::SIMCALL_DOT_LABEL_ANSWER - simgrid::mc::MessageType type; - char value[1024]; + bool enabled; + int max_considered; }; #endif // __cplusplus