core/memory: Introduce skeleton of Memory class

Currently, the main memory management code is one of the remaining
places where we have global state. The next series of changes will aim
to rectify this.

This change simply introduces the main skeleton of the class that will
contain all the necessary state.
This commit is contained in:
Lioncash 2019-11-26 12:33:20 -05:00
parent 6fbfa5bb89
commit ff443fa835
4 changed files with 56 additions and 3 deletions

View file

@ -24,6 +24,18 @@ namespace Memory {
static Common::PageTable* current_page_table = nullptr;
// Implementation class used to keep the specifics of the memory subsystem hidden
// from outside classes. This also allows modification to the internals of the memory
// subsystem without needing to rebuild all files that make use of the memory interface.
struct Memory::Impl {
explicit Impl(Core::System& system_) : system{system_} {}
Core::System& system;
};
Memory::Memory(Core::System& system) : impl{std::make_unique<Impl>(system)} {}
Memory::~Memory() = default;
void SetCurrentPageTable(Kernel::Process& process) {
current_page_table = &process.VMManager().page_table;