summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2015-07-17 21:55:48 -0300
committerGravatar Yuri Kunde Schlesner2015-08-16 01:03:43 -0300
commitb9a9ad9742d3d47375526949d5ddb48280e6c952 (patch)
tree7fa10d9ebae362e81c89d325687e6be92b6363dd /src/core
parentVMManager: Change block offsets to size_t (diff)
downloadyuzu-b9a9ad9742d3d47375526949d5ddb48280e6c952.tar.gz
yuzu-b9a9ad9742d3d47375526949d5ddb48280e6c952.tar.xz
yuzu-b9a9ad9742d3d47375526949d5ddb48280e6c952.zip
VMManager: Make LogLayout log level configurable as a parameter
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/kernel/process.cpp2
-rw-r--r--src/core/hle/kernel/vm_manager.cpp16
-rw-r--r--src/core/hle/kernel/vm_manager.h2
3 files changed, 15 insertions, 5 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp
index a7892c652..ad953cdbf 100644
--- a/src/core/hle/kernel/process.cpp
+++ b/src/core/hle/kernel/process.cpp
@@ -113,7 +113,7 @@ void Process::Run(s32 main_thread_priority, u32 stack_size) {
113 MapSegment(codeset->rodata, VMAPermission::Read, MemoryState::Code); 113 MapSegment(codeset->rodata, VMAPermission::Read, MemoryState::Code);
114 MapSegment(codeset->data, VMAPermission::ReadWrite, MemoryState::Private); 114 MapSegment(codeset->data, VMAPermission::ReadWrite, MemoryState::Private);
115 115
116 address_space->LogLayout(); 116 address_space->LogLayout(Log::Level::Debug);
117 Kernel::SetupMainThread(codeset->entrypoint, main_thread_priority); 117 Kernel::SetupMainThread(codeset->entrypoint, main_thread_priority);
118} 118}
119 119
diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp
index e5e567de1..adce9a1ee 100644
--- a/src/core/hle/kernel/vm_manager.cpp
+++ b/src/core/hle/kernel/vm_manager.cpp
@@ -11,6 +11,15 @@
11 11
12namespace Kernel { 12namespace Kernel {
13 13
14static const char* GetMemoryStateName(MemoryState state) {
15 static const char* names[] = {
16 "Free", "Reserved", "IO", "Static", "Code", "Private", "Shared", "Continuous", "Aliased",
17 "Alias", "AliasCode", "Locked",
18 };
19
20 return names[(int)state];
21}
22
14bool VirtualMemoryArea::CanBeMergedWith(const VirtualMemoryArea& next) const { 23bool VirtualMemoryArea::CanBeMergedWith(const VirtualMemoryArea& next) const {
15 ASSERT(base + size == next.base); 24 ASSERT(base + size == next.base);
16 if (permissions != next.permissions || 25 if (permissions != next.permissions ||
@@ -134,13 +143,14 @@ void VMManager::Reprotect(VMAHandle vma_handle, VMAPermission new_perms) {
134 MergeAdjacent(iter); 143 MergeAdjacent(iter);
135} 144}
136 145
137void VMManager::LogLayout() const { 146void VMManager::LogLayout(Log::Level log_level) const {
138 for (const auto& p : vma_map) { 147 for (const auto& p : vma_map) {
139 const VirtualMemoryArea& vma = p.second; 148 const VirtualMemoryArea& vma = p.second;
140 LOG_DEBUG(Kernel, "%08X - %08X size: %8X %c%c%c", vma.base, vma.base + vma.size, vma.size, 149 LOG_GENERIC(Log::Class::Kernel, log_level, "%08X - %08X size: %8X %c%c%c %s",
150 vma.base, vma.base + vma.size, vma.size,
141 (u8)vma.permissions & (u8)VMAPermission::Read ? 'R' : '-', 151 (u8)vma.permissions & (u8)VMAPermission::Read ? 'R' : '-',
142 (u8)vma.permissions & (u8)VMAPermission::Write ? 'W' : '-', 152 (u8)vma.permissions & (u8)VMAPermission::Write ? 'W' : '-',
143 (u8)vma.permissions & (u8)VMAPermission::Execute ? 'X' : '-'); 153 (u8)vma.permissions & (u8)VMAPermission::Execute ? 'X' : '-', GetMemoryStateName(vma.meminfo_state));
144 } 154 }
145} 155}
146 156
diff --git a/src/core/hle/kernel/vm_manager.h b/src/core/hle/kernel/vm_manager.h
index a8cf0d0d4..99cc28689 100644
--- a/src/core/hle/kernel/vm_manager.h
+++ b/src/core/hle/kernel/vm_manager.h
@@ -170,7 +170,7 @@ public:
170 void Reprotect(VMAHandle vma, VMAPermission new_perms); 170 void Reprotect(VMAHandle vma, VMAPermission new_perms);
171 171
172 /// Dumps the address space layout to the log, for debugging 172 /// Dumps the address space layout to the log, for debugging
173 void LogLayout() const; 173 void LogLayout(Log::Level log_level) const;
174 174
175private: 175private:
176 using VMAIter = decltype(vma_map)::iterator; 176 using VMAIter = decltype(vma_map)::iterator;