diff options
Diffstat (limited to 'src/core/hle/kernel/object.h')
| -rw-r--r-- | src/core/hle/kernel/object.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/hle/kernel/object.h b/src/core/hle/kernel/object.h index 526ac9cc3..b054cbf7d 100644 --- a/src/core/hle/kernel/object.h +++ b/src/core/hle/kernel/object.h | |||
| @@ -14,6 +14,8 @@ | |||
| 14 | 14 | ||
| 15 | namespace Kernel { | 15 | namespace Kernel { |
| 16 | 16 | ||
| 17 | class KernelCore; | ||
| 18 | |||
| 17 | using Handle = u32; | 19 | using Handle = u32; |
| 18 | 20 | ||
| 19 | enum class HandleType : u32 { | 21 | enum class HandleType : u32 { |
| @@ -40,6 +42,7 @@ enum class ResetType { | |||
| 40 | 42 | ||
| 41 | class Object : NonCopyable { | 43 | class Object : NonCopyable { |
| 42 | public: | 44 | public: |
| 45 | explicit Object(KernelCore& kernel); | ||
| 43 | virtual ~Object(); | 46 | virtual ~Object(); |
| 44 | 47 | ||
| 45 | /// Returns a unique identifier for the object. For debugging purposes only. | 48 | /// Returns a unique identifier for the object. For debugging purposes only. |
| @@ -61,15 +64,16 @@ public: | |||
| 61 | */ | 64 | */ |
| 62 | bool IsWaitable() const; | 65 | bool IsWaitable() const; |
| 63 | 66 | ||
| 64 | public: | 67 | protected: |
| 65 | static std::atomic<u32> next_object_id; | 68 | /// The kernel instance this object was created under. |
| 69 | KernelCore& kernel; | ||
| 66 | 70 | ||
| 67 | private: | 71 | private: |
| 68 | friend void intrusive_ptr_add_ref(Object*); | 72 | friend void intrusive_ptr_add_ref(Object*); |
| 69 | friend void intrusive_ptr_release(Object*); | 73 | friend void intrusive_ptr_release(Object*); |
| 70 | 74 | ||
| 71 | std::atomic<u32> ref_count{0}; | 75 | std::atomic<u32> ref_count{0}; |
| 72 | std::atomic<u32> object_id{next_object_id++}; | 76 | std::atomic<u32> object_id{0}; |
| 73 | }; | 77 | }; |
| 74 | 78 | ||
| 75 | // Special functions used by boost::instrusive_ptr to do automatic ref-counting | 79 | // Special functions used by boost::instrusive_ptr to do automatic ref-counting |