Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
modified [PATCH] Added functions to get SMPI's data end code of process
authorLuka Stanisic <luka.stanisic@imag.fr>
Thu, 3 Dec 2015 11:15:35 +0000 (12:15 +0100)
committerLuka Stanisic <luka.stanisic@imag.fr>
Thu, 3 Dec 2015 13:25:12 +0000 (14:25 +0100)
include/simgrid/simix.h
include/smpi/smpi.h
src/simix/smx_process.c
src/smpi/private.h

index 70fc02c..247561b 100644 (file)
@@ -278,6 +278,7 @@ XBT_PUBLIC(void) SIMIX_process_set_context(smx_process_t p,smx_context_t c);
 XBT_PUBLIC(int) SIMIX_process_has_pending_comms(smx_process_t process);
 XBT_PUBLIC(void) SIMIX_process_on_exit_runall(smx_process_t process);
 XBT_PUBLIC(void) SIMIX_process_on_exit(smx_process_t process, int_f_pvoid_pvoid_t fun, void *data);
+XBT_PUBLIC(xbt_main_func_t) SIMIX_process_get_code(void);
 
 /****************************** Communication *********************************/
 XBT_PUBLIC(void) SIMIX_comm_set_copy_data_callback(void (*callback) (smx_synchro_t, void*, size_t));
index a9117e2..acaf8bf 100644 (file)
@@ -830,6 +830,8 @@ MPI_CALL(XBT_PUBLIC(int),  MPI_Win_wait,(MPI_Win win));
 // smpi functions
 XBT_PUBLIC(int) smpi_global_size(void);
 XBT_PUBLIC(MPI_Comm) smpi_process_comm_self(void);
+XBT_PUBLIC(void*) smpi_process_get_user_data(void);
+XBT_PUBLIC(void) smpi_process_set_user_data(void *);
 /*
 XBT_PUBLIC(void) smpi_exit(int);
 */
index dd75293..61e32f3 100644 (file)
@@ -663,6 +663,10 @@ sg_host_t SIMIX_process_get_host(smx_process_t process)
   return process->host;
 }
 
+xbt_main_func_t SIMIX_process_get_code(void){
+  return SIMIX_process_self()->code;
+}
+
 /* needs to be public and without simcall because it is called
    by exceptions and logging events */
 const char* SIMIX_process_self_get_name(void) {
index ce49def..ce79532 100644 (file)
@@ -169,8 +169,9 @@ XBT_PRIVATE int smpi_mpi_dims_create(int nnodes, int ndims, int dims[]);
 
 XBT_PRIVATE smpi_process_data_t smpi_process_data(void);
 XBT_PRIVATE smpi_process_data_t smpi_process_remote_data(int index);
-XBT_PRIVATE void smpi_process_set_user_data(void *);
-XBT_PRIVATE void* smpi_process_get_user_data(void);
+// 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 int smpi_process_count(void);
 XBT_PRIVATE MPI_Comm smpi_process_comm_world(void);
 XBT_PRIVATE MPI_Comm smpi_process_get_comm_intra(void);