Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
some more files for sonar
[simgrid.git] / src / smpi / private.h
index f6245b5..3232522 100644 (file)
@@ -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;
@@ -176,8 +177,8 @@ XBT_PRIVATE void smpi_process_simulated_start(void);
 XBT_PRIVATE double smpi_process_simulated_elapsed(void);
 XBT_PRIVATE void smpi_process_set_sampling(int s);
 XBT_PRIVATE int smpi_process_get_sampling(void);
-XBT_PRIVATE void smpi_process_set_replaying(int s);
-XBT_PRIVATE int smpi_process_get_replaying(void);
+XBT_PRIVATE void smpi_process_set_replaying(bool s);
+XBT_PRIVATE bool smpi_process_get_replaying(void);
 
 XBT_PRIVATE void smpi_deployment_register_process(const char* instance_id, int rank, int index, MPI_Comm**, xbt_bar_t*);
 XBT_PRIVATE void smpi_deployment_cleanup_instances(void);
@@ -193,7 +194,7 @@ XBT_PRIVATE void smpi_global_init(void);
 XBT_PRIVATE void smpi_global_destroy(void);
 XBT_PRIVATE double smpi_mpi_wtime(void);
 
-XBT_PRIVATE int is_datatype_valid(MPI_Datatype datatype);
+XBT_PRIVATE bool is_datatype_valid(MPI_Datatype datatype);
 
 XBT_PRIVATE size_t smpi_datatype_size(MPI_Datatype datatype);
 XBT_PRIVATE MPI_Aint smpi_datatype_lb(MPI_Datatype datatype);
@@ -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);
@@ -236,7 +237,7 @@ XBT_PRIVATE void smpi_empty_status(MPI_Status * status);
 XBT_PRIVATE MPI_Op smpi_op_new(MPI_User_function * function, int commute);
 XBT_PRIVATE int smpi_op_is_commute(MPI_Op op);
 XBT_PRIVATE void smpi_op_destroy(MPI_Op op);
-XBT_PRIVATE void smpi_op_apply(MPI_Op op, void *invec, void *inoutvec, int *len, MPI_Datatype * datatype);
+XBT_PRIVATE void smpi_op_apply(MPI_Op op, const void *invec, void *inoutvec, int *len, MPI_Datatype * datatype);
 
 XBT_PRIVATE MPI_Group smpi_group_new(int size);
 XBT_PRIVATE MPI_Group smpi_group_copy(MPI_Group origin);
@@ -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);