summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_writable_event.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/k_writable_event.h34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/core/hle/kernel/k_writable_event.h b/src/core/hle/kernel/k_writable_event.h
index 518f5448d..7cf43f77e 100644
--- a/src/core/hle/kernel/k_writable_event.h
+++ b/src/core/hle/kernel/k_writable_event.h
@@ -4,7 +4,9 @@
#pragma once
+#include "core/hle/kernel/k_auto_object.h"
#include "core/hle/kernel/object.h"
+#include "core/hle/kernel/slab_helpers.h"
#include "core/hle/result.h"
namespace Kernel {
@@ -12,11 +14,28 @@ namespace Kernel {
class KernelCore;
class KEvent;
-class KWritableEvent final : public Object {
+class KWritableEvent final
+ : public KAutoObjectWithSlabHeapAndContainer<KWritableEvent, KAutoObjectWithList> {
+ KERNEL_AUTOOBJECT_TRAITS(KWritableEvent, KAutoObject);
+
public:
- explicit KWritableEvent(KernelCore& kernel, std::string&& name);
+ explicit KWritableEvent(KernelCore& kernel);
~KWritableEvent() override;
+ virtual void Destroy() override;
+
+ static void PostDestroy([[maybe_unused]] uintptr_t arg) {}
+
+ void Initialize(KEvent* parent_, std::string&& name_);
+ ResultCode Signal();
+ ResultCode Clear();
+
+ constexpr KEvent* GetParent() const {
+ return parent;
+ }
+
+ // DEPRECATED
+
std::string GetTypeName() const override {
return "KWritableEvent";
}
@@ -26,17 +45,6 @@ public:
return HANDLE_TYPE;
}
- void Initialize(KEvent* parent_);
-
- void Finalize() override {}
-
- ResultCode Signal();
- ResultCode Clear();
-
- KEvent* GetParent() const {
- return parent;
- }
-
private:
KEvent* parent{};
};