aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/k_resource_limit.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-06-23 06:31:25 +0200
committercrueter <crueter@eden-emu.dev>2026-06-23 06:31:25 +0200
commit3aa0d462598beb2021308eee1d757d74fe33b312 (patch)
treeed425c3845ba8fa61184d97b0588cb049b518bd7 /src/core/hle/kernel/k_resource_limit.cpp
parentf8facda35fe7f17143f84bbfbdacc4cc48678946 (diff)
[video_core, hle] remove redundant parent references in system structs (#3908)
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/core/hle/kernel/k_resource_limit.cpp')
-rw-r--r--src/core/hle/kernel/k_resource_limit.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/core/hle/kernel/k_resource_limit.cpp b/src/core/hle/kernel/k_resource_limit.cpp
index e886f97ebd..1a2c92a665 100644
--- a/src/core/hle/kernel/k_resource_limit.cpp
+++ b/src/core/hle/kernel/k_resource_limit.cpp
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
@@ -16,12 +16,15 @@ namespace Kernel {
constexpr s64 DefaultTimeout = 10000000000; // 10 seconds
KResourceLimit::KResourceLimit(KernelCore& kernel)
- : KAutoObjectWithSlabHeapAndContainer{kernel}, m_lock{m_kernel}, m_cond_var{m_kernel} {}
+ : KAutoObjectWithSlabHeapAndContainer{kernel}
+ , m_lock{kernel}
+ , m_cond_var{kernel}
+{}
KResourceLimit::~KResourceLimit() = default;
void KResourceLimit::Initialize() {}
-void KResourceLimit::Finalize() {}
+void KResourceLimit::Finalize(KernelCore& kernel) {}
s64 KResourceLimit::GetLimitValue(LimitableResource which) const {
const auto index = static_cast<std::size_t>(which);
@@ -87,11 +90,11 @@ Result KResourceLimit::SetLimitValue(LimitableResource which, s64 value) {
R_SUCCEED();
}
-bool KResourceLimit::Reserve(LimitableResource which, s64 value) {
- return Reserve(which, value, m_kernel.HardwareTimer().GetTick() + DefaultTimeout);
+bool KResourceLimit::Reserve(KernelCore& kernel, LimitableResource which, s64 value) {
+ return Reserve(kernel, which, value, kernel.HardwareTimer().GetTick() + DefaultTimeout);
}
-bool KResourceLimit::Reserve(LimitableResource which, s64 value, s64 timeout) {
+bool KResourceLimit::Reserve(KernelCore& kernel, LimitableResource which, s64 value, s64 timeout) {
ASSERT(value >= 0);
const auto index = static_cast<std::size_t>(which);
KScopedLightLock lk(m_lock);
@@ -119,7 +122,7 @@ bool KResourceLimit::Reserve(LimitableResource which, s64 value, s64 timeout) {
}
if (m_current_hints[index] + value <= m_limit_values[index] &&
- (timeout < 0 || m_kernel.HardwareTimer().GetTick() < timeout)) {
+ (timeout < 0 || kernel.HardwareTimer().GetTick() < timeout)) {
m_waiter_count++;
m_cond_var.Wait(std::addressof(m_lock), timeout, false);
m_waiter_count--;
@@ -131,11 +134,11 @@ bool KResourceLimit::Reserve(LimitableResource which, s64 value, s64 timeout) {
return false;
}
-void KResourceLimit::Release(LimitableResource which, s64 value) {
- Release(which, value, value);
+void KResourceLimit::Release(KernelCore& kernel, LimitableResource which, s64 value) {
+ Release(kernel, which, value, value);
}
-void KResourceLimit::Release(LimitableResource which, s64 value, s64 hint) {
+void KResourceLimit::Release(KernelCore& kernel, LimitableResource which, s64 value, s64 hint) {
ASSERT(value >= 0);
ASSERT(hint >= 0);