|
|
@@ -737,8 +737,8 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
|
|
|
// 5.0.0+
|
|
|
UserExceptionContextAddr = 20,
|
|
|
// 6.0.0+
|
|
|
- TotalPhysicalMemoryAvailableWithoutMmHeap = 21,
|
|
|
- TotalPhysicalMemoryUsedWithoutMmHeap = 22,
|
|
|
+ TotalPhysicalMemoryAvailableWithoutSystemResource = 21,
|
|
|
+ TotalPhysicalMemoryUsedWithoutSystemResource = 22,
|
|
|
};
|
|
|
|
|
|
const auto info_id_type = static_cast<GetInfoType>(info_id);
|
|
|
@@ -760,8 +760,8 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
|
|
|
case GetInfoType::SystemResourceUsage:
|
|
|
case GetInfoType::TitleId:
|
|
|
case GetInfoType::UserExceptionContextAddr:
|
|
|
- case GetInfoType::TotalPhysicalMemoryAvailableWithoutMmHeap:
|
|
|
- case GetInfoType::TotalPhysicalMemoryUsedWithoutMmHeap: {
|
|
|
+ case GetInfoType::TotalPhysicalMemoryAvailableWithoutSystemResource:
|
|
|
+ case GetInfoType::TotalPhysicalMemoryUsedWithoutSystemResource: {
|
|
|
if (info_sub_id != 0) {
|
|
|
return ERR_INVALID_ENUM_VALUE;
|
|
|
}
|
|
|
@@ -827,17 +827,9 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
case GetInfoType::SystemResourceUsage:
|
|
|
- // On hardware, this returns the amount of system resource memory that has
|
|
|
- // been used by the kernel. This is problematic for Yuzu to emulate, because
|
|
|
- // system resource memory is used for page tables -- and yuzu doesn't really
|
|
|
- // have a way to calculate how much memory is required for page tables for
|
|
|
- // the current process at any given time.
|
|
|
- // TODO: Is this even worth implementing? No game should ever use it, since
|
|
|
- // the amount of remaining page table space should never be relevant except
|
|
|
- // for diagnostics. Is returning a value other than zero wise?
|
|
|
LOG_WARNING(Kernel_SVC,
|
|
|
- "(STUBBED) Attempted to query system resource usage, returned 0");
|
|
|
- *result = 0;
|
|
|
+ "(STUBBED) Attempted to query system resource usage");
|
|
|
+ *result = process->GetSystemResourceUsage();
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
case GetInfoType::TitleId:
|
|
|
@@ -850,12 +842,12 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
|
|
|
*result = 0;
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
- case GetInfoType::TotalPhysicalMemoryAvailableWithoutMmHeap:
|
|
|
- *result = process->GetTotalPhysicalMemoryAvailable();
|
|
|
+ case GetInfoType::TotalPhysicalMemoryAvailableWithoutSystemResource:
|
|
|
+ *result = process->GetTotalPhysicalMemoryAvailableWithoutSystemResource();
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
- case GetInfoType::TotalPhysicalMemoryUsedWithoutMmHeap:
|
|
|
- *result = process->GetTotalPhysicalMemoryUsedWithoutMmHeap();
|
|
|
+ case GetInfoType::TotalPhysicalMemoryUsedWithoutSystemResource:
|
|
|
+ *result = process->GetTotalPhysicalMemoryUsedWithoutSystemResource();
|
|
|
return RESULT_SUCCESS;
|
|
|
|
|
|
default:
|
|
|
@@ -984,7 +976,7 @@ static ResultCode MapPhysicalMemory(Core::System& system, VAddr addr, u64 size)
|
|
|
return ERR_INVALID_MEMORY_RANGE;
|
|
|
}
|
|
|
|
|
|
- auto* const current_process = Core::CurrentProcess();
|
|
|
+ Process* const current_process = system.Kernel().CurrentProcess();
|
|
|
auto& vm_manager = current_process->VMManager();
|
|
|
|
|
|
if (current_process->GetSystemResourceSize() == 0) {
|
|
|
@@ -1024,7 +1016,7 @@ static ResultCode UnmapPhysicalMemory(Core::System& system, VAddr addr, u64 size
|
|
|
return ERR_INVALID_MEMORY_RANGE;
|
|
|
}
|
|
|
|
|
|
- auto* const current_process = Core::CurrentProcess();
|
|
|
+ Process* const current_process = system.Kernel().CurrentProcess();
|
|
|
auto& vm_manager = current_process->VMManager();
|
|
|
|
|
|
if (current_process->GetSystemResourceSize() == 0) {
|