XBT_PUBLIC(int) MPI_Address(void *location, MPI_Aint *address);
XBT_PUBLIC(int) MPI_Type_free(MPI_Datatype* datatype);
-XBT_PUBLIC(int) MPI_Type_size(MPI_Datatype datatype, size_t* size);
+XBT_PUBLIC(int) MPI_Type_size(MPI_Datatype datatype, int* size);
XBT_PUBLIC(int) MPI_Type_get_extent(MPI_Datatype datatype, MPI_Aint* lb, MPI_Aint* extent);
XBT_PUBLIC(int) MPI_Type_extent(MPI_Datatype datatype, MPI_Aint* extent);
XBT_PUBLIC(int) MPI_Type_lb(MPI_Datatype datatype, MPI_Aint* disp);
XBT_IMPORT_NO_EXPORT(int) smpi_simulated_main(int argc, char** argv);
XBT_PUBLIC(MPI_Comm) smpi_process_comm_self(void);
/*
-XBT_PUBLIC(unsigned int) smpi_sleep(unsigned int);
XBT_PUBLIC(void) smpi_exit(int);
-XBT_PUBLIC(int) smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
*/
-/*
-TODO
-XBT_PUBLIC(void) smpi_do_once_1(const char* file, int line);
-XBT_PUBLIC(int) smpi_do_once_2(void);
-XBT_PUBLIC(void) smpi_do_once_3(void);
+XBT_PUBLIC(unsigned int) smpi_sleep(unsigned int secs);
+XBT_PUBLIC(int) smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
+XBT_PUBLIC(void) smpi_sample_1(int global, const char* file, int line, int max);
+XBT_PUBLIC(int) smpi_sample_2(int global, const char* file, int line);
+XBT_PUBLIC(void) smpi_sample_3(int global, const char* file, int line);
+XBT_PUBLIC(void) smpi_sample_flops(double flops);
-#define SMPI_DO_ONCE for (smpi_do_once_1(__FILE__, __LINE__); smpi_do_once_2(); smpi_do_once_3())
-*/
+#define SMPI_SAMPLE_LOCAL(num) for(smpi_sample_1(0, __FILE__, __LINE__, num); \
+ smpi_sample_2(0, __FILE__, __LINE__); \
+ smpi_sample_3(0, __FILE__, __LINE__))
+
+#define SMPI_SAMPLE_GLOBAL(num) for(smpi_sample_1(1, __FILE__, __LINE__, num); \
+ smpi_sample_2(1, __FILE__, __LINE__); \
+ smpi_sample_3(1, __FILE__, __LINE__))
+
+#define SMPI_SAMPLE_DELAY(flops) for(smpi_sample_flops(flops); 0; )
+
+XBT_PUBLIC(void*) smpi_shared_malloc(size_t size, const char* file, int line);
+#define SMPI_SHARED_MALLOC(size) smpi_shared_malloc(size, __FILE__, __LINE__)
+
+XBT_PUBLIC(void) smpi_shared_free(void* data);
+#define SMPI_SHARED_FREE(data) smpi_shared_free(data)
SG_END_DECL()
#endif