Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
adding test example to trace process migration using the mask TRACE_PROCESS
[simgrid.git] / include / gras / emul.h
index 6d9b6d1..28ba517 100644 (file)
@@ -2,7 +2,7 @@
 
 /* gras/emul.h - public interface to emulation support                      */
 /*                (specific parts for SG or RL)                             */
+
 /* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved.            */
 
 /* This program is free software; you can redistribute it and/or modify it
 #ifndef GRAS_COND_H
 #define GRAS_COND_H
 
-#include "xbt/misc.h" /* BEGIN_DECL */
-
-BEGIN_DECL()
+#include "xbt/misc.h"           /* SG_BEGIN_DECL */
 
+SG_BEGIN_DECL()
 /** @addtogroup GRAS_emul
  *  @brief Code execution "emulation" and "virtualization".
  * 
@@ -44,19 +43,18 @@ BEGIN_DECL()
  * 
  *  @{
  */
-  
 /** \brief Returns true only if the program runs on real life */
-int gras_if_RL(void);
+XBT_PUBLIC(int) gras_if_RL(void);
 
 /** \brief Returns true only if the program runs within the simulator */
-int gras_if_SG(void);
+XBT_PUBLIC(int) gras_if_SG(void);
 
 /** @} */
 
-int gras_bench_always_begin(const char *location, int line);
-int gras_bench_always_end(void);
-int gras_bench_once_begin(const char *location, int line);
-int gras_bench_once_end(void);
+XBT_PUBLIC(int) gras_bench_always_begin(const char *location, int line);
+XBT_PUBLIC(int) gras_bench_always_end(void);
+XBT_PUBLIC(int) gras_bench_once_begin(const char *location, int line);
+XBT_PUBLIC(int) gras_bench_once_end(void);
 
 /** @addtogroup GRAS_emul
  *  \section GRAS_emul_timing Emulation
@@ -147,27 +145,27 @@ int gras_bench_once_end(void);
  */
 /** \brief Start benchmarking this code block
     \hideinitializer */
-#define GRAS_BENCH_ALWAYS_BEGIN()  do { if(gras_if_SG()) gras_bench_always_begin(__FILE__, __LINE__); } while(0)
+#define GRAS_BENCH_ALWAYS_BEGIN()           gras_bench_always_begin(__FILE__, __LINE__)
 /** \brief Stop benchmarking this code block
     \hideinitializer */
-#define GRAS_BENCH_ALWAYS_END() do { if(gras_if_SG()) gras_bench_always_end(); } while(0)
+#define GRAS_BENCH_ALWAYS_END()             gras_bench_always_end()
 
 /** \brief Start benchmarking this code block if it has never been benchmarked, run it in any case
  *  \hideinitializer */
-#define GRAS_BENCH_ONCE_RUN_ALWAYS_BEGIN()  do { if(gras_if_SG()) gras_bench_once_begin(__FILE__, __LINE__); } while(0)
+#define GRAS_BENCH_ONCE_RUN_ALWAYS_BEGIN()  gras_bench_once_begin(__FILE__, __LINE__)
 /** \brief Stop benchmarking this part of the code
     \hideinitializer */
-#define GRAS_BENCH_ONCE_RUN_ALWAYS_END()    do { if(gras_if_SG()) gras_bench_once_end(); } while(0)
+#define GRAS_BENCH_ONCE_RUN_ALWAYS_END()    gras_bench_once_end()
 
 /** \brief Start benchmarking this code block if it has never been benchmarked, ignore it if it was
     \hideinitializer */
-#define GRAS_BENCH_ONCE_RUN_ONCE_BEGIN()  if((gras_if_SG()&&(gras_bench_once_begin(__FILE__, __LINE__)))||(gras_if_RL())) { 
+#define GRAS_BENCH_ONCE_RUN_ONCE_BEGIN()    if (gras_bench_once_begin(__FILE__, __LINE__)) {
 /** \brief Stop benchmarking this part of the code
     \hideinitializer */
-#define GRAS_BENCH_ONCE_RUN_ONCE_END()    } GRAS_BENCH_ONCE_RUN_ALWAYS_END();
-/** @} */
+#define GRAS_BENCH_ONCE_RUN_ONCE_END()      } gras_bench_once_end()
 
-END_DECL()
+XBT_PUBLIC(void) gras_cpu_burn(double flops);
+/** @} */
 
+SG_END_DECL()
 #endif /* GRAS_COND_H */
-