summaryrefslogtreecommitdiff
path: root/src/core/memory.cpp
diff options
context:
space:
mode:
authorB3n30 <bene_thomas@web.de>2017-09-25 08:29:32 +0200
committerGitHub <noreply@github.com>2017-09-25 08:29:32 +0200
commitd881dee818e7e59b72cb11cea634eb70bdcd3d35 (patch)
tree4f9b241fb63b90647e2992e83d83de7d25bb5d42 /src/core/memory.cpp
parentdc6a36533781d4adbabe0a967f60b0fadd6b31a8 (diff)
parent67a70bd9e1655dfd705550c1d561f3ba444360c8 (diff)
Merge pull request #2952 from MerryMage/page-tables
Switchable Page Tables
Diffstat (limited to 'src/core/memory.cpp')
-rw-r--r--src/core/memory.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 68a6b1ac2..a6b5f6c99 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -9,6 +9,8 @@
#include "common/common_types.h"
#include "common/logging/log.h"
#include "common/swap.h"
+#include "core/arm/arm_interface.h"
+#include "core/core.h"
#include "core/hle/kernel/memory.h"
#include "core/hle/kernel/process.h"
#include "core/hle/lock.h"
@@ -22,10 +24,17 @@ namespace Memory {
static std::array<u8, Memory::VRAM_SIZE> vram;
static std::array<u8, Memory::N3DS_EXTRA_RAM_SIZE> n3ds_extra_ram;
-PageTable* current_page_table = nullptr;
+static PageTable* current_page_table = nullptr;
-std::array<u8*, PAGE_TABLE_NUM_ENTRIES>* GetCurrentPageTablePointers() {
- return &current_page_table->pointers;
+void SetCurrentPageTable(PageTable* page_table) {
+ current_page_table = page_table;
+ if (Core::System::GetInstance().IsPoweredOn()) {
+ Core::CPU().PageTableChanged();
+ }
+}
+
+PageTable* GetCurrentPageTable() {
+ return current_page_table;
}
static void MapPages(PageTable& page_table, u32 base, u32 size, u8* memory, PageType type) {