X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aa29c3a2434a29e6901f1e98aa0c171ee15d73cc..64561039d3dec9e50b4eaf1b78b3edef71898383:/src/xbt/xbt_main.c diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index 6f5688ff60..65add45af5 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -7,7 +7,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/misc.h" -#include "simgrid_config.h" /*HAVE_MMAP*/ +#include "simgrid_config.h" /*HAVE_MMAP _XBT_WIN32 */ #include "time.h" /* to seed the random generator */ #include "xbt/sysdep.h" @@ -46,13 +46,21 @@ XBT_LOG_EXTERNAL_CATEGORY(xbt_matrix); XBT_LOG_EXTERNAL_CATEGORY(xbt_queue); XBT_LOG_EXTERNAL_CATEGORY(xbt_set); XBT_LOG_EXTERNAL_CATEGORY(xbt_sync_os); +XBT_LOG_EXTERNAL_CATEGORY(xbt_parmap); +XBT_LOG_EXTERNAL_CATEGORY(xbt_parmap_unit); +int _surf_do_model_check = 0; /* this variable is used accros the libraries, and must be declared in XBT so that it's also defined in GRAS (not only in libsimgrid) */ /* Declare xbt_preinit and xbt_postexit as constructor/destructor of the library. * This is crude and rather compiler-specific, unfortunately. */ static void xbt_preinit(void) _XBT_GNUC_CONSTRUCTOR; static void xbt_postexit(void) _XBT_GNUC_DESTRUCTOR; + +#ifdef _XBT_WIN32 +# undef _XBT_NEED_INIT_PRAGMA +#endif + #ifdef _XBT_NEED_INIT_PRAGMA #pragma init (xbt_preinit) #pragma fini (xbt_postexit) @@ -62,12 +70,15 @@ static void xbt_postexit(void) _XBT_GNUC_DESTRUCTOR; #include /* Dummy prototype to make gcc happy */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, + LPVOID lpvReserved); /* see also http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx */ /* and http://www.microsoft.com/whdc/driver/kernel/DLL_bestprac.mspx */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, + LPVOID lpvReserved) +{ if (fdwReason == DLL_PROCESS_ATTACH) { xbt_preinit(); } else if (fdwReason == DLL_PROCESS_DETACH) { @@ -79,10 +90,11 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { #endif -static void xbt_preinit(void) { - #ifdef HAVE_MMAP - mmalloc_preinit(); - #endif +static void xbt_preinit(void) +{ +#ifdef HAVE_MMAP + mmalloc_preinit(); +#endif xbt_log_preinit(); /* Connect our log channels: that must be done manually under windows */ @@ -108,6 +120,8 @@ static void xbt_preinit(void) { XBT_LOG_CONNECT(xbt_queue, xbt); XBT_LOG_CONNECT(xbt_set, xbt); XBT_LOG_CONNECT(xbt_sync_os, xbt); + XBT_LOG_CONNECT(xbt_parmap,xbt); + XBT_LOG_CONNECT(xbt_parmap_unit,xbt_parmap); xbt_fifo_preinit(); xbt_dict_preinit(); @@ -116,7 +130,8 @@ static void xbt_preinit(void) { xbt_os_thread_mod_preinit(); } -static void xbt_postexit(void) { +static void xbt_postexit(void) +{ xbt_os_thread_mod_postexit(); xbt_backtrace_postexit(); @@ -137,7 +152,7 @@ void xbt_init(int *argc, char **argv) // FIXME it would be nice to assert that this function is called only once. But each gras process do call it... xbt_initialized++; - if (xbt_initialized >1) + if (xbt_initialized > 1) return; xbt_binary_name = xbt_strdup(argv[0]); @@ -148,14 +163,16 @@ void xbt_init(int *argc, char **argv) } /** @brief Finalize the xbt mechanisms. */ -void xbt_exit() { +void xbt_exit() +{ WARN0("This function is deprecated, you shouldn't use it"); } /* these two functions belong to xbt/sysdep.h, which have no corresponding .c file */ /** @brief like free, but you can be sure that it is a function */ -XBT_PUBLIC(void) xbt_free_f(void *p) { +XBT_PUBLIC(void) xbt_free_f(void *p) +{ free(p); }