X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/58823a084d5ee98512c5e61d7a7e98e2730e9fff..cf32c9356ac20e42528e2d1ce2f718cc5bd82730:/src/gras/gras.c diff --git a/src/gras/gras.c b/src/gras/gras.c index 65e2ebb09a..0c696f7f67 100644 --- a/src/gras/gras.c +++ b/src/gras/gras.c @@ -11,13 +11,14 @@ #include "xbt/log.h" #include "xbt/module.h" /* xbt_init/exit */ +#include "Virtu/virtu_interface.h" /* Module mechanism FIXME: deplace&rename */ #include "gras_modinter.h" /* module init/exit */ #include "amok/amok_modinter.h" /* module init/exit */ #include "xbt_modinter.h" /* module init/exit */ #include "gras.h" #include "gras/process.h" /* FIXME: killme and put process_init in modinter */ - + #include "portable.h" /* hexa_*(); signalling stuff */ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras,XBT_LOG_ROOT_CAT,"All GRAS categories (cf. section \ref GRAS_API)"); @@ -70,7 +71,9 @@ void gras_init(int *argc,char **argv) { gras_trp_init(); gras_datadesc_init(); #if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H) +# ifdef SIGUSR1 signal(SIGUSR1,gras_sigusr_handler); +# endif signal(SIGINT,gras_sigint_handler); #endif } @@ -81,20 +84,24 @@ void gras_init(int *argc,char **argv) { void gras_exit(void) { INFO0("Exiting GRAS"); + amok_exit(); + gras_moddata_leave(); if (--gras_running_process == 0) { gras_msg_exit(); gras_trp_exit(); gras_datadesc_exit(); gras_emul_exit(); + gras_moddata_exit(); } gras_process_exit(); xbt_exit(); } -const char *hexa_str(unsigned char *data, int size) { +const char *hexa_str(unsigned char *data, int size, int downside) { static char*buff=NULL; static int buffsize=0; - int i,pos=0; + int i,pos=0; + int begin,increment; if (buffsize<5*(size+1)) { if (buff) @@ -102,17 +109,35 @@ const char *hexa_str(unsigned char *data, int size) { buffsize=5*(size+1); buff=xbt_malloc(buffsize); } - for (i=0;i126) - sprintf(buff+pos,".(%02x)",data[i]); + sprintf(buff+pos,"."); else - sprintf(buff+pos,"%c(%02x)",data[i],data[i]); + sprintf(buff+pos,"%c",data[i]); + while (buff[++pos]); + } + sprintf(buff+pos,"("); + while (buff[++pos]); + for (i=begin; 0<=i && i