summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_resource_limit.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-04-21 06:28:11 +0200
committerbunnei <bunneidev@gmail.com>2021-05-06 01:40:52 +0200
commitb57c5a9b54b23a348d7e80e51943f27a54fb8c2f (patch)
treee3f3c81a2fddb94c43b6a1dd641c61a7ca9c8225 /src/core/hle/kernel/k_resource_limit.h
parenthle: kernel: svc: Migrate WaitSynchronization. (diff)
downloadyuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar.gz
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar.bz2
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar.lz
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar.xz
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.tar.zst
yuzu-b57c5a9b54b23a348d7e80e51943f27a54fb8c2f.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/k_resource_limit.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/core/hle/kernel/k_resource_limit.h b/src/core/hle/kernel/k_resource_limit.h
index 4542317d0..483c66c33 100644
--- a/src/core/hle/kernel/k_resource_limit.h
+++ b/src/core/hle/kernel/k_resource_limit.h
@@ -32,10 +32,16 @@ constexpr bool IsValidResourceType(LimitableResource type) {
return type < LimitableResource::Count;
}
-class KResourceLimit final : public Object {
+class KResourceLimit final
+ : public KAutoObjectWithSlabHeapAndContainer<KResourceLimit, KAutoObjectWithList> {
+ KERNEL_AUTOOBJECT_TRAITS(KResourceLimit, KAutoObject);
+
public:
- explicit KResourceLimit(KernelCore& kernel, const Core::Timing::CoreTiming& core_timing_);
- ~KResourceLimit();
+ explicit KResourceLimit(KernelCore& kernel);
+ virtual ~KResourceLimit();
+
+ void Initialize(const Core::Timing::CoreTiming* core_timing_);
+ virtual void Finalize() override;
s64 GetLimitValue(LimitableResource which) const;
s64 GetCurrentValue(LimitableResource which) const;
@@ -49,6 +55,10 @@ public:
void Release(LimitableResource which, s64 value);
void Release(LimitableResource which, s64 value, s64 hint);
+ static void PostDestroy([[maybe_unused]] uintptr_t arg) {}
+
+ // DEPRECATED
+
std::string GetTypeName() const override {
return "KResourceLimit";
}
@@ -61,8 +71,6 @@ public:
return HANDLE_TYPE;
}
- virtual void Finalize() override {}
-
private:
using ResourceArray = std::array<s64, static_cast<std::size_t>(LimitableResource::Count)>;
ResourceArray limit_values{};
@@ -72,6 +80,6 @@ private:
mutable KLightLock lock;
s32 waiter_count{};
KLightConditionVariable cond_var;
- const Core::Timing::CoreTiming& core_timing;
+ const Core::Timing::CoreTiming* core_timing{};
};
} // namespace Kernel