X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/740d50812a81c59013f22888ab313da5a8113227..c02558d70f9c62f9f5d04f1830be4cf16ca84bc0:/src/mc/mc_protocol.h diff --git a/src/mc/mc_protocol.h b/src/mc/mc_protocol.h index bd6fd13538..3e1da82718 100644 --- a/src/mc/mc_protocol.h +++ b/src/mc/mc_protocol.h @@ -20,21 +20,11 @@ SG_BEGIN_DECL() /** Environment variable name set by `simgrid-mc` to enable MC support in the * children MC processes */ -#define MC_ENV_VARIABLE "SIMGRIC_MC" +#define MC_ENV_VARIABLE "SIMGRID_MC" /** Environment variable name used to pass the communication socket */ #define MC_ENV_SOCKET_FD "SIMGRID_MC_SOCKET_FD" -// ***** MC mode - -typedef enum { - MC_MODE_NONE = 0, - MC_MODE_CLIENT, - MC_MODE_SERVER -} e_mc_mode_t; - -extern e_mc_mode_t mc_mode; - // ***** Messages typedef enum { @@ -68,58 +58,69 @@ typedef enum { * This is the basic structure shared by all messages: all message start with a message * type. */ -typedef struct s_mc_message { +struct s_mc_message { e_mc_message_type type; -} s_mc_message_t, *mc_message_t; +}; +typedef struct s_mc_message s_mc_message_t; +typedef struct s_mc_message* mc_message_t; -typedef struct s_mc_int_message { +struct s_mc_int_message { e_mc_message_type type; uint64_t value; -} s_mc_int_message_t, *mc_int_message_t; +}; +typedef struct s_mc_int_message s_mc_int_message_t; +typedef struct s_mc_int_message* mc_int_message_t; -typedef struct s_mc_ignore_heap_message { +struct s_mc_ignore_heap_message { e_mc_message_type type; int block; int fragment; void *address; size_t size; -} s_mc_ignore_heap_message_t, *mc_ignore_heap_message_t; +}; +typedef struct s_mc_ignore_heap_message s_mc_ignore_heap_message_t; +typedef struct s_mc_ignore_heap_message* mc_ignore_heap_message_t; -typedef struct s_mc_ignore_memory_message { +struct s_mc_ignore_memory_message { e_mc_message_type type; uint64_t addr; size_t size; -} s_mc_ignore_memory_message_t, *mc_ignore_memory_message_t; +}; +typedef struct s_mc_ignore_memory_message s_mc_ignore_memory_message_t; +typedef struct s_mc_ignore_memory_message* mc_ignore_memory_message_t; -typedef struct s_mc_stack_region_message { +struct s_mc_stack_region_message { e_mc_message_type type; s_stack_region_t stack_region; -} s_mc_stack_region_message_t, *mc_stack_region_message_t; +}; +typedef struct s_mc_stack_region_message s_mc_stack_region_message_t; +typedef struct s_mc_stack_region_message* mc_stack_region_message_t; -typedef struct s_mc_simcall_handle_message { +struct s_mc_simcall_handle_message { e_mc_message_type type; unsigned long pid; int value; -} s_mc_simcall_handle_message_t, *mc_simcall_handle_message; +}; +typedef struct s_mc_simcall_handle_message s_mc_simcall_handle_message_t; +typedef struct s_mc_simcall_handle_message* mc_simcall_handle_message; -typedef struct s_mc_register_symbol_message { +struct s_mc_register_symbol_message { e_mc_message_type type; char name[128]; int (*callback)(void*); void* data; -} s_mc_register_symbol_message_t, * mc_register_symbol_message_t; +}; +typedef struct s_mc_register_symbol_message s_mc_register_symbol_message_t; +typedef struct s_mc_register_symbol_message* mc_register_symbol_message_t; -typedef struct s_mc_restore_message { +struct s_mc_restore_message { e_mc_message_type type; int index; -} s_mc_restore_message_t, *mc_restore_message_t; - -XBT_PRIVATE int MC_protocol_send(int socket, const void* message, size_t size); -XBT_PRIVATE int MC_protocol_send_simple_message(int socket, e_mc_message_type type); -XBT_PRIVATE ssize_t MC_receive_message(int socket, void* message, size_t size, int options); +}; +typedef struct s_mc_restore_message s_mc_restore_message_t; +typedef struct s_mc_restore_message* mc_restore_message_t; XBT_PRIVATE const char* MC_message_type_name(e_mc_message_type type); -XBT_PRIVATE const char* MC_mode_name(e_mc_mode_t mode); SG_END_DECL()