diff --git a/kernel/include/kernel/Memory/MMUScope.h b/kernel/include/kernel/Memory/MMUScope.h new file mode 100644 index 00000000..5ed43cd6 --- /dev/null +++ b/kernel/include/kernel/Memory/MMUScope.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include + +namespace Kernel +{ + + class MMUScope + { + public: + MMUScope(MMU& mmu) + : m_old(MMU::current()) + , m_temp(mmu) + { + if (&m_old != &m_temp) + m_temp.load(); + } + ~MMUScope() + { + if (&m_old != &m_temp) + m_old.load(); + } + private: + CriticalScope m_scope; + MMU& m_old; + MMU& m_temp; + }; + +} \ No newline at end of file