diff options
Diffstat (limited to 'src/core/memory.cpp')
| -rw-r--r-- | src/core/memory.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index fa49f3dd0..2098f13f7 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -24,6 +24,18 @@ namespace Memory { | |||
| 24 | 24 | ||
| 25 | static Common::PageTable* current_page_table = nullptr; | 25 | static Common::PageTable* current_page_table = nullptr; |
| 26 | 26 | ||
| 27 | // Implementation class used to keep the specifics of the memory subsystem hidden | ||
| 28 | // from outside classes. This also allows modification to the internals of the memory | ||
| 29 | // subsystem without needing to rebuild all files that make use of the memory interface. | ||
| 30 | struct Memory::Impl { | ||
| 31 | explicit Impl(Core::System& system_) : system{system_} {} | ||
| 32 | |||
| 33 | Core::System& system; | ||
| 34 | }; | ||
| 35 | |||
| 36 | Memory::Memory(Core::System& system) : impl{std::make_unique<Impl>(system)} {} | ||
| 37 | Memory::~Memory() = default; | ||
| 38 | |||
| 27 | void SetCurrentPageTable(Kernel::Process& process) { | 39 | void SetCurrentPageTable(Kernel::Process& process) { |
| 28 | current_page_table = &process.VMManager().page_table; | 40 | current_page_table = &process.VMManager().page_table; |
| 29 | 41 | ||