#ifndef SMPI_PRIVATE_HPP
#define SMPI_PRIVATE_HPP
-#include "include/xbt/config.hpp"
#include "simgrid/msg.h" // msg_bar_t
#include "smpi/smpi.h"
#include "src/instr/instr_smpi.hpp"
#include "src/internal_config.h"
#include <unordered_map>
#include <vector>
+#include <sys/time.h>
+#if _POSIX_TIMERS
+#include <time.h>
+#endif
extern "C" {
void mpi_file_read_(int* fh, void* buf, int* count, int* datatype, MPI_Status* status, int* ierr);
void mpi_file_write_(int* fh, void* buf, int* count, int* datatype, MPI_Status* status, int* ierr);
+
+XBT_PUBLIC int smpi_usleep(useconds_t usecs);
+#if _POSIX_TIMERS > 0
+XBT_PUBLIC int smpi_nanosleep(const struct timespec* tp, struct timespec* t);
+XBT_PUBLIC int smpi_clock_gettime(clockid_t clk_id, struct timespec* tp);
+#endif
+XBT_PUBLIC unsigned int smpi_sleep(unsigned int secs);
+XBT_PUBLIC int smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
+
+
+struct option;
+XBT_PUBLIC int smpi_getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index);
+XBT_PUBLIC int smpi_getopt (int argc, char *const *argv, const char *options);
+
// TODO, make this static and expose it more cleanly
struct s_smpi_privatization_region_t {