diff --git a/src/mx/memory/reclamation/epoch_manager.h b/src/mx/memory/reclamation/epoch_manager.h index 09d63b8..496641b 100644 --- a/src/mx/memory/reclamation/epoch_manager.h +++ b/src/mx/memory/reclamation/epoch_manager.h @@ -63,7 +63,7 @@ public: EpochManager(const std::uint16_t count_channels, dynamic::Allocator &allocator, util::maybe_atomic &is_running) noexcept : - Thread(system::Environment::env, Name("EpochManager"), 8192), + Thread(*system::Environment::env, Name("EpochManager"), 8192), _count_channels(count_channels), _is_running(is_running), _allocator(allocator) { } @@ -159,7 +159,7 @@ private: std::atomic _global_epoch{0U}; // Genode Timer object, needed for waking up periodically - Timer::Connection _timer { system::Environment::env }; + Timer::Connection _timer { *system::Environment::env }; // Local epochs, one for every channel. alignas(64) std::array _local_epochs; diff --git a/src/mx/system/environment.cpp b/src/mx/system/environment.cpp new file mode 100644 index 0000000..27155dc --- /dev/null +++ b/src/mx/system/environment.cpp @@ -0,0 +1,3 @@ +#include "environment.h" + +Genode::Env* mx::system::Environment::env = nullptr; \ No newline at end of file diff --git a/src/mx/system/environment.h b/src/mx/system/environment.h index d16b47a..7d51d47 100644 --- a/src/mx/system/environment.h +++ b/src/mx/system/environment.h @@ -13,7 +13,7 @@ public: * @return Genode environment capability * */ - static Genode::Env &env; + static Genode::Env *env; diff --git a/src/mx/system/topology.h b/src/mx/system/topology.h index e5ed240..f53ec88 100644 --- a/src/mx/system/topology.h +++ b/src/mx/system/topology.h @@ -36,7 +36,7 @@ public: /** * @return Number of available cores. */ - static std::uint16_t count_cores() { return std::uint16_t(Environment::env.cpu().affinity_space().total()); + static std::uint16_t count_cores() { return std::uint16_t(Environment::env->cpu().affinity_space().total()); } }; } // namespace mx::system \ No newline at end of file diff --git a/src/mx/tasking/profiling/profiling_task.cpp b/src/mx/tasking/profiling/profiling_task.cpp index a1704a1..b252e6f 100644 --- a/src/mx/tasking/profiling/profiling_task.cpp +++ b/src/mx/tasking/profiling/profiling_task.cpp @@ -7,7 +7,7 @@ using namespace mx::tasking::profiling; ProfilingTask::ProfilingTask(mx::util::maybe_atomic &is_running, mx::tasking::Channel &channel) - : _is_running(is_running), _channel(channel), _timer(*new Timer::Connection(system::Environment::env)) + : _is_running(is_running), _channel(channel), _timer(*new Timer::Connection(*system::Environment::env)) { _idle_ranges.reserve(1 << 16); }