+#include "xbt/xbt_os_thread.h"
+#include "smx_private.h"
+#include "simgrid/sg_config.h"
+#include "internal_config.h"
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_context, simix,
+ "Context switching mechanism");
+
+char* smx_context_factory_name = NULL; /* factory name specified by --cfg=contexts/factory:value */
+smx_ctx_factory_initializer_t smx_factory_initializer_to_use = NULL;
+int smx_context_stack_size = 128 * 1024;
+int smx_context_stack_size_was_set = 0;
+#ifdef HAVE_THREAD_LOCAL_STORAGE
+static __thread smx_context_t smx_current_context_parallel;
+#else
+static xbt_os_thread_key_t smx_current_context_key = 0;
+#endif
+static smx_context_t smx_current_context_serial;
+static int smx_parallel_contexts = 1;
+static int smx_parallel_threshold = 2;
+static e_xbt_parmap_mode_t smx_parallel_synchronization_mode = XBT_PARMAP_DEFAULT;