X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d01820c429f4044f03d88363672e31d307e047a2..063c63642a29000a011c0d6176d30eb62a4e0dca:/src/gras/Virtu/virtu_sg.h diff --git a/src/gras/Virtu/virtu_sg.h b/src/gras/Virtu/virtu_sg.h index 4df4e09aeb..dab2df5c47 100644 --- a/src/gras/Virtu/virtu_sg.h +++ b/src/gras/Virtu/virtu_sg.h @@ -11,33 +11,45 @@ #define VIRTU_SG_H #include "gras/Virtu/virtu_private.h" -#include "msg/msg.h" /* SimGrid header */ - -#define XBT_MAX_CHANNEL 10 +#include "xbt/dynar.h" +#include "simix/simix.h" /* SimGrid header */ +#include "gras/Transport/transport_private.h" typedef struct { - int port; /* list of ports used by a server socket */ - int tochan; /* the channel it points to */ - int meas; /* (boolean) the channel is for measurements or for messages */ + int port; /* list of ports used by a server socket */ + int meas; /* (boolean) the channel is for measurements or for messages */ + smx_process_t process; + gras_socket_t socket; } gras_sg_portrec_t; /* Data for each host */ typedef struct { - int proc[XBT_MAX_CHANNEL]; /* PID of who's connected to each channel */ - /* If =0, then free */ - - xbt_dynar_t ports; + int refcount; + /* Nothing in particular (anymore) */ } gras_hostdata_t; /* data for each socket (FIXME: find a better location for that)*/ typedef struct { - int from_PID; /* process which sent this message */ - int to_PID; /* process to which this message is destinated */ + smx_rdv_t rdv; + + smx_process_t from_process; /* the one who created the socket */ + smx_host_t to_host; /* Who's on other side */ + smx_comm_t comm; /* Ongoing communication */ - m_host_t to_host; /* Who's on other side */ - m_channel_t to_chan;/* Channel on which the other side is earing */ + s_gras_msg_t ongoing_msg; + size_t ongoing_msg_size; + + gras_socket_t to_socket; /* If != NULL, this socket was created as accept when receiving onto to_socket */ } gras_trp_sg_sock_data_t; +void *gras_libdata_by_name_from_remote(const char *name, smx_process_t p); +/* The same function by id would be really dangerous. + * + * Indeed, it would rely on the fact that all process register libdatas in + * the same order, which is wrong if they init amok modules in different + * order. + */ + #endif /* VIRTU_SG_H */