diff options
author | bunnei <bunneidev@gmail.com> | 2022-02-21 21:29:19 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2022-02-21 21:40:09 +0100 |
commit | c7019db6f49edae8431480d7a58d47df760d2871 (patch) | |
tree | 468437f46f55ca012e483291f85a017983745515 /src | |
parent | Merge pull request #7919 from bunnei/phys-mem-updates (diff) | |
download | yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar.gz yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar.bz2 yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar.lz yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar.xz yuzu-c7019db6f49edae8431480d7a58d47df760d2871.tar.zst yuzu-c7019db6f49edae8431480d7a58d47df760d2871.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/k_resource_limit.cpp | 19 | ||||
-rw-r--r-- | src/core/hle/kernel/k_resource_limit.h | 3 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_resource_limit.cpp b/src/core/hle/kernel/k_resource_limit.cpp index 0c4bba66b..a84977c68 100644 --- a/src/core/hle/kernel/k_resource_limit.cpp +++ b/src/core/hle/kernel/k_resource_limit.cpp @@ -3,6 +3,7 @@ // Refer to the license.txt file included. #include "common/assert.h" +#include "core/core.h" #include "core/core_timing.h" #include "core/hle/kernel/k_resource_limit.h" #include "core/hle/kernel/svc_results.h" @@ -151,4 +152,22 @@ void KResourceLimit::Release(LimitableResource which, s64 value, s64 hint) { } } +KResourceLimit* CreateResourceLimitForProcess(Core::System& system, s64 physical_memory_size) { + auto* resource_limit = KResourceLimit::Create(system.Kernel()); + resource_limit->Initialize(&system.CoreTiming()); + + // Initialize default resource limit values. + // TODO(bunnei): These values are the system defaults, the limits for service processes are + // lower. These should use the correct limit values. + + ASSERT(resource_limit->SetLimitValue(LimitableResource::PhysicalMemory, physical_memory_size) + .IsSuccess()); + ASSERT(resource_limit->SetLimitValue(LimitableResource::Threads, 800).IsSuccess()); + ASSERT(resource_limit->SetLimitValue(LimitableResource::Events, 900).IsSuccess()); + ASSERT(resource_limit->SetLimitValue(LimitableResource::TransferMemory, 200).IsSuccess()); + ASSERT(resource_limit->SetLimitValue(LimitableResource::Sessions, 1133).IsSuccess()); + + return resource_limit; +} + } // namespace Kernel diff --git a/src/core/hle/kernel/k_resource_limit.h b/src/core/hle/kernel/k_resource_limit.h index fab6005ff..d23d16aa4 100644 --- a/src/core/hle/kernel/k_resource_limit.h +++ b/src/core/hle/kernel/k_resource_limit.h @@ -67,4 +67,7 @@ private: KLightConditionVariable cond_var; const Core::Timing::CoreTiming* core_timing{}; }; + +KResourceLimit* CreateResourceLimitForProcess(Core::System& system, s64 physical_memory_size); + } // namespace Kernel |