#include <xbt/function_types.h>
#define MPI_CALL(type,name,args) \
- type name args; \
+ type name args __attribute__((weak)); \
type P##name args
SG_BEGIN_DECL()
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);
+ int iters, double threshold);
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_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_LOCAL(iters,thres) for(smpi_sample_1(0, __FILE__, __LINE__, iters, thres); \
+ 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_GLOBAL(iters,thres) for(smpi_sample_1(1, __FILE__, __LINE__, iters, thres); \
+ smpi_sample_2(1, __FILE__, __LINE__); \
+ smpi_sample_3(1, __FILE__, __LINE__))
#define SMPI_SAMPLE_DELAY(flops) for(smpi_sample_flops(flops); 0; )
/* Fortran specific stuff */
XBT_PUBLIC(int) MAIN__(void);
+XBT_PUBLIC(int) smpi_process_index(void);
+
SG_END_DECL()
#endif