diff options
| author | 2015-11-30 21:17:34 -0800 | |
|---|---|---|
| committer | 2015-11-30 21:17:34 -0800 | |
| commit | bec90495976ad5bca6feb514888880d755c52b1b (patch) | |
| tree | 928497d2056d1c5ea719ac0cb359888b0df4d6bc /src/core/hle/kernel/process.cpp | |
| parent | Merge pull request #1259 from lioncash/zero (diff) | |
| parent | Kernel: Implement svcGetSystemInfo (diff) | |
| download | yuzu-bec90495976ad5bca6feb514888880d755c52b1b.tar.gz yuzu-bec90495976ad5bca6feb514888880d755c52b1b.tar.xz yuzu-bec90495976ad5bca6feb514888880d755c52b1b.zip | |
Merge pull request #1257 from yuriks/svcGetSystemInfo
Kernel: Implement svcGetSystemInfo
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index c2b4963d4..d148efde2 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp | |||
| @@ -111,6 +111,7 @@ void Process::Run(s32 main_thread_priority, u32 stack_size) { | |||
| 111 | segment.offset, segment.size, memory_state).Unwrap(); | 111 | segment.offset, segment.size, memory_state).Unwrap(); |
| 112 | vm_manager.Reprotect(vma, permissions); | 112 | vm_manager.Reprotect(vma, permissions); |
| 113 | misc_memory_used += segment.size; | 113 | misc_memory_used += segment.size; |
| 114 | memory_region->used += segment.size; | ||
| 114 | }; | 115 | }; |
| 115 | 116 | ||
| 116 | // Map CodeSet segments | 117 | // Map CodeSet segments |
| @@ -123,6 +124,7 @@ void Process::Run(s32 main_thread_priority, u32 stack_size) { | |||
| 123 | std::make_shared<std::vector<u8>>(stack_size, 0), 0, stack_size, MemoryState::Locked | 124 | std::make_shared<std::vector<u8>>(stack_size, 0), 0, stack_size, MemoryState::Locked |
| 124 | ).Unwrap(); | 125 | ).Unwrap(); |
| 125 | misc_memory_used += stack_size; | 126 | misc_memory_used += stack_size; |
| 127 | memory_region->used += stack_size; | ||
| 126 | 128 | ||
| 127 | vm_manager.LogLayout(Log::Level::Debug); | 129 | vm_manager.LogLayout(Log::Level::Debug); |
| 128 | Kernel::SetupMainThread(codeset->entrypoint, main_thread_priority); | 130 | Kernel::SetupMainThread(codeset->entrypoint, main_thread_priority); |
| @@ -165,6 +167,7 @@ ResultVal<VAddr> Process::HeapAllocate(VAddr target, u32 size, VMAPermission per | |||
| 165 | vm_manager.Reprotect(vma, perms); | 167 | vm_manager.Reprotect(vma, perms); |
| 166 | 168 | ||
| 167 | heap_used += size; | 169 | heap_used += size; |
| 170 | memory_region->used += size; | ||
| 168 | 171 | ||
| 169 | return MakeResult<VAddr>(heap_end - size); | 172 | return MakeResult<VAddr>(heap_end - size); |
| 170 | } | 173 | } |
| @@ -182,6 +185,7 @@ ResultCode Process::HeapFree(VAddr target, u32 size) { | |||
| 182 | if (result.IsError()) return result; | 185 | if (result.IsError()) return result; |
| 183 | 186 | ||
| 184 | heap_used -= size; | 187 | heap_used -= size; |
| 188 | memory_region->used -= size; | ||
| 185 | 189 | ||
| 186 | return RESULT_SUCCESS; | 190 | return RESULT_SUCCESS; |
| 187 | } | 191 | } |
| @@ -217,6 +221,7 @@ ResultVal<VAddr> Process::LinearAllocate(VAddr target, u32 size, VMAPermission p | |||
| 217 | vm_manager.Reprotect(vma, perms); | 221 | vm_manager.Reprotect(vma, perms); |
| 218 | 222 | ||
| 219 | linear_heap_used += size; | 223 | linear_heap_used += size; |
| 224 | memory_region->used += size; | ||
| 220 | 225 | ||
| 221 | return MakeResult<VAddr>(target); | 226 | return MakeResult<VAddr>(target); |
| 222 | } | 227 | } |
| @@ -243,6 +248,7 @@ ResultCode Process::LinearFree(VAddr target, u32 size) { | |||
| 243 | if (result.IsError()) return result; | 248 | if (result.IsError()) return result; |
| 244 | 249 | ||
| 245 | linear_heap_used -= size; | 250 | linear_heap_used -= size; |
| 251 | memory_region->used -= size; | ||
| 246 | 252 | ||
| 247 | if (target + size == heap_end) { | 253 | if (target + size == heap_end) { |
| 248 | // End of linear heap has been freed, so check what's the last allocated block in it and | 254 | // End of linear heap has been freed, so check what's the last allocated block in it and |