summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_resource_limit.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/k_resource_limit.h')
-rw-r--r--src/core/hle/kernel/k_resource_limit.h29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/core/hle/kernel/k_resource_limit.h b/src/core/hle/kernel/k_resource_limit.h
index 4542317d0..0debbbb51 100644
--- a/src/core/hle/kernel/k_resource_limit.h
+++ b/src/core/hle/kernel/k_resource_limit.h
@@ -8,7 +8,6 @@
#include "common/common_types.h"
#include "core/hle/kernel/k_light_condition_variable.h"
#include "core/hle/kernel/k_light_lock.h"
-#include "core/hle/kernel/object.h"
union ResultCode;
@@ -32,10 +31,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,19 +54,7 @@ public:
void Release(LimitableResource which, s64 value);
void Release(LimitableResource which, s64 value, s64 hint);
- std::string GetTypeName() const override {
- return "KResourceLimit";
- }
- std::string GetName() const override {
- return GetTypeName();
- }
-
- static constexpr HandleType HANDLE_TYPE = HandleType::ResourceLimit;
- HandleType GetHandleType() const override {
- return HANDLE_TYPE;
- }
-
- virtual void Finalize() override {}
+ static void PostDestroy([[maybe_unused]] uintptr_t arg) {}
private:
using ResourceArray = std::array<s64, static_cast<std::size_t>(LimitableResource::Count)>;
@@ -72,6 +65,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