diff options
| author | Subv <subv2112@gmail.com> | 2017-07-21 21:17:57 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2017-09-10 15:13:41 -0500 |
| commit | 6d2734a074f44a24129db850339677d8d7b436aa (patch) | |
| tree | 418be08a059813466e7ed4495fd6198b16aa4ddc /src/core/hle/kernel/vm_manager.h | |
| parent | 5d0a1e7efddf234234d54fe97395f6975f8d1a28 (diff) | |
Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
Diffstat (limited to 'src/core/hle/kernel/vm_manager.h')
| -rw-r--r-- | src/core/hle/kernel/vm_manager.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/kernel/vm_manager.h b/src/core/hle/kernel/vm_manager.h index 38e0d74d0..1302527bb 100644 --- a/src/core/hle/kernel/vm_manager.h +++ b/src/core/hle/kernel/vm_manager.h @@ -9,6 +9,7 @@ #include <vector> #include "common/common_types.h" #include "core/hle/result.h" +#include "core/memory.h" #include "core/mmio.h" namespace Kernel { @@ -102,7 +103,6 @@ struct VirtualMemoryArea { * - http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files/ */ class VMManager final { - // TODO(yuriks): Make page tables switchable to support multiple VMManagers public: /** * The maximum amount of address space managed by the kernel. Addresses above this are never @@ -184,6 +184,10 @@ public: /// Dumps the address space layout to the log, for debugging void LogLayout(Log::Level log_level) const; + /// Each VMManager has its own page table, which is set as the main one when the owning process + /// is scheduled. + Memory::PageTable page_table; + private: using VMAIter = decltype(vma_map)::iterator; |
