X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2188333e8e6e601894853b93fb726fa4d459837d..5b9cf50be0a43c599b20b1ed28341971a571d70d:/src/gras/Virtu/sg_emul.c diff --git a/src/gras/Virtu/sg_emul.c b/src/gras/Virtu/sg_emul.c index e2255f444a..57dd2379e5 100644 --- a/src/gras/Virtu/sg_emul.c +++ b/src/gras/Virtu/sg_emul.c @@ -7,20 +7,22 @@ /* 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. */ +#include /* sprintf */ #include "gras/emul.h" #include "gras/Virtu/virtu_sg.h" #include "gras_modinter.h" #include "xbt/xbt_portability.h" /* timers */ #include "xbt/dict.h" +#include "xbt/ex.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(emul,gras,"Emulation support"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras_virtu_emul,gras_virtu,"Emulation support"); /*** Timing macros ***/ static xbt_os_timer_t timer; static int benchmarking = 0; static xbt_dict_t benchmark_set = NULL; -static double reference = .00523066250047108838; /* FIXME: we should benchmark host machine to set this */ +static double reference = .00000000523066250047108838; /* FIXME: we should benchmark host machine to set this; unit=s/flop */ static double duration = 0.0; static char* locbuf = NULL; @@ -43,21 +45,18 @@ void gras_emul_exit(void) { static void store_in_dict(xbt_dict_t dict, const char *key, double value) { - double *ir = NULL; + double *ir; - xbt_dict_get(dict, key, (void *) &ir); + ir = xbt_dict_get_or_null(dict, key); if (!ir) { ir = xbt_new0(double,1); - xbt_dict_set(dict, key, ir, free); + xbt_dict_set(dict, key, ir, xbt_free_f); } *ir = value; } -static double get_from_dict(xbt_dict_t dict, const char *key) -{ - double *ir = NULL; - - xbt_dict_get(dict, key, (void *) &ir); +static double get_from_dict(xbt_dict_t dict, const char *key) { + double *ir = xbt_dict_get(dict, key); return *ir; } @@ -86,8 +85,7 @@ int gras_bench_always_end(void) return 0; } -int gras_bench_once_begin(const char *location,int line) -{ +int gras_bench_once_begin(const char *location,int line) { double *ir = NULL; xbt_assert0(!benchmarking,"Already benchmarking"); benchmarking = 1; @@ -98,7 +96,7 @@ int gras_bench_once_begin(const char *location,int line) } sprintf(locbuf,"%s:%d",location, line); - xbt_dict_get(benchmark_set, locbuf, (void *) &ir); + ir = xbt_dict_get_or_null(benchmark_set, locbuf); if(!ir) { DEBUG1("%s",locbuf); duration = 1;