Compare commits

...

1 Commits

Author SHA1 Message Date
Fernando Sahmkow
a37ad86a09 Kernel: Implement svcInfo 6.0.0 queries 2019-06-09 17:43:57 -04:00

View File

@@ -731,6 +731,9 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
// 5.0.0+ // 5.0.0+
UserExceptionContextAddr = 20, UserExceptionContextAddr = 20,
ThreadTickCount = 0xF0000002, ThreadTickCount = 0xF0000002,
// 6.0.0+
TotalMemoryUsageMinusHeap = 21,
TotalPhysicalMemoryUsedMinusHeap = 22,
}; };
const auto info_id_type = static_cast<GetInfoType>(info_id); const auto info_id_type = static_cast<GetInfoType>(info_id);
@@ -750,6 +753,8 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
case GetInfoType::TotalPhysicalMemoryUsed: case GetInfoType::TotalPhysicalMemoryUsed:
case GetInfoType::IsVirtualAddressMemoryEnabled: case GetInfoType::IsVirtualAddressMemoryEnabled:
case GetInfoType::PersonalMmHeapUsage: case GetInfoType::PersonalMmHeapUsage:
case GetInfoType::TotalMemoryUsageMinusHeap:
case GetInfoType::TotalPhysicalMemoryUsedMinusHeap:
case GetInfoType::TitleId: case GetInfoType::TitleId:
case GetInfoType::UserExceptionContextAddr: { case GetInfoType::UserExceptionContextAddr: {
if (info_sub_id != 0) { if (info_sub_id != 0) {
@@ -820,6 +825,16 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, u64 ha
*result = process->GetTitleID(); *result = process->GetTitleID();
return RESULT_SUCCESS; return RESULT_SUCCESS;
case GetInfoType::TotalMemoryUsageMinusHeap:
*result = process->VMManager().GetTotalMemoryUsage() -
process->VMManager().GetCurrentHeapSize();
return RESULT_SUCCESS;
case GetInfoType::TotalPhysicalMemoryUsedMinusHeap:
*result =
process->GetTotalPhysicalMemoryUsed() - process->VMManager().GetCurrentHeapSize();
return RESULT_SUCCESS;
case GetInfoType::UserExceptionContextAddr: case GetInfoType::UserExceptionContextAddr:
LOG_WARNING(Kernel_SVC, LOG_WARNING(Kernel_SVC,
"(STUBBED) Attempted to query user exception context address, returned 0"); "(STUBBED) Attempted to query user exception context address, returned 0");