/* 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. */
+#define XBT_LOG_LOCALLY_DEFINE_XBT_CHANNEL /* MSVC don't want it to be declared extern in headers and local here */
+
#include "xbt/misc.h"
#include "simgrid_config.h" /* _XBT_WIN32 */
-#include "internal_config.h" /* MMALLOC_WANT_OVERRIDE_LEGACY */
-#include "portable.h"
+#include "src/internal_config.h" /* MMALLOC_WANT_OVERRIDE_LEGACY */
+#include "src/portable.h"
#include "xbt/sysdep.h"
#include "xbt/log.h"
#include "xbt/dynar.h"
#include "xbt/module.h" /* this module */
-#include "xbt_modinter.h" /* prototype of other module's init/exit in XBT */
+#include "src/xbt_modinter.h" /* prototype of other module's init/exit in XBT */
#include "simgrid/sg_config.h"
#include <signal.h>
#endif
-XBT_LOG_NEW_CATEGORY(xbt, "All XBT categories (simgrid toolbox)");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(module, xbt, "module handling");
XBT_LOG_NEW_CATEGORY(smpi, "All SMPI categories"); /* lives here even if that's a bit odd to solve linking issues: this is used in xbt_log_file_appender to detect whether SMPI is used (and thus whether we should unbench the writing to disk) */
int _sg_do_clean_atexit = 1;
int xbt_pagesize;
+int xbt_pagebits = 0;
/* Declare xbt_preinit and xbt_postexit as constructor/destructor of the library.
* This is crude and rather compiler-specific, unfortunately.
GetSystemInfo(&si);
xbt_pagesize = si.dwPageSize;
#endif
-#ifdef MMALLOC_WANT_OVERRIDE_LEGACY
- mmalloc_preinit();
-#endif
+
+ xbt_pagebits = 0;
+ int x = xbt_pagesize;
+ while(x >>= 1) {
+ ++xbt_pagebits;
+ }
+
#ifdef _TWO_DIGIT_EXPONENT
/* Even printf behaves differently on Windows... */
_set_output_format(_TWO_DIGIT_EXPONENT);
#ifndef _WIN32
srand48(seed);
#endif
-
atexit(xbt_postexit);
}
static void xbt_postexit(void)
{
if(!_sg_do_clean_atexit) return;
+ xbt_initialized--;
xbt_backtrace_postexit();
xbt_fifo_postexit();
xbt_dict_postexit();