X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d48f726e47fc5255a5028eb2b114bf25e02ef79c..869e112fd4bb47fc88e5eae3357dce84bbf7dcbb:/include/smpi/smpi_helpers.h diff --git a/include/smpi/smpi_helpers.h b/include/smpi/smpi_helpers.h index 3a87fdefeb..8c47f828ea 100644 --- a/include/smpi/smpi_helpers.h +++ b/include/smpi/smpi_helpers.h @@ -1,46 +1,40 @@ -#ifndef MPI_HELPERS_H -#define MPI_HELPERS_H +/* Copyright (c) 2018-2019. The SimGrid Team. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#ifndef SMPI_HELPERS_H +#define SMPI_HELPERS_H #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif -#include -#include /* Load it before the define next line to not mess with the system headers */ -#if _POSIX_TIMERS -#include -#endif - -#ifdef __cplusplus -extern "C" { +#include +#ifndef TRACE_CALL_LOCATION /* Defined by smpicc on the command line */ +#define sleep(x) smpi_sleep(x) +#define usleep(x) smpi_usleep(x) +#else +#define sleep(x) ({ smpi_trace_set_call_location(__FILE__,__LINE__); smpi_sleep(x); }) +#define usleep(x) ({ smpi_trace_set_call_location(__FILE__,__LINE__); smpi_usleep(x); }) #endif -int smpi_usleep(useconds_t usecs); +#define gettimeofday(x, y) smpi_gettimeofday((x), 0) #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); +#ifndef TRACE_CALL_LOCATION /* Defined by smpicc on the command line */ +#define nanosleep(x, y) smpi_nanosleep((x), (y)) +#else +#define nanosleep(x) ({ smpi_trace_set_call_location(__FILE__,__LINE__); smpi_nanosleep(x); }) #endif -unsigned int smpi_sleep(unsigned int secs); -int smpi_gettimeofday(struct timeval* tv, struct timezone* tz); - -struct option; -int smpi_getopt_long_only (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index); -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) -#define gettimeofday(x, y) smpi_gettimeofday(x, 0) -#if _POSIX_TIMERS > 0 -#define nanosleep(x, y) smpi_nanosleep(x, y) -#define clock_gettime(x, y) smpi_clock_gettime(x, y) +#define clock_gettime(x, y) smpi_clock_gettime((x), (y)) #endif -#define getopt(x,y,z) smpi_getopt(x,y,z) -#define getopt_long(x,y,z,a,b) smpi_getopt_long(x,y,z,a,b) -#define getopt_long_only(x,y,z,a,b) smpi_getopt_long_only(x,y,z,a,b) - -#ifdef __cplusplus -} // extern "C" +#define getopt(x, y, z) smpi_getopt((x), (y), (z)) +#define getopt_long(x, y, z, a, b) smpi_getopt_long((x), (y), (z), (a), (b)) +#define getopt_long_only(x, y, z, a, b) smpi_getopt_long_only((x), (y), (z), (a), (b)) +#ifndef SMPI_NO_OVERRIDE_MALLOC +#define malloc(x) smpi_shared_malloc_intercept(x, __FILE__, __LINE__) +#define calloc(x,y) smpi_shared_calloc_intercept(x,y, __FILE__, __LINE__) +#define free(x) smpi_shared_free(x) #endif #endif