X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ec122a780b6dd27347cca4d240de563e607f349..e046e5c5b832d7e1123cee82d16feb2b63b3dd27:/src/smpi/private.h diff --git a/src/smpi/private.h b/src/smpi/private.h index f6245b54a3..2c1965d99a 100644 --- a/src/smpi/private.h +++ b/src/smpi/private.h @@ -47,13 +47,14 @@ typedef struct s_smpi_subtype{ void (*serialize)(const void * input, void *output, int count, void* subtype); void (*unserialize)(const void * input, void *output, int count, void* subtype, MPI_Op op); void (*subtype_free)(MPI_Datatype* type); + void (*subtype_use)(MPI_Datatype* type); } s_smpi_subtype_t; typedef struct s_smpi_mpi_datatype{ char* name; size_t size; /* this let us know if a serialization is required*/ - size_t has_subtype; + size_t sizeof_substruct; MPI_Aint lb; MPI_Aint ub; int flags; @@ -221,7 +222,7 @@ XBT_PRIVATE int smpi_datatype_hindexed(int count, int* blocklens, MPI_Aint* indi XBT_PRIVATE int smpi_datatype_struct(int count, int* blocklens, MPI_Aint* indices, MPI_Datatype* old_types, MPI_Datatype* new_type); -XBT_PRIVATE void smpi_datatype_create(MPI_Datatype* new_type, int size,int lb, int ub, int has_subtype, +XBT_PRIVATE void smpi_datatype_create(MPI_Datatype* new_type, int size,int lb, int ub, int sizeof_substruct, void *struct_type, int flags); XBT_PRIVATE void smpi_datatype_free(MPI_Datatype* type); @@ -261,6 +262,8 @@ XBT_PRIVATE MPI_Comm smpi_comm_split(MPI_Comm comm, int color, int key); XBT_PRIVATE int smpi_comm_dup(MPI_Comm comm, MPI_Comm* newcomm); XBT_PRIVATE void smpi_comm_use(MPI_Comm comm); XBT_PRIVATE void smpi_comm_unuse(MPI_Comm comm); +XBT_PRIVATE void smpi_comm_cleanup_attributes(MPI_Comm comm); +XBT_PRIVATE void smpi_comm_cleanup_smp(MPI_Comm comm); XBT_PRIVATE void smpi_comm_set_leaders_comm(MPI_Comm comm, MPI_Comm leaders); XBT_PRIVATE void smpi_comm_set_intra_comm(MPI_Comm comm, MPI_Comm leaders); XBT_PRIVATE int* smpi_comm_get_non_uniform_map(MPI_Comm comm); @@ -696,6 +699,7 @@ XBT_PRIVATE void TRACE_smpi_send(int rank, int src, int dst, int size); XBT_PRIVATE void TRACE_smpi_recv(int rank, int src, int dst); XBT_PRIVATE void TRACE_smpi_init(int rank); XBT_PRIVATE void TRACE_smpi_finalize(int rank); +XBT_PRIVATE char *smpi_container(int rank, char *container, int n); XBT_PRIVATE const char* encode_datatype(MPI_Datatype datatype, int* known);