From e9710a2cf7ef7b9d98f9d8a7ed6f8ac5a04921ab Mon Sep 17 00:00:00 2001 From: bunnei Date: Mon, 1 Jan 2018 15:59:31 -0500 Subject: vm_manager: Stub out a bunch of interfaces used by svcGetInfo. --- src/core/hle/kernel/vm_manager.cpp | 34 +++++++++++++++++++++++++++++++++- src/core/hle/kernel/vm_manager.h | 18 ++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) (limited to 'src/core/hle/kernel') diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp index 9762ef535..dca637dde 100644 --- a/src/core/hle/kernel/vm_manager.cpp +++ b/src/core/hle/kernel/vm_manager.cpp @@ -4,6 +4,7 @@ #include #include "common/assert.h" +#include "common/logging/log.h" #include "core/arm/arm_interface.h" #include "core/hle/kernel/errors.h" #include "core/hle/kernel/vm_manager.h" @@ -62,7 +63,7 @@ void VMManager::Reset() { page_table.attributes.fill(Memory::PageType::Unmapped); page_table.cached_res_count.fill(0); - //UpdatePageTableForVMA(initial_vma); + UpdatePageTableForVMA(initial_vma); } VMManager::VMAHandle VMManager::FindVMA(VAddr target) const { @@ -352,4 +353,35 @@ void VMManager::UpdatePageTableForVMA(const VirtualMemoryArea& vma) { break; } } + +u64 VMManager::GetTotalMemoryUsage() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return 0x400000; +} + +u64 VMManager::GetTotalHeapUsage() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return 0x10000; +} + +VAddr VMManager::GetAddressSpaceBaseAddr() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return 0x8000000; +} + +u64 VMManager::GetAddressSpaceSize() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return MAX_ADDRESS; +} + +VAddr VMManager::GetNewMapRegionBaseAddr() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return 0x8000000; } + +u64 VMManager::GetNewMapRegionSize() { + LOG_WARNING(Kernel, "(STUBBED) called"); + return 0x8000000; +} + +} // namespace Kernel diff --git a/src/core/hle/kernel/vm_manager.h b/src/core/hle/kernel/vm_manager.h index d3db1ca8d..1f2b129d1 100644 --- a/src/core/hle/kernel/vm_manager.h +++ b/src/core/hle/kernel/vm_manager.h @@ -181,6 +181,24 @@ public: /// Dumps the address space layout to the log, for debugging void LogLayout(Log::Level log_level) const; + /// Gets the total memory usage, used by svcGetInfo + u64 GetTotalMemoryUsage(); + + /// Gets the total heap usage, used by svcGetInfo + u64 GetTotalHeapUsage(); + + /// Gets the total address space base address, used by svcGetInfo + VAddr GetAddressSpaceBaseAddr(); + + /// Gets the total address space address size, used by svcGetInfo + u64 GetAddressSpaceSize(); + + /// Gets the base address for a new memory region, used by svcGetInfo + VAddr GetNewMapRegionBaseAddr(); + + /// Gets the size for a new memory region, used by svcGetInfo + u64 GetNewMapRegionSize(); + /// Each VMManager has its own page table, which is set as the main one when the owning process /// is scheduled. Memory::PageTable page_table; -- cgit v1.2.3