Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simple MPI_Win_lock and MPI_Win_unlock implementation.
[simgrid.git] / src / smpi / private.h
index e2376b8..cfb141c 100644 (file)
@@ -14,7 +14,9 @@
 #include "xbt/base.h"
 #include "xbt/synchro.h"
 #include "xbt/xbt_os_time.h"
+#include "src/smpi/smpi_process.hpp"
 #include "src/smpi/smpi_f2c.hpp"
+#include "src/smpi/smpi_keyvals.hpp"
 #include "src/smpi/smpi_group.hpp"
 #include "src/smpi/smpi_topo.hpp"
 #include "src/smpi/smpi_coll.hpp"
 #include "src/smpi/smpi_datatype.hpp"
 #include "src/smpi/smpi_datatype_derived.hpp"
 #include "src/smpi/smpi_request.hpp"
+#include "src/smpi/smpi_status.hpp"
 #include "src/smpi/smpi_win.hpp"
 SG_BEGIN_DECL()
 
 
 using namespace simgrid::smpi;
 
-struct s_smpi_process_data;
-typedef struct s_smpi_process_data *smpi_process_data_t;
 
 #define PERSISTENT     0x1
 #define NON_PERSISTENT 0x2
@@ -68,43 +69,19 @@ enum smpi_process_state{
 
 extern XBT_PRIVATE MPI_Comm MPI_COMM_UNINITIALIZED;
 
-XBT_PRIVATE void smpi_process_destroy();
-XBT_PRIVATE void smpi_process_finalize();
-XBT_PRIVATE int smpi_process_finalized();
-XBT_PRIVATE int smpi_process_initialized();
-XBT_PRIVATE void smpi_process_mark_as_initialized();
-
 typedef SMPI_Cart_topology *MPIR_Cart_Topology;
 
 typedef SMPI_Graph_topology *MPIR_Graph_Topology;
 
 typedef SMPI_Dist_Graph_topology *MPIR_Dist_Graph_Topology;
 
-XBT_PRIVATE smpi_process_data_t smpi_process_data();
-XBT_PRIVATE smpi_process_data_t smpi_process_remote_data(int index);
-// smpi_process_[set/get]_user_data must be public
-/* XBT_PRIVATE void smpi_process_set_user_data(void *); */
-/* XBT_PRIVATE void* smpi_process_get_user_data(void); */
+XBT_PRIVATE Process* smpi_process();
+XBT_PRIVATE Process* smpi_process_remote(int index);
 XBT_PRIVATE int smpi_process_count();
-XBT_PRIVATE MPI_Comm smpi_process_comm_world();
-XBT_PRIVATE MPI_Comm smpi_process_get_comm_intra();
-XBT_PRIVATE void smpi_process_set_comm_intra(MPI_Comm comm);
-XBT_PRIVATE smx_mailbox_t smpi_process_mailbox();
-XBT_PRIVATE smx_mailbox_t smpi_process_remote_mailbox(int index);
-XBT_PRIVATE smx_mailbox_t smpi_process_mailbox_small();
-XBT_PRIVATE smx_mailbox_t smpi_process_remote_mailbox_small(int index);
-XBT_PRIVATE xbt_mutex_t smpi_process_mailboxes_mutex();
-XBT_PRIVATE xbt_mutex_t smpi_process_remote_mailboxes_mutex(int index);
-XBT_PRIVATE xbt_os_timer_t smpi_process_timer();
-XBT_PRIVATE void smpi_process_simulated_start();
-XBT_PRIVATE double smpi_process_simulated_elapsed();
-XBT_PRIVATE void smpi_process_set_sampling(int s);
-XBT_PRIVATE int smpi_process_get_sampling();
-XBT_PRIVATE void smpi_process_set_replaying(bool s);
-XBT_PRIVATE bool smpi_process_get_replaying();
-
-XBT_PRIVATE void smpi_deployment_register_process(const char* instance_id, int rank, int index, MPI_Comm** comm,
-                                                  msg_bar_t* bar);
+
+XBT_PRIVATE void smpi_deployment_register_process(const char* instance_id, int rank, int index);
+XBT_PRIVATE MPI_Comm* smpi_deployment_comm_world(const char* instance_id);
+XBT_PRIVATE msg_bar_t smpi_deployment_finalization_barrier(const char* instance_id);
 XBT_PRIVATE void smpi_deployment_cleanup_instances();
  
 XBT_PRIVATE void smpi_comm_copy_buffer_callback(smx_activity_t comm, void *buff, size_t buff_size);
@@ -117,20 +94,6 @@ XBT_PRIVATE void smpi_global_destroy();
 XBT_PRIVATE double smpi_mpi_wtime();
 XBT_PRIVATE void smpi_mpi_init();
 
-XBT_PRIVATE void smpi_empty_status(MPI_Status * status);
-XBT_PRIVATE int smpi_mpi_get_count(MPI_Status * status, MPI_Datatype datatype);
-
-
-XBT_PRIVATE int smpi_comm_keyval_create(MPI_Comm_copy_attr_function* copy_fn, MPI_Comm_delete_attr_function* delete_fn,
-                                        int* keyval, void* extra_state);
-XBT_PRIVATE int smpi_comm_keyval_free(int* keyval);
-
-XBT_PRIVATE int smpi_type_attr_delete(MPI_Datatype type, int keyval);
-XBT_PRIVATE int smpi_type_attr_get(MPI_Datatype type, int keyval, void* attr_value, int* flag);
-XBT_PRIVATE int smpi_type_attr_put(MPI_Datatype type, int keyval, void* attr_value);
-XBT_PRIVATE int smpi_type_keyval_create(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delete_attr_function* delete_fn,
-                                        int* keyval, void* extra_state);
-XBT_PRIVATE int smpi_type_keyval_free(int* keyval);
 // utilities
 extern XBT_PRIVATE double smpi_cpu_threshold;
 extern XBT_PRIVATE double smpi_host_speed;