# define XBT_ATTRIB_DESTRUCTOR(prio) __attribute__((__destructor__))
#endif
-#if defined(__GNUC__)
-# define XBT_ALWAYS_INLINE inline __attribute__ ((always_inline))
-#else
-# define XBT_ALWAYS_INLINE inline
+#ifndef XBT_ALWAYS_INLINE /* defined also in libsosp */
+# if defined(__GNUC__)
+# define XBT_ALWAYS_INLINE inline __attribute__ ((always_inline))
+# else
+# define XBT_ALWAYS_INLINE inline
+# endif
#endif
#if defined(__GNUC__)
-/* Copyright (c) 2015-2018. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2015-2018. The SimGrid Team. All rights reserved. */
/* 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. */
#include <unordered_map>
#include <unordered_set>
-#include "xbt/base.h"
-
#include "src/mc/mc_forward.hpp"
#include "src/mc/mc_mmu.hpp"
+#ifndef XBT_ALWAYS_INLINE
+#define XBT_ALWAYS_INLINE inline __attribute__((always_inline))
+#endif
+
namespace simgrid {
namespace mc {
#ifndef SIMGRID_MC_MMU_HPP
#define SIMGRID_MC_MMU_HPP
-#include "xbt/misc.h" // xbt_pagesize...
#include <cstdint>
#include <utility>
+#ifndef XBT_ALWAYS_INLINE
+#define XBT_ALWAYS_INLINE inline __attribute__((always_inline))
+#endif
+
+/** Cache the size of a memory page for the current system. */
+extern "C" int xbt_pagesize;
+/** Cache the number of bits of addresses inside a given page, log2(xbt_pagesize). */
+extern "C" int xbt_pagebits;
+
namespace simgrid {
namespace mc {
// TODO, do not depend on xbt_pagesize/xbt_pagebits but our own chunk size