]> AND Public Git Repository - simgrid.git/blobdiff - src/mc/remote/mc_protocol.h
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move the logic of Api::get_maxpid() to RemoteProcess where it belongs
[simgrid.git] / src / mc / remote / mc_protocol.h
index 6afc2a0a35ed31b09bddbf755e62095f36bc6138..824b8bbacc01677266659605e3e1c4084cbad1d6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2021. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 #include "simgrid/forward.h" // aid_t
 #include <array>
 #include <cstdint>
+#include <xbt/utility.hpp>
 
 // ***** Messages
 namespace simgrid {
 namespace mc {
 
-enum class MessageType {
-  NONE,
-  CONTINUE,
-  IGNORE_HEAP,
-  UNIGNORE_HEAP,
-  IGNORE_MEMORY,
-  STACK_REGION,
-  REGISTER_SYMBOL,
-  DEADLOCK_CHECK,
-  DEADLOCK_CHECK_REPLY,
-  WAITING,
-  SIMCALL_HANDLE,
-  ASSERTION_FAILED,
-  ACTOR_ENABLED,
-  ACTOR_ENABLED_REPLY
-};
+XBT_DECLARE_ENUM_CLASS(MessageType, NONE, CONTINUE, IGNORE_HEAP, UNIGNORE_HEAP, IGNORE_MEMORY, STACK_REGION,
+                       REGISTER_SYMBOL, DEADLOCK_CHECK, DEADLOCK_CHECK_REPLY, WAITING, SIMCALL_HANDLE,
+                       SIMCALL_IS_VISIBLE, SIMCALL_IS_VISIBLE_ANSWER, SIMCALL_TO_STRING, SIMCALL_TO_STRING_ANSWER,
+                       SIMCALL_DOT_LABEL, ASSERTION_FAILED, ACTOR_ENABLED, ACTOR_ENABLED_REPLY);
 
 } // namespace mc
 } // namespace simgrid
@@ -97,8 +86,8 @@ struct s_mc_message_register_symbol_t {
 /* Server -> client */
 struct s_mc_message_simcall_handle_t {
   simgrid::mc::MessageType type;
-  unsigned long pid;
-  int value;
+  unsigned long pid_;
+  int times_considered_;
 };
 
 struct s_mc_message_restore_t {
@@ -111,7 +100,25 @@ struct s_mc_message_actor_enabled_t {
   aid_t aid; // actor ID
 };
 
-XBT_PRIVATE const char* MC_message_type_name(simgrid::mc::MessageType type);
+/* RPC */
+struct s_mc_message_simcall_is_visible_t { // MessageType::SIMCALL_IS_VISIBLE
+  simgrid::mc::MessageType type;
+  int aid;
+};
+struct s_mc_message_simcall_is_visible_answer_t { // MessageType::SIMCALL_IS_VISIBLE_ANSWER
+  simgrid::mc::MessageType type;
+  bool value;
+};
+
+struct s_mc_message_simcall_to_string_t { // MessageType::SIMCALL_TO_STRING or MessageType::SIMCALL_DOT_LABEL
+  simgrid::mc::MessageType type;
+  int aid;
+  int time_considered;
+};
+struct s_mc_message_simcall_to_string_answer_t { // MessageType::SIMCALL_TO_STRING_ANSWER
+  simgrid::mc::MessageType type;
+  char value[1024];
+};
 
 #endif // __cplusplus
 #endif