#include <unistd.h>
#include <sys/time.h>
-#if _POSIX_TIMERS
-#include <time.h>
-#endif
-
#include <simgrid/forward.h>
#include <smpi/forward.hpp>
#include <stddef.h>
XBT_PUBLIC double smpi_get_host_consumed_energy();
-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);
+
XBT_PUBLIC unsigned long long smpi_rastro_resolution();
XBT_PUBLIC unsigned long long smpi_rastro_timestamp();
XBT_PUBLIC void smpi_sample_1(int global, const char* file, int line, int iters, double threshold);
XBT_PUBLIC void smpi_register_static(void* arg, void_f_pvoid_t free_fn);
XBT_PUBLIC void smpi_free_static();
-
-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);
#define SMPI_VARINIT_GLOBAL(name,type) \
type *name = NULL; \
static void __attribute__((constructor)) __preinit_##name(void) { \
#include <unistd.h>
#include <sys/time.h> /* Load it before the define next line to not mess with the system headers */
+#if _POSIX_TIMERS
+#include <time.h>
+#endif
+
+int smpi_usleep(useconds_t usecs);
+#if _POSIX_TIMERS > 0
+int smpi_nanosleep(const struct timespec* tp, struct timespec* t);
+int smpi_clock_gettime(clockid_t clk_id, struct timespec* tp);
+#endif
+unsigned int smpi_sleep(unsigned int secs);
+int smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
+
+struct option;
+int smpi_getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index);
+int smpi_getopt (int argc, char *const *argv, const char *options);
#define sleep(x) smpi_sleep(x)
#define usleep(x) smpi_usleep(x)
#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 {