Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
reduce the adhesion from wannabe libsosp to the rest of MC
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 4 Jul 2018 07:24:07 +0000 (09:24 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Wed, 4 Jul 2018 07:43:51 +0000 (09:43 +0200)
include/xbt/base.h
src/mc/PageStore.hpp
src/mc/mc_mmu.hpp

index d283304..ad48df7 100644 (file)
 #  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__)
index da9d527..bc05cfa 100644 (file)
@@ -1,5 +1,4 @@
-/* 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 {
 
index 34e71e4..bb4d900 100644 (file)
@@ -6,10 +6,18 @@
 #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