-#ifndef _MC_MC_H
-#define _MC_MC_H
-
-#include "xbt/misc.h"
-#include "xbt/fifo.h"
-#include "xbt/dict.h"
-#include "xbt/function_types.h"
-#include "mc/datatypes.h"
-#include "simix/datatypes.h"
-#include "gras_config.h" /* Definition of HAVE_MC */
-
-#ifdef HAVE_MC
-extern int _surf_do_model_check;
-#define MC_IS_ENABLED _surf_do_model_check
-#else
-#define MC_IS_ENABLED 0
-#endif
+#ifndef MC_MC_H
+#define MC_MC_H
+
+#include <simgrid/forward.h>
+#include <simgrid/modelchecker.h> /* our public interface (and definition of SIMGRID_HAVE_MC) */
+
+/* Maximum size of the application heap.
+ *
+ * The model-checker heap is placed at this offset from the beginning of the application heap.
+ *
+ * In the current implementation, if the application uses more than this for the application heap the application heap
+ * will smash the beginning of the model-checker heap and bad things will happen.
+ *
+ * For 64 bits systems, we have a lot of virtual memory available so we wan use a much bigger value in order to avoid
+ * bad things from happening.
+ * */
+
+#define STD_HEAP_SIZE (sizeof(void*)<=4 ? (100*1024*1024) : (1ll*1024*1024*1024*1024))