diff options
| author | 2021-04-23 21:50:04 -0700 | |
|---|---|---|
| committer | 2021-05-05 16:40:52 -0700 | |
| commit | bf380b858481ef99d7150d322af2c30ac339bcde (patch) | |
| tree | 823c0fb0cdb300d01fd02567c2126fa6ad582325 /src | |
| parent | hle: kernel: Do not shutdown twice on emulator close. (diff) | |
| download | yuzu-bf380b858481ef99d7150d322af2c30ac339bcde.tar.gz yuzu-bf380b858481ef99d7150d322af2c30ac339bcde.tar.xz yuzu-bf380b858481ef99d7150d322af2c30ac339bcde.zip | |
hle: kernel: Remove deprecated Object class.
Diffstat (limited to 'src')
39 files changed, 34 insertions, 423 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index cee6d30f6..4e1387c7e 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -232,8 +232,6 @@ add_library(core STATIC | |||
| 232 | hle/kernel/kernel.cpp | 232 | hle/kernel/kernel.cpp |
| 233 | hle/kernel/kernel.h | 233 | hle/kernel/kernel.h |
| 234 | hle/kernel/memory_types.h | 234 | hle/kernel/memory_types.h |
| 235 | hle/kernel/object.cpp | ||
| 236 | hle/kernel/object.h | ||
| 237 | hle/kernel/physical_core.cpp | 235 | hle/kernel/physical_core.cpp |
| 238 | hle/kernel/physical_core.h | 236 | hle/kernel/physical_core.h |
| 239 | hle/kernel/physical_memory.h | 237 | hle/kernel/physical_memory.h |
diff --git a/src/core/core.h b/src/core/core.h index f1068d23f..16e191266 100644 --- a/src/core/core.h +++ b/src/core/core.h | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | 12 | ||
| 13 | #include "common/common_types.h" | 13 | #include "common/common_types.h" |
| 14 | #include "core/file_sys/vfs_types.h" | 14 | #include "core/file_sys/vfs_types.h" |
| 15 | #include "core/hle/kernel/object.h" | ||
| 16 | 15 | ||
| 17 | namespace Core::Frontend { | 16 | namespace Core::Frontend { |
| 18 | class EmuWindow; | 17 | class EmuWindow; |
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index 8128445fd..0906b8cfb 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | #include "core/hle/kernel/hle_ipc.h" | 16 | #include "core/hle/kernel/hle_ipc.h" |
| 17 | #include "core/hle/kernel/k_client_port.h" | 17 | #include "core/hle/kernel/k_client_port.h" |
| 18 | #include "core/hle/kernel/k_session.h" | 18 | #include "core/hle/kernel/k_session.h" |
| 19 | #include "core/hle/kernel/object.h" | ||
| 20 | #include "core/hle/result.h" | 19 | #include "core/hle/result.h" |
| 21 | 20 | ||
| 22 | namespace IPC { | 21 | namespace IPC { |
| @@ -381,12 +380,6 @@ public: | |||
| 381 | template <typename T> | 380 | template <typename T> |
| 382 | T PopRaw(); | 381 | T PopRaw(); |
| 383 | 382 | ||
| 384 | template <typename T> | ||
| 385 | T* GetMoveObject(std::size_t index); | ||
| 386 | |||
| 387 | template <typename T> | ||
| 388 | T* GetCopyObject(std::size_t index); | ||
| 389 | |||
| 390 | template <class T> | 383 | template <class T> |
| 391 | std::shared_ptr<T> PopIpcInterface() { | 384 | std::shared_ptr<T> PopIpcInterface() { |
| 392 | ASSERT(context->Session()->IsDomain()); | 385 | ASSERT(context->Session()->IsDomain()); |
| @@ -491,14 +484,4 @@ void RequestParser::Pop(First& first_value, Other&... other_values) { | |||
| 491 | Pop(other_values...); | 484 | Pop(other_values...); |
| 492 | } | 485 | } |
| 493 | 486 | ||
| 494 | template <typename T> | ||
| 495 | T* RequestParser::GetMoveObject(std::size_t index) { | ||
| 496 | return context->GetMoveObject<T>(index); | ||
| 497 | } | ||
| 498 | |||
| 499 | template <typename T> | ||
| 500 | T* RequestParser::GetCopyObject(std::size_t index) { | ||
| 501 | return context->GetCopyObject<T>(index); | ||
| 502 | } | ||
| 503 | |||
| 504 | } // namespace IPC | 487 | } // namespace IPC |
diff --git a/src/core/hle/kernel/handle_table.h b/src/core/hle/kernel/handle_table.h index 2e0b2d8b8..791e303d1 100644 --- a/src/core/hle/kernel/handle_table.h +++ b/src/core/hle/kernel/handle_table.h | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | #include "core/hle/kernel/k_auto_object.h" | 12 | #include "core/hle/kernel/k_auto_object.h" |
| 13 | #include "core/hle/kernel/k_spin_lock.h" | 13 | #include "core/hle/kernel/k_spin_lock.h" |
| 14 | #include "core/hle/kernel/kernel.h" | 14 | #include "core/hle/kernel/kernel.h" |
| 15 | #include "core/hle/kernel/object.h" | ||
| 16 | #include "core/hle/result.h" | 15 | #include "core/hle/result.h" |
| 17 | 16 | ||
| 18 | namespace Kernel { | 17 | namespace Kernel { |
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index ddff9ce99..a11528f28 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp | |||
| @@ -23,7 +23,6 @@ | |||
| 23 | #include "core/hle/kernel/k_thread.h" | 23 | #include "core/hle/kernel/k_thread.h" |
| 24 | #include "core/hle/kernel/k_writable_event.h" | 24 | #include "core/hle/kernel/k_writable_event.h" |
| 25 | #include "core/hle/kernel/kernel.h" | 25 | #include "core/hle/kernel/kernel.h" |
| 26 | #include "core/hle/kernel/object.h" | ||
| 27 | #include "core/hle/kernel/process.h" | 26 | #include "core/hle/kernel/process.h" |
| 28 | #include "core/hle/kernel/svc_results.h" | 27 | #include "core/hle/kernel/svc_results.h" |
| 29 | #include "core/hle/kernel/time_manager.h" | 28 | #include "core/hle/kernel/time_manager.h" |
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index d63c730ac..7f7ab74dd 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h | |||
| @@ -212,16 +212,6 @@ public: | |||
| 212 | return move_handles.at(index); | 212 | return move_handles.at(index); |
| 213 | } | 213 | } |
| 214 | 214 | ||
| 215 | template <typename T> | ||
| 216 | T* GetCopyObject(std::size_t index) { | ||
| 217 | return DynamicObjectCast<T>(copy_objects.at(index)); | ||
| 218 | } | ||
| 219 | |||
| 220 | template <typename T> | ||
| 221 | T* GetMoveObject(std::size_t index) { | ||
| 222 | return DynamicObjectCast<T>(move_objects.at(index)); | ||
| 223 | } | ||
| 224 | |||
| 225 | void AddMoveObject(KAutoObject* object) { | 215 | void AddMoveObject(KAutoObject* object) { |
| 226 | move_objects.emplace_back(object); | 216 | move_objects.emplace_back(object); |
| 227 | } | 217 | } |
diff --git a/src/core/hle/kernel/k_auto_object.h b/src/core/hle/kernel/k_auto_object.h index 64c012d44..fd6405a0e 100644 --- a/src/core/hle/kernel/k_auto_object.h +++ b/src/core/hle/kernel/k_auto_object.h | |||
| @@ -11,13 +11,14 @@ | |||
| 11 | #include "common/common_types.h" | 11 | #include "common/common_types.h" |
| 12 | #include "common/intrusive_red_black_tree.h" | 12 | #include "common/intrusive_red_black_tree.h" |
| 13 | #include "core/hle/kernel/k_class_token.h" | 13 | #include "core/hle/kernel/k_class_token.h" |
| 14 | #include "core/hle/kernel/object.h" | ||
| 15 | 14 | ||
| 16 | namespace Kernel { | 15 | namespace Kernel { |
| 17 | 16 | ||
| 18 | class KernelCore; | 17 | class KernelCore; |
| 19 | class Process; | 18 | class Process; |
| 20 | 19 | ||
| 20 | using Handle = u32; | ||
| 21 | |||
| 21 | #define KERNEL_AUTOOBJECT_TRAITS(CLASS, BASE_CLASS) \ | 22 | #define KERNEL_AUTOOBJECT_TRAITS(CLASS, BASE_CLASS) \ |
| 22 | NON_COPYABLE(CLASS); \ | 23 | NON_COPYABLE(CLASS); \ |
| 23 | NON_MOVEABLE(CLASS); \ | 24 | NON_MOVEABLE(CLASS); \ |
| @@ -48,7 +49,7 @@ public: | |||
| 48 | \ | 49 | \ |
| 49 | private: | 50 | private: |
| 50 | 51 | ||
| 51 | class KAutoObject : public Object { | 52 | class KAutoObject { |
| 52 | protected: | 53 | protected: |
| 53 | class TypeObj { | 54 | class TypeObj { |
| 54 | private: | 55 | private: |
| @@ -84,16 +85,17 @@ private: | |||
| 84 | KERNEL_AUTOOBJECT_TRAITS(KAutoObject, KAutoObject); | 85 | KERNEL_AUTOOBJECT_TRAITS(KAutoObject, KAutoObject); |
| 85 | 86 | ||
| 86 | private: | 87 | private: |
| 87 | std::atomic<u32> m_ref_count; | 88 | std::atomic<u32> m_ref_count{}; |
| 88 | 89 | ||
| 89 | protected: | 90 | protected: |
| 90 | KernelCore& kernel; | 91 | KernelCore& kernel; |
| 92 | std::string name; | ||
| 91 | 93 | ||
| 92 | public: | 94 | public: |
| 93 | static KAutoObject* Create(KAutoObject* ptr); | 95 | static KAutoObject* Create(KAutoObject* ptr); |
| 94 | 96 | ||
| 95 | public: | 97 | public: |
| 96 | explicit KAutoObject(KernelCore& kernel_) : Object{kernel_}, m_ref_count(0), kernel(kernel_) {} | 98 | explicit KAutoObject(KernelCore& kernel_) : kernel(kernel_) {} |
| 97 | virtual ~KAutoObject() {} | 99 | virtual ~KAutoObject() {} |
| 98 | 100 | ||
| 99 | // Destroy is responsible for destroying the auto object's resources when ref_count hits zero. | 101 | // Destroy is responsible for destroying the auto object's resources when ref_count hits zero. |
| @@ -205,6 +207,10 @@ public: | |||
| 205 | virtual u64 GetId() const { | 207 | virtual u64 GetId() const { |
| 206 | return reinterpret_cast<u64>(this); | 208 | return reinterpret_cast<u64>(this); |
| 207 | } | 209 | } |
| 210 | |||
| 211 | virtual const std::string& GetName() const { | ||
| 212 | return name; | ||
| 213 | } | ||
| 208 | }; | 214 | }; |
| 209 | 215 | ||
| 210 | template <typename T> | 216 | template <typename T> |
diff --git a/src/core/hle/kernel/k_client_port.h b/src/core/hle/kernel/k_client_port.h index 43a17f4a4..f971a8b2c 100644 --- a/src/core/hle/kernel/k_client_port.h +++ b/src/core/hle/kernel/k_client_port.h | |||
| @@ -51,26 +51,11 @@ public: | |||
| 51 | 51 | ||
| 52 | ResultCode CreateSession(KClientSession** out); | 52 | ResultCode CreateSession(KClientSession** out); |
| 53 | 53 | ||
| 54 | // DEPRECATED | ||
| 55 | |||
| 56 | std::string GetTypeName() const override { | ||
| 57 | return "ClientPort"; | ||
| 58 | } | ||
| 59 | std::string GetName() const override { | ||
| 60 | return name; | ||
| 61 | } | ||
| 62 | |||
| 63 | static constexpr HandleType HANDLE_TYPE = HandleType::ClientPort; | ||
| 64 | HandleType GetHandleType() const override { | ||
| 65 | return HANDLE_TYPE; | ||
| 66 | } | ||
| 67 | |||
| 68 | private: | 54 | private: |
| 69 | std::atomic<s32> num_sessions{}; | 55 | std::atomic<s32> num_sessions{}; |
| 70 | std::atomic<s32> peak_sessions{}; | 56 | std::atomic<s32> peak_sessions{}; |
| 71 | s32 max_sessions{}; | 57 | s32 max_sessions{}; |
| 72 | KPort* parent{}; | 58 | KPort* parent{}; |
| 73 | std::string name; | ||
| 74 | }; | 59 | }; |
| 75 | 60 | ||
| 76 | } // namespace Kernel | 61 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/k_client_session.h b/src/core/hle/kernel/k_client_session.h index c4b193773..1480597e2 100644 --- a/src/core/hle/kernel/k_client_session.h +++ b/src/core/hle/kernel/k_client_session.h | |||
| @@ -54,27 +54,8 @@ public: | |||
| 54 | 54 | ||
| 55 | void OnServerClosed(); | 55 | void OnServerClosed(); |
| 56 | 56 | ||
| 57 | // DEPRECATED | ||
| 58 | |||
| 59 | static constexpr HandleType HANDLE_TYPE = HandleType::ClientSession; | ||
| 60 | HandleType GetHandleType() const override { | ||
| 61 | return HANDLE_TYPE; | ||
| 62 | } | ||
| 63 | |||
| 64 | std::string GetTypeName() const override { | ||
| 65 | return "ClientSession"; | ||
| 66 | } | ||
| 67 | |||
| 68 | std::string GetName() const override { | ||
| 69 | return name; | ||
| 70 | } | ||
| 71 | |||
| 72 | private: | 57 | private: |
| 73 | /// The parent session, which links to the server endpoint. | ||
| 74 | KSession* parent{}; | 58 | KSession* parent{}; |
| 75 | |||
| 76 | /// Name of the client session (optional) | ||
| 77 | std::string name; | ||
| 78 | }; | 59 | }; |
| 79 | 60 | ||
| 80 | } // namespace Kernel | 61 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/k_event.h b/src/core/hle/kernel/k_event.h index 45634e401..f0b89f882 100644 --- a/src/core/hle/kernel/k_event.h +++ b/src/core/hle/kernel/k_event.h | |||
| @@ -48,17 +48,6 @@ public: | |||
| 48 | return writable_event; | 48 | return writable_event; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | // DEPRECATED | ||
| 52 | |||
| 53 | std::string GetTypeName() const override { | ||
| 54 | return "KEvent"; | ||
| 55 | } | ||
| 56 | |||
| 57 | static constexpr HandleType HANDLE_TYPE = HandleType::Event; | ||
| 58 | HandleType GetHandleType() const override { | ||
| 59 | return HANDLE_TYPE; | ||
| 60 | } | ||
| 61 | |||
| 62 | private: | 51 | private: |
| 63 | KReadableEvent readable_event; | 52 | KReadableEvent readable_event; |
| 64 | KWritableEvent writable_event; | 53 | KWritableEvent writable_event; |
diff --git a/src/core/hle/kernel/k_port.h b/src/core/hle/kernel/k_port.h index 68c8ed8df..f1b2838d8 100644 --- a/src/core/hle/kernel/k_port.h +++ b/src/core/hle/kernel/k_port.h | |||
| @@ -51,22 +51,6 @@ public: | |||
| 51 | return server; | 51 | return server; |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | // DEPRECATED | ||
| 55 | |||
| 56 | friend class ServerPort; | ||
| 57 | std::string GetTypeName() const override { | ||
| 58 | return "Port"; | ||
| 59 | } | ||
| 60 | std::string GetName() const override { | ||
| 61 | return name; | ||
| 62 | } | ||
| 63 | |||
| 64 | HandleType GetHandleType() const override { | ||
| 65 | return {}; | ||
| 66 | } | ||
| 67 | |||
| 68 | void Finalize() override {} | ||
| 69 | |||
| 70 | private: | 54 | private: |
| 71 | enum class State : u8 { | 55 | enum class State : u8 { |
| 72 | Invalid = 0, | 56 | Invalid = 0, |
| @@ -80,8 +64,6 @@ private: | |||
| 80 | KClientPort client; | 64 | KClientPort client; |
| 81 | State state{State::Invalid}; | 65 | State state{State::Invalid}; |
| 82 | bool is_light{}; | 66 | bool is_light{}; |
| 83 | |||
| 84 | std::string name; ///< Name of client port (optional) | ||
| 85 | }; | 67 | }; |
| 86 | 68 | ||
| 87 | } // namespace Kernel | 69 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/k_readable_event.h b/src/core/hle/kernel/k_readable_event.h index 4c22f0584..8514d065a 100644 --- a/src/core/hle/kernel/k_readable_event.h +++ b/src/core/hle/kernel/k_readable_event.h | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | 6 | ||
| 7 | #include "core/hle/kernel/k_auto_object.h" | 7 | #include "core/hle/kernel/k_auto_object.h" |
| 8 | #include "core/hle/kernel/k_synchronization_object.h" | 8 | #include "core/hle/kernel/k_synchronization_object.h" |
| 9 | #include "core/hle/kernel/object.h" | ||
| 10 | #include "core/hle/kernel/slab_helpers.h" | 9 | #include "core/hle/kernel/slab_helpers.h" |
| 11 | #include "core/hle/result.h" | 10 | #include "core/hle/result.h" |
| 12 | 11 | ||
| @@ -39,17 +38,6 @@ public: | |||
| 39 | ResultCode Clear(); | 38 | ResultCode Clear(); |
| 40 | ResultCode Reset(); | 39 | ResultCode Reset(); |
| 41 | 40 | ||
| 42 | // DEPRECATED | ||
| 43 | |||
| 44 | std::string GetTypeName() const override { | ||
| 45 | return "KReadableEvent"; | ||
| 46 | } | ||
| 47 | |||
| 48 | static constexpr HandleType HANDLE_TYPE = HandleType::ReadableEvent; | ||
| 49 | HandleType GetHandleType() const override { | ||
| 50 | return HANDLE_TYPE; | ||
| 51 | } | ||
| 52 | |||
| 53 | private: | 41 | private: |
| 54 | bool is_signaled{}; | 42 | bool is_signaled{}; |
| 55 | KEvent* parent{}; | 43 | KEvent* parent{}; |
diff --git a/src/core/hle/kernel/k_resource_limit.h b/src/core/hle/kernel/k_resource_limit.h index 483c66c33..66ebf32df 100644 --- a/src/core/hle/kernel/k_resource_limit.h +++ b/src/core/hle/kernel/k_resource_limit.h | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | #include "common/common_types.h" | 8 | #include "common/common_types.h" |
| 9 | #include "core/hle/kernel/k_light_condition_variable.h" | 9 | #include "core/hle/kernel/k_light_condition_variable.h" |
| 10 | #include "core/hle/kernel/k_light_lock.h" | 10 | #include "core/hle/kernel/k_light_lock.h" |
| 11 | #include "core/hle/kernel/object.h" | ||
| 12 | 11 | ||
| 13 | union ResultCode; | 12 | union ResultCode; |
| 14 | 13 | ||
| @@ -57,20 +56,6 @@ public: | |||
| 57 | 56 | ||
| 58 | static void PostDestroy([[maybe_unused]] uintptr_t arg) {} | 57 | static void PostDestroy([[maybe_unused]] uintptr_t arg) {} |
| 59 | 58 | ||
| 60 | // DEPRECATED | ||
| 61 | |||
| 62 | std::string GetTypeName() const override { | ||
| 63 | return "KResourceLimit"; | ||
| 64 | } | ||
| 65 | std::string GetName() const override { | ||
| 66 | return GetTypeName(); | ||
| 67 | } | ||
| 68 | |||
| 69 | static constexpr HandleType HANDLE_TYPE = HandleType::ResourceLimit; | ||
| 70 | HandleType GetHandleType() const override { | ||
| 71 | return HANDLE_TYPE; | ||
| 72 | } | ||
| 73 | |||
| 74 | private: | 59 | private: |
| 75 | using ResourceArray = std::array<s64, static_cast<std::size_t>(LimitableResource::Count)>; | 60 | using ResourceArray = std::array<s64, static_cast<std::size_t>(LimitableResource::Count)>; |
| 76 | ResourceArray limit_values{}; | 61 | ResourceArray limit_values{}; |
diff --git a/src/core/hle/kernel/k_server_port.cpp b/src/core/hle/kernel/k_server_port.cpp index fcc04abaa..5e44c48e2 100644 --- a/src/core/hle/kernel/k_server_port.cpp +++ b/src/core/hle/kernel/k_server_port.cpp | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | #include "core/hle/kernel/k_server_port.h" | 10 | #include "core/hle/kernel/k_server_port.h" |
| 11 | #include "core/hle/kernel/k_server_session.h" | 11 | #include "core/hle/kernel/k_server_session.h" |
| 12 | #include "core/hle/kernel/k_thread.h" | 12 | #include "core/hle/kernel/k_thread.h" |
| 13 | #include "core/hle/kernel/object.h" | ||
| 14 | #include "core/hle/kernel/svc_results.h" | 13 | #include "core/hle/kernel/svc_results.h" |
| 15 | 14 | ||
| 16 | namespace Kernel { | 15 | namespace Kernel { |
diff --git a/src/core/hle/kernel/k_server_port.h b/src/core/hle/kernel/k_server_port.h index 9f45ca3f4..a46fa8f54 100644 --- a/src/core/hle/kernel/k_server_port.h +++ b/src/core/hle/kernel/k_server_port.h | |||
| @@ -68,20 +68,6 @@ public: | |||
| 68 | virtual void Destroy() override; | 68 | virtual void Destroy() override; |
| 69 | virtual bool IsSignaled() const override; | 69 | virtual bool IsSignaled() const override; |
| 70 | 70 | ||
| 71 | // DEPRECATED | ||
| 72 | |||
| 73 | std::string GetTypeName() const override { | ||
| 74 | return "ServerPort"; | ||
| 75 | } | ||
| 76 | std::string GetName() const override { | ||
| 77 | return name; | ||
| 78 | } | ||
| 79 | |||
| 80 | static constexpr HandleType HANDLE_TYPE = HandleType::ServerPort; | ||
| 81 | HandleType GetHandleType() const override { | ||
| 82 | return HANDLE_TYPE; | ||
| 83 | } | ||
| 84 | |||
| 85 | private: | 71 | private: |
| 86 | void CleanupSessions(); | 72 | void CleanupSessions(); |
| 87 | 73 | ||
| @@ -89,7 +75,6 @@ private: | |||
| 89 | SessionList session_list; | 75 | SessionList session_list; |
| 90 | HLEHandler hle_handler; | 76 | HLEHandler hle_handler; |
| 91 | KPort* parent{}; | 77 | KPort* parent{}; |
| 92 | std::string name; | ||
| 93 | }; | 78 | }; |
| 94 | 79 | ||
| 95 | } // namespace Kernel | 80 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/k_server_session.h b/src/core/hle/kernel/k_server_session.h index d748754d0..4a54e6634 100644 --- a/src/core/hle/kernel/k_server_session.h +++ b/src/core/hle/kernel/k_server_session.h | |||
| @@ -103,21 +103,6 @@ public: | |||
| 103 | convert_to_domain = true; | 103 | convert_to_domain = true; |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | // DEPRECATED | ||
| 107 | |||
| 108 | std::string GetTypeName() const override { | ||
| 109 | return "ServerSession"; | ||
| 110 | } | ||
| 111 | |||
| 112 | std::string GetName() const override { | ||
| 113 | return name; | ||
| 114 | } | ||
| 115 | |||
| 116 | static constexpr HandleType HANDLE_TYPE = HandleType::ServerSession; | ||
| 117 | HandleType GetHandleType() const override { | ||
| 118 | return HANDLE_TYPE; | ||
| 119 | } | ||
| 120 | |||
| 121 | private: | 106 | private: |
| 122 | /// Queues a sync request from the emulated application. | 107 | /// Queues a sync request from the emulated application. |
| 123 | ResultCode QueueSyncRequest(KThread* thread, Core::Memory::Memory& memory); | 108 | ResultCode QueueSyncRequest(KThread* thread, Core::Memory::Memory& memory); |
| @@ -138,9 +123,6 @@ private: | |||
| 138 | /// When set to True, converts the session to a domain at the end of the command | 123 | /// When set to True, converts the session to a domain at the end of the command |
| 139 | bool convert_to_domain{}; | 124 | bool convert_to_domain{}; |
| 140 | 125 | ||
| 141 | /// The name of this session (optional) | ||
| 142 | std::string name; | ||
| 143 | |||
| 144 | /// Thread to dispatch service requests | 126 | /// Thread to dispatch service requests |
| 145 | std::weak_ptr<ServiceThread> service_thread; | 127 | std::weak_ptr<ServiceThread> service_thread; |
| 146 | 128 | ||
diff --git a/src/core/hle/kernel/k_session.cpp b/src/core/hle/kernel/k_session.cpp index 6f4276189..6f5947ce7 100644 --- a/src/core/hle/kernel/k_session.cpp +++ b/src/core/hle/kernel/k_session.cpp | |||
| @@ -15,7 +15,7 @@ KSession::KSession(KernelCore& kernel) | |||
| 15 | : KAutoObjectWithSlabHeapAndContainer{kernel}, server{kernel}, client{kernel} {} | 15 | : KAutoObjectWithSlabHeapAndContainer{kernel}, server{kernel}, client{kernel} {} |
| 16 | KSession::~KSession() = default; | 16 | KSession::~KSession() = default; |
| 17 | 17 | ||
| 18 | void KSession::Initialize(KClientPort* port_, std::string&& name_) { | 18 | void KSession::Initialize(KClientPort* port_, const std::string& name_) { |
| 19 | // Increment reference count. | 19 | // Increment reference count. |
| 20 | // Because reference count is one on creation, this will result | 20 | // Because reference count is one on creation, this will result |
| 21 | // in a reference count of two. Thus, when both server and client are closed | 21 | // in a reference count of two. Thus, when both server and client are closed |
| @@ -32,7 +32,7 @@ void KSession::Initialize(KClientPort* port_, std::string&& name_) { | |||
| 32 | 32 | ||
| 33 | // Set state and name. | 33 | // Set state and name. |
| 34 | SetState(State::Normal); | 34 | SetState(State::Normal); |
| 35 | name = std::move(name_); | 35 | name = name_; |
| 36 | 36 | ||
| 37 | // Set our owner process. | 37 | // Set our owner process. |
| 38 | process = kernel.CurrentProcess(); | 38 | process = kernel.CurrentProcess(); |
diff --git a/src/core/hle/kernel/k_session.h b/src/core/hle/kernel/k_session.h index 1597cc608..f29195fa0 100644 --- a/src/core/hle/kernel/k_session.h +++ b/src/core/hle/kernel/k_session.h | |||
| @@ -28,7 +28,7 @@ public: | |||
| 28 | explicit KSession(KernelCore& kernel); | 28 | explicit KSession(KernelCore& kernel); |
| 29 | virtual ~KSession() override; | 29 | virtual ~KSession() override; |
| 30 | 30 | ||
| 31 | void Initialize(KClientPort* port_, std::string&& name_); | 31 | void Initialize(KClientPort* port_, const std::string& name_); |
| 32 | 32 | ||
| 33 | virtual void Finalize() override; | 33 | virtual void Finalize() override; |
| 34 | 34 | ||
| @@ -74,17 +74,6 @@ public: | |||
| 74 | return port; | 74 | return port; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | // DEPRECATED | ||
| 78 | |||
| 79 | std::string GetName() const override { | ||
| 80 | return name; | ||
| 81 | } | ||
| 82 | |||
| 83 | static constexpr HandleType HANDLE_TYPE = HandleType::Session; | ||
| 84 | HandleType GetHandleType() const override { | ||
| 85 | return HANDLE_TYPE; | ||
| 86 | } | ||
| 87 | |||
| 88 | private: | 77 | private: |
| 89 | void SetState(State state) { | 78 | void SetState(State state) { |
| 90 | atomic_state = static_cast<u8>(state); | 79 | atomic_state = static_cast<u8>(state); |
| @@ -100,7 +89,6 @@ private: | |||
| 100 | std::atomic<std::underlying_type<State>::type> atomic_state{ | 89 | std::atomic<std::underlying_type<State>::type> atomic_state{ |
| 101 | static_cast<std::underlying_type<State>::type>(State::Invalid)}; | 90 | static_cast<std::underlying_type<State>::type>(State::Invalid)}; |
| 102 | KClientPort* port{}; | 91 | KClientPort* port{}; |
| 103 | std::string name; | ||
| 104 | Process* process{}; | 92 | Process* process{}; |
| 105 | bool initialized{}; | 93 | bool initialized{}; |
| 106 | }; | 94 | }; |
diff --git a/src/core/hle/kernel/k_shared_memory.h b/src/core/hle/kernel/k_shared_memory.h index 93153ab20..9547546a5 100644 --- a/src/core/hle/kernel/k_shared_memory.h +++ b/src/core/hle/kernel/k_shared_memory.h | |||
| @@ -32,19 +32,6 @@ public: | |||
| 32 | KMemoryPermission owner_permission_, KMemoryPermission user_permission_, | 32 | KMemoryPermission owner_permission_, KMemoryPermission user_permission_, |
| 33 | PAddr physical_address_, std::size_t size_, std::string name_); | 33 | PAddr physical_address_, std::size_t size_, std::string name_); |
| 34 | 34 | ||
| 35 | std::string GetTypeName() const override { | ||
| 36 | return "SharedMemory"; | ||
| 37 | } | ||
| 38 | |||
| 39 | std::string GetName() const override { | ||
| 40 | return name; | ||
| 41 | } | ||
| 42 | |||
| 43 | static constexpr HandleType HANDLE_TYPE = HandleType::SharedMemory; | ||
| 44 | HandleType GetHandleType() const override { | ||
| 45 | return HANDLE_TYPE; | ||
| 46 | } | ||
| 47 | |||
| 48 | /** | 35 | /** |
| 49 | * Maps a shared memory block to an address in the target process' address space | 36 | * Maps a shared memory block to an address in the target process' address space |
| 50 | * @param target_process Process on which to map the memory block | 37 | * @param target_process Process on which to map the memory block |
diff --git a/src/core/hle/kernel/k_synchronization_object.h b/src/core/hle/kernel/k_synchronization_object.h index 5a99dbd46..a41dd1220 100644 --- a/src/core/hle/kernel/k_synchronization_object.h +++ b/src/core/hle/kernel/k_synchronization_object.h | |||
| @@ -51,13 +51,4 @@ private: | |||
| 51 | ThreadListNode* thread_list_tail{}; | 51 | ThreadListNode* thread_list_tail{}; |
| 52 | }; | 52 | }; |
| 53 | 53 | ||
| 54 | // Specialization of DynamicObjectCast for KSynchronizationObjects | ||
| 55 | template <> | ||
| 56 | inline KSynchronizationObject* DynamicObjectCast<KSynchronizationObject>(Object* object) { | ||
| 57 | if (object != nullptr && object->IsWaitable()) { | ||
| 58 | return reinterpret_cast<KSynchronizationObject*>(object); | ||
| 59 | } | ||
| 60 | return nullptr; | ||
| 61 | } | ||
| 62 | |||
| 63 | } // namespace Kernel | 54 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp index 5cc0a0064..c59f3113c 100644 --- a/src/core/hle/kernel/k_thread.cpp +++ b/src/core/hle/kernel/k_thread.cpp | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include "core/hle/kernel/k_thread.h" | 27 | #include "core/hle/kernel/k_thread.h" |
| 28 | #include "core/hle/kernel/k_thread_queue.h" | 28 | #include "core/hle/kernel/k_thread_queue.h" |
| 29 | #include "core/hle/kernel/kernel.h" | 29 | #include "core/hle/kernel/kernel.h" |
| 30 | #include "core/hle/kernel/object.h" | ||
| 31 | #include "core/hle/kernel/process.h" | 30 | #include "core/hle/kernel/process.h" |
| 32 | #include "core/hle/kernel/svc_results.h" | 31 | #include "core/hle/kernel/svc_results.h" |
| 33 | #include "core/hle/kernel/time_manager.h" | 32 | #include "core/hle/kernel/time_manager.h" |
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h index 5c1c17d48..5b943b18b 100644 --- a/src/core/hle/kernel/k_thread.h +++ b/src/core/hle/kernel/k_thread.h | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | #include "core/hle/kernel/k_light_lock.h" | 19 | #include "core/hle/kernel/k_light_lock.h" |
| 20 | #include "core/hle/kernel/k_spin_lock.h" | 20 | #include "core/hle/kernel/k_spin_lock.h" |
| 21 | #include "core/hle/kernel/k_synchronization_object.h" | 21 | #include "core/hle/kernel/k_synchronization_object.h" |
| 22 | #include "core/hle/kernel/object.h" | ||
| 23 | #include "core/hle/kernel/slab_helpers.h" | 22 | #include "core/hle/kernel/slab_helpers.h" |
| 24 | #include "core/hle/kernel/svc_common.h" | 23 | #include "core/hle/kernel/svc_common.h" |
| 25 | #include "core/hle/kernel/svc_types.h" | 24 | #include "core/hle/kernel/svc_types.h" |
| @@ -120,23 +119,10 @@ public: | |||
| 120 | using ThreadContext64 = Core::ARM_Interface::ThreadContext64; | 119 | using ThreadContext64 = Core::ARM_Interface::ThreadContext64; |
| 121 | using WaiterList = boost::intrusive::list<KThread>; | 120 | using WaiterList = boost::intrusive::list<KThread>; |
| 122 | 121 | ||
| 123 | [[nodiscard]] std::string GetName() const override { | ||
| 124 | return name; | ||
| 125 | } | ||
| 126 | |||
| 127 | void SetName(std::string new_name) { | 122 | void SetName(std::string new_name) { |
| 128 | name = std::move(new_name); | 123 | name = std::move(new_name); |
| 129 | } | 124 | } |
| 130 | 125 | ||
| 131 | [[nodiscard]] std::string GetTypeName() const override { | ||
| 132 | return "Thread"; | ||
| 133 | } | ||
| 134 | |||
| 135 | static constexpr HandleType HANDLE_TYPE = HandleType::Thread; | ||
| 136 | [[nodiscard]] HandleType GetHandleType() const override { | ||
| 137 | return HANDLE_TYPE; | ||
| 138 | } | ||
| 139 | |||
| 140 | /** | 126 | /** |
| 141 | * Gets the thread's current priority | 127 | * Gets the thread's current priority |
| 142 | * @return The current thread's priority | 128 | * @return The current thread's priority |
| @@ -728,7 +714,6 @@ private: | |||
| 728 | VAddr mutex_wait_address_for_debugging{}; | 714 | VAddr mutex_wait_address_for_debugging{}; |
| 729 | ThreadWaitReasonForDebugging wait_reason_for_debugging{}; | 715 | ThreadWaitReasonForDebugging wait_reason_for_debugging{}; |
| 730 | ThreadType thread_type_for_debugging{}; | 716 | ThreadType thread_type_for_debugging{}; |
| 731 | std::string name; | ||
| 732 | 717 | ||
| 733 | public: | 718 | public: |
| 734 | using ConditionVariableThreadTreeType = ConditionVariableThreadTree; | 719 | using ConditionVariableThreadTreeType = ConditionVariableThreadTree; |
diff --git a/src/core/hle/kernel/k_transfer_memory.h b/src/core/hle/kernel/k_transfer_memory.h index 3c3fa401b..1e4fa9323 100644 --- a/src/core/hle/kernel/k_transfer_memory.h +++ b/src/core/hle/kernel/k_transfer_memory.h | |||
| @@ -55,21 +55,6 @@ public: | |||
| 55 | return is_initialized ? size * PageSize : 0; | 55 | return is_initialized ? size * PageSize : 0; |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | // DEPRECATED | ||
| 59 | |||
| 60 | std::string GetTypeName() const override { | ||
| 61 | return "TransferMemory"; | ||
| 62 | } | ||
| 63 | |||
| 64 | std::string GetName() const override { | ||
| 65 | return GetTypeName(); | ||
| 66 | } | ||
| 67 | |||
| 68 | static constexpr HandleType HANDLE_TYPE = HandleType::TransferMemory; | ||
| 69 | HandleType GetHandleType() const override { | ||
| 70 | return HANDLE_TYPE; | ||
| 71 | } | ||
| 72 | |||
| 73 | private: | 58 | private: |
| 74 | Process* owner{}; | 59 | Process* owner{}; |
| 75 | VAddr address{}; | 60 | VAddr address{}; |
diff --git a/src/core/hle/kernel/k_writable_event.h b/src/core/hle/kernel/k_writable_event.h index 7cf43f77e..f5e083482 100644 --- a/src/core/hle/kernel/k_writable_event.h +++ b/src/core/hle/kernel/k_writable_event.h | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "core/hle/kernel/k_auto_object.h" | 7 | #include "core/hle/kernel/k_auto_object.h" |
| 8 | #include "core/hle/kernel/object.h" | ||
| 9 | #include "core/hle/kernel/slab_helpers.h" | 8 | #include "core/hle/kernel/slab_helpers.h" |
| 10 | #include "core/hle/result.h" | 9 | #include "core/hle/result.h" |
| 11 | 10 | ||
| @@ -34,17 +33,6 @@ public: | |||
| 34 | return parent; | 33 | return parent; |
| 35 | } | 34 | } |
| 36 | 35 | ||
| 37 | // DEPRECATED | ||
| 38 | |||
| 39 | std::string GetTypeName() const override { | ||
| 40 | return "KWritableEvent"; | ||
| 41 | } | ||
| 42 | |||
| 43 | static constexpr HandleType HANDLE_TYPE = HandleType::WritableEvent; | ||
| 44 | HandleType GetHandleType() const override { | ||
| 45 | return HANDLE_TYPE; | ||
| 46 | } | ||
| 47 | |||
| 48 | private: | 36 | private: |
| 49 | KEvent* parent{}; | 37 | KEvent* parent{}; |
| 50 | }; | 38 | }; |
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 723be6b51..de7f83423 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | #include "core/hle/kernel/k_auto_object.h" | 14 | #include "core/hle/kernel/k_auto_object.h" |
| 15 | #include "core/hle/kernel/k_slab_heap.h" | 15 | #include "core/hle/kernel/k_slab_heap.h" |
| 16 | #include "core/hle/kernel/memory_types.h" | 16 | #include "core/hle/kernel/memory_types.h" |
| 17 | #include "core/hle/kernel/object.h" | ||
| 18 | 17 | ||
| 19 | namespace Core { | 18 | namespace Core { |
| 20 | class CPUInterruptHandler; | 19 | class CPUInterruptHandler; |
| @@ -293,7 +292,6 @@ public: | |||
| 293 | } | 292 | } |
| 294 | 293 | ||
| 295 | private: | 294 | private: |
| 296 | friend class Object; | ||
| 297 | friend class Process; | 295 | friend class Process; |
| 298 | friend class KThread; | 296 | friend class KThread; |
| 299 | 297 | ||
diff --git a/src/core/hle/kernel/object.cpp b/src/core/hle/kernel/object.cpp deleted file mode 100644 index d7f40c403..000000000 --- a/src/core/hle/kernel/object.cpp +++ /dev/null | |||
| @@ -1,42 +0,0 @@ | |||
| 1 | // Copyright 2018 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "common/assert.h" | ||
| 6 | #include "core/hle/kernel/kernel.h" | ||
| 7 | #include "core/hle/kernel/object.h" | ||
| 8 | |||
| 9 | namespace Kernel { | ||
| 10 | |||
| 11 | Object::Object(KernelCore& kernel_) | ||
| 12 | : kernel{kernel_}, object_id{kernel_.CreateNewObjectID()}, name{"[UNKNOWN KERNEL OBJECT]"} {} | ||
| 13 | Object::Object(KernelCore& kernel_, std::string&& name_) | ||
| 14 | : kernel{kernel_}, object_id{kernel_.CreateNewObjectID()}, name{std::move(name_)} {} | ||
| 15 | Object::~Object() = default; | ||
| 16 | |||
| 17 | bool Object::IsWaitable() const { | ||
| 18 | switch (GetHandleType()) { | ||
| 19 | case HandleType::ReadableEvent: | ||
| 20 | case HandleType::Thread: | ||
| 21 | case HandleType::Process: | ||
| 22 | case HandleType::ServerPort: | ||
| 23 | case HandleType::ServerSession: | ||
| 24 | return true; | ||
| 25 | |||
| 26 | case HandleType::Unknown: | ||
| 27 | case HandleType::Event: | ||
| 28 | case HandleType::WritableEvent: | ||
| 29 | case HandleType::SharedMemory: | ||
| 30 | case HandleType::TransferMemory: | ||
| 31 | case HandleType::ResourceLimit: | ||
| 32 | case HandleType::ClientPort: | ||
| 33 | case HandleType::ClientSession: | ||
| 34 | case HandleType::Session: | ||
| 35 | return false; | ||
| 36 | } | ||
| 37 | |||
| 38 | UNREACHABLE(); | ||
| 39 | return false; | ||
| 40 | } | ||
| 41 | |||
| 42 | } // namespace Kernel | ||
diff --git a/src/core/hle/kernel/object.h b/src/core/hle/kernel/object.h deleted file mode 100644 index 03443b947..000000000 --- a/src/core/hle/kernel/object.h +++ /dev/null | |||
| @@ -1,98 +0,0 @@ | |||
| 1 | // Copyright 2018 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <atomic> | ||
| 8 | #include <memory> | ||
| 9 | #include <string> | ||
| 10 | |||
| 11 | #include "common/common_types.h" | ||
| 12 | |||
| 13 | namespace Kernel { | ||
| 14 | |||
| 15 | class KernelCore; | ||
| 16 | |||
| 17 | using Handle = u32; | ||
| 18 | |||
| 19 | enum class HandleType : u32 { | ||
| 20 | Unknown, | ||
| 21 | Event, | ||
| 22 | WritableEvent, | ||
| 23 | ReadableEvent, | ||
| 24 | SharedMemory, | ||
| 25 | TransferMemory, | ||
| 26 | Thread, | ||
| 27 | Process, | ||
| 28 | ResourceLimit, | ||
| 29 | ClientPort, | ||
| 30 | ServerPort, | ||
| 31 | ClientSession, | ||
| 32 | ServerSession, | ||
| 33 | Session, | ||
| 34 | }; | ||
| 35 | |||
| 36 | class Object : NonCopyable, public std::enable_shared_from_this<Object> { | ||
| 37 | public: | ||
| 38 | explicit Object(KernelCore& kernel_); | ||
| 39 | explicit Object(KernelCore& kernel_, std::string&& name_); | ||
| 40 | virtual ~Object(); | ||
| 41 | |||
| 42 | /// Returns a unique identifier for the object. For debugging purposes only. | ||
| 43 | u32 GetObjectId() const { | ||
| 44 | return object_id.load(std::memory_order_relaxed); | ||
| 45 | } | ||
| 46 | |||
| 47 | virtual std::string GetTypeName() const { | ||
| 48 | return "[BAD KERNEL OBJECT TYPE]"; | ||
| 49 | } | ||
| 50 | virtual std::string GetName() const { | ||
| 51 | return name; | ||
| 52 | } | ||
| 53 | virtual HandleType GetHandleType() const = 0; | ||
| 54 | |||
| 55 | void Close() { | ||
| 56 | // TODO(bunnei): This is a placeholder to decrement the reference count, which we will use | ||
| 57 | // when we implement KAutoObject instead of using shared_ptr. | ||
| 58 | } | ||
| 59 | |||
| 60 | /** | ||
| 61 | * Check if a thread can wait on the object | ||
| 62 | * @return True if a thread can wait on the object, otherwise false | ||
| 63 | */ | ||
| 64 | bool IsWaitable() const; | ||
| 65 | |||
| 66 | virtual void Finalize() = 0; | ||
| 67 | |||
| 68 | protected: | ||
| 69 | /// The kernel instance this object was created under. | ||
| 70 | KernelCore& kernel; | ||
| 71 | |||
| 72 | private: | ||
| 73 | std::atomic<u32> object_id{0}; | ||
| 74 | |||
| 75 | protected: | ||
| 76 | std::string name; | ||
| 77 | }; | ||
| 78 | |||
| 79 | template <typename T> | ||
| 80 | std::shared_ptr<T> SharedFrom(T* raw) { | ||
| 81 | if (raw == nullptr) | ||
| 82 | return nullptr; | ||
| 83 | return std::static_pointer_cast<T>(raw->shared_from_this()); | ||
| 84 | } | ||
| 85 | |||
| 86 | /** | ||
| 87 | * Attempts to downcast the given Object pointer to a pointer to T. | ||
| 88 | * @return Derived pointer to the object, or `nullptr` if `object` isn't of type T. | ||
| 89 | */ | ||
| 90 | template <typename T> | ||
| 91 | inline T* DynamicObjectCast(Object* object) { | ||
| 92 | if (object != nullptr && object->GetHandleType() == T::HANDLE_TYPE) { | ||
| 93 | return reinterpret_cast<T*>(object); | ||
| 94 | } | ||
| 95 | return nullptr; | ||
| 96 | } | ||
| 97 | |||
| 98 | } // namespace Kernel | ||
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h index 35fe16433..b775e1fd0 100644 --- a/src/core/hle/kernel/process.h +++ b/src/core/hle/kernel/process.h | |||
| @@ -92,18 +92,6 @@ public: | |||
| 92 | static ResultCode Initialize(Process* process, Core::System& system, std::string name, | 92 | static ResultCode Initialize(Process* process, Core::System& system, std::string name, |
| 93 | ProcessType type); | 93 | ProcessType type); |
| 94 | 94 | ||
| 95 | std::string GetTypeName() const override { | ||
| 96 | return "Process"; | ||
| 97 | } | ||
| 98 | std::string GetName() const override { | ||
| 99 | return name; | ||
| 100 | } | ||
| 101 | |||
| 102 | static constexpr HandleType HANDLE_TYPE = HandleType::Process; | ||
| 103 | HandleType GetHandleType() const override { | ||
| 104 | return HANDLE_TYPE; | ||
| 105 | } | ||
| 106 | |||
| 107 | /// Gets a reference to the process' page table. | 95 | /// Gets a reference to the process' page table. |
| 108 | KPageTable& PageTable() { | 96 | KPageTable& PageTable() { |
| 109 | return *page_table; | 97 | return *page_table; |
| @@ -468,9 +456,6 @@ private: | |||
| 468 | /// Process total image size | 456 | /// Process total image size |
| 469 | std::size_t image_size{}; | 457 | std::size_t image_size{}; |
| 470 | 458 | ||
| 471 | /// Name of this process | ||
| 472 | std::string name; | ||
| 473 | |||
| 474 | /// Schedule count of this process | 459 | /// Schedule count of this process |
| 475 | s64 schedule_count{}; | 460 | s64 schedule_count{}; |
| 476 | 461 | ||
diff --git a/src/core/hle/kernel/time_manager.h b/src/core/hle/kernel/time_manager.h index 0d7f05f30..2d175a9c4 100644 --- a/src/core/hle/kernel/time_manager.h +++ b/src/core/hle/kernel/time_manager.h | |||
| @@ -8,8 +8,6 @@ | |||
| 8 | #include <mutex> | 8 | #include <mutex> |
| 9 | #include <unordered_map> | 9 | #include <unordered_map> |
| 10 | 10 | ||
| 11 | #include "core/hle/kernel/object.h" | ||
| 12 | |||
| 13 | namespace Core { | 11 | namespace Core { |
| 14 | class System; | 12 | class System; |
| 15 | } // namespace Core | 13 | } // namespace Core |
diff --git a/src/core/hle/service/am/applets/applets.h b/src/core/hle/service/am/applets/applets.h index 229dc7a1e..5c0b4b459 100644 --- a/src/core/hle/service/am/applets/applets.h +++ b/src/core/hle/service/am/applets/applets.h | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | 9 | ||
| 10 | #include "common/swap.h" | 10 | #include "common/swap.h" |
| 11 | #include "core/hle/kernel/k_event.h" | 11 | #include "core/hle/kernel/k_event.h" |
| 12 | #include "core/hle/kernel/object.h" | ||
| 13 | 12 | ||
| 14 | union ResultCode; | 13 | union ResultCode; |
| 15 | 14 | ||
diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h index b0f575561..c050c9a44 100644 --- a/src/core/hle/service/hid/controllers/npad.h +++ b/src/core/hle/service/hid/controllers/npad.h | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | #include "common/quaternion.h" | 11 | #include "common/quaternion.h" |
| 12 | #include "common/settings.h" | 12 | #include "common/settings.h" |
| 13 | #include "core/frontend/input.h" | 13 | #include "core/frontend/input.h" |
| 14 | #include "core/hle/kernel/object.h" | ||
| 15 | #include "core/hle/service/hid/controllers/controller_base.h" | 14 | #include "core/hle/service/hid/controllers/controller_base.h" |
| 16 | 15 | ||
| 17 | namespace Kernel { | 16 | namespace Kernel { |
diff --git a/src/core/hle/service/hid/irs.h b/src/core/hle/service/hid/irs.h index a1bcb5859..9bc6462b0 100644 --- a/src/core/hle/service/hid/irs.h +++ b/src/core/hle/service/hid/irs.h | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "core/hle/kernel/object.h" | ||
| 8 | #include "core/hle/service/service.h" | 7 | #include "core/hle/service/service.h" |
| 9 | 8 | ||
| 10 | namespace Core { | 9 | namespace Core { |
diff --git a/src/core/hle/service/nvflinger/buffer_queue.h b/src/core/hle/service/nvflinger/buffer_queue.h index 044e51d08..4ec0b1506 100644 --- a/src/core/hle/service/nvflinger/buffer_queue.h +++ b/src/core/hle/service/nvflinger/buffer_queue.h | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | #include "common/swap.h" | 15 | #include "common/swap.h" |
| 16 | #include "core/hle/kernel/k_event.h" | 16 | #include "core/hle/kernel/k_event.h" |
| 17 | #include "core/hle/kernel/k_readable_event.h" | 17 | #include "core/hle/kernel/k_readable_event.h" |
| 18 | #include "core/hle/kernel/object.h" | ||
| 19 | #include "core/hle/service/nvdrv/nvdata.h" | 18 | #include "core/hle/service/nvdrv/nvdata.h" |
| 20 | 19 | ||
| 21 | namespace Kernel { | 20 | namespace Kernel { |
diff --git a/src/core/hle/service/nvflinger/nvflinger.h b/src/core/hle/service/nvflinger/nvflinger.h index 1c0aa8ec4..b0febdaec 100644 --- a/src/core/hle/service/nvflinger/nvflinger.h +++ b/src/core/hle/service/nvflinger/nvflinger.h | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | #include <vector> | 15 | #include <vector> |
| 16 | 16 | ||
| 17 | #include "common/common_types.h" | 17 | #include "common/common_types.h" |
| 18 | #include "core/hle/kernel/object.h" | ||
| 19 | 18 | ||
| 20 | namespace Common { | 19 | namespace Common { |
| 21 | class Event; | 20 | class Event; |
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index 076f50b0b..884951428 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | #include "common/common_types.h" | 11 | #include "common/common_types.h" |
| 12 | #include "common/spin_lock.h" | 12 | #include "common/spin_lock.h" |
| 13 | #include "core/hle/kernel/hle_ipc.h" | 13 | #include "core/hle/kernel/hle_ipc.h" |
| 14 | #include "core/hle/kernel/object.h" | ||
| 15 | 14 | ||
| 16 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 15 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| 17 | // Namespace Service | 16 | // Namespace Service |
diff --git a/src/core/hle/service/sm/controller.cpp b/src/core/hle/service/sm/controller.cpp index cb397fcc7..ee026e22f 100644 --- a/src/core/hle/service/sm/controller.cpp +++ b/src/core/hle/service/sm/controller.cpp | |||
| @@ -14,7 +14,7 @@ namespace Service::SM { | |||
| 14 | 14 | ||
| 15 | void Controller::ConvertCurrentObjectToDomain(Kernel::HLERequestContext& ctx) { | 15 | void Controller::ConvertCurrentObjectToDomain(Kernel::HLERequestContext& ctx) { |
| 16 | ASSERT_MSG(ctx.Session()->IsSession(), "Session is already a domain"); | 16 | ASSERT_MSG(ctx.Session()->IsSession(), "Session is already a domain"); |
| 17 | LOG_DEBUG(Service, "called, server_session={}", ctx.Session()->GetObjectId()); | 17 | LOG_DEBUG(Service, "called, server_session={}", ctx.Session()->GetId()); |
| 18 | ctx.Session()->ConvertToDomain(); | 18 | ctx.Session()->ConvertToDomain(); |
| 19 | 19 | ||
| 20 | IPC::ResponseBuilder rb{ctx, 3}; | 20 | IPC::ResponseBuilder rb{ctx, 3}; |
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index 71ab4b6f5..568effbc9 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp | |||
| @@ -140,7 +140,7 @@ void SM::GetService(Kernel::HLERequestContext& ctx) { | |||
| 140 | port->EnqueueSession(&session->GetServerSession()); | 140 | port->EnqueueSession(&session->GetServerSession()); |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | LOG_DEBUG(Service_SM, "called service={} -> session={}", name, session->GetObjectId()); | 143 | LOG_DEBUG(Service_SM, "called service={} -> session={}", name, session->GetId()); |
| 144 | IPC::ResponseBuilder rb{ctx, 2, 0, 1, IPC::ResponseBuilder::Flags::AlwaysMoveHandles}; | 144 | IPC::ResponseBuilder rb{ctx, 2, 0, 1, IPC::ResponseBuilder::Flags::AlwaysMoveHandles}; |
| 145 | rb.Push(RESULT_SUCCESS); | 145 | rb.Push(RESULT_SUCCESS); |
| 146 | rb.PushMoveObjects(session->GetClientSession()); | 146 | rb.PushMoveObjects(session->GetClientSession()); |
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp index 317c42631..3ac4a9e2b 100644 --- a/src/yuzu/debugger/wait_tree.cpp +++ b/src/yuzu/debugger/wait_tree.cpp | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include "core/arm/arm_interface.h" | 13 | #include "core/arm/arm_interface.h" |
| 14 | #include "core/core.h" | 14 | #include "core/core.h" |
| 15 | #include "core/hle/kernel/handle_table.h" | 15 | #include "core/hle/kernel/handle_table.h" |
| 16 | #include "core/hle/kernel/k_class_token.h" | ||
| 16 | #include "core/hle/kernel/k_readable_event.h" | 17 | #include "core/hle/kernel/k_readable_event.h" |
| 17 | #include "core/hle/kernel/k_scheduler.h" | 18 | #include "core/hle/kernel/k_scheduler.h" |
| 18 | #include "core/hle/kernel/k_synchronization_object.h" | 19 | #include "core/hle/kernel/k_synchronization_object.h" |
| @@ -183,20 +184,20 @@ bool WaitTreeExpandableItem::IsExpandable() const { | |||
| 183 | } | 184 | } |
| 184 | 185 | ||
| 185 | QString WaitTreeSynchronizationObject::GetText() const { | 186 | QString WaitTreeSynchronizationObject::GetText() const { |
| 186 | // return tr("[%1]%2 %3") | 187 | return tr("[%1] %2 %3") |
| 187 | // .arg(object.GetObjectId()) | 188 | .arg(object.GetId()) |
| 188 | // .arg(QString::fromStdString(object.GetTypeName()), | 189 | .arg(QString::fromStdString(object.GetTypeObj().GetName()), |
| 189 | // QString::fromStdString(object.GetName())); | 190 | QString::fromStdString(object.GetName())); |
| 190 | |||
| 191 | return tr("UNIMPLEMENTED"); | ||
| 192 | } | 191 | } |
| 193 | 192 | ||
| 194 | std::unique_ptr<WaitTreeSynchronizationObject> WaitTreeSynchronizationObject::make( | 193 | std::unique_ptr<WaitTreeSynchronizationObject> WaitTreeSynchronizationObject::make( |
| 195 | const Kernel::KSynchronizationObject& object) { | 194 | const Kernel::KSynchronizationObject& object) { |
| 196 | switch (object.GetHandleType()) { | 195 | const auto type = |
| 197 | case Kernel::HandleType::ReadableEvent: | 196 | static_cast<Kernel::KClassTokenGenerator::ObjectType>(object.GetTypeObj().GetClassToken()); |
| 197 | switch (type) { | ||
| 198 | case Kernel::KClassTokenGenerator::ObjectType::KReadableEvent: | ||
| 198 | return std::make_unique<WaitTreeEvent>(static_cast<const Kernel::KReadableEvent&>(object)); | 199 | return std::make_unique<WaitTreeEvent>(static_cast<const Kernel::KReadableEvent&>(object)); |
| 199 | case Kernel::HandleType::Thread: | 200 | case Kernel::KClassTokenGenerator::ObjectType::KThread: |
| 200 | return std::make_unique<WaitTreeThread>(static_cast<const Kernel::KThread&>(object)); | 201 | return std::make_unique<WaitTreeThread>(static_cast<const Kernel::KThread&>(object)); |
| 201 | default: | 202 | default: |
| 202 | return std::make_unique<WaitTreeSynchronizationObject>(object); | 203 | return std::make_unique<WaitTreeSynchronizationObject>(object); |
| @@ -206,12 +207,13 @@ std::unique_ptr<WaitTreeSynchronizationObject> WaitTreeSynchronizationObject::ma | |||
| 206 | std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeSynchronizationObject::GetChildren() const { | 207 | std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeSynchronizationObject::GetChildren() const { |
| 207 | std::vector<std::unique_ptr<WaitTreeItem>> list; | 208 | std::vector<std::unique_ptr<WaitTreeItem>> list; |
| 208 | 209 | ||
| 209 | const auto& threads = object.GetWaitingThreadsForDebugging(); | 210 | auto threads = object.GetWaitingThreadsForDebugging(); |
| 210 | if (threads.empty()) { | 211 | if (threads.empty()) { |
| 211 | list.push_back(std::make_unique<WaitTreeText>(tr("waited by no thread"))); | 212 | list.push_back(std::make_unique<WaitTreeText>(tr("waited by no thread"))); |
| 212 | } else { | 213 | } else { |
| 213 | list.push_back(std::make_unique<WaitTreeThreadList>(threads)); | 214 | list.push_back(std::make_unique<WaitTreeThreadList>(std::move(threads))); |
| 214 | } | 215 | } |
| 216 | |||
| 215 | return list; | 217 | return list; |
| 216 | } | 218 | } |
| 217 | 219 | ||
| @@ -379,8 +381,8 @@ WaitTreeEvent::WaitTreeEvent(const Kernel::KReadableEvent& object) | |||
| 379 | : WaitTreeSynchronizationObject(object) {} | 381 | : WaitTreeSynchronizationObject(object) {} |
| 380 | WaitTreeEvent::~WaitTreeEvent() = default; | 382 | WaitTreeEvent::~WaitTreeEvent() = default; |
| 381 | 383 | ||
| 382 | WaitTreeThreadList::WaitTreeThreadList(const std::vector<Kernel::KThread*>& list) | 384 | WaitTreeThreadList::WaitTreeThreadList(std::vector<Kernel::KThread*>&& list) |
| 383 | : thread_list(list) {} | 385 | : thread_list(std::move(list)) {} |
| 384 | WaitTreeThreadList::~WaitTreeThreadList() = default; | 386 | WaitTreeThreadList::~WaitTreeThreadList() = default; |
| 385 | 387 | ||
| 386 | QString WaitTreeThreadList::GetText() const { | 388 | QString WaitTreeThreadList::GetText() const { |
diff --git a/src/yuzu/debugger/wait_tree.h b/src/yuzu/debugger/wait_tree.h index bf8120a71..3dd4acab0 100644 --- a/src/yuzu/debugger/wait_tree.h +++ b/src/yuzu/debugger/wait_tree.h | |||
| @@ -11,8 +11,9 @@ | |||
| 11 | #include <QAbstractItemModel> | 11 | #include <QAbstractItemModel> |
| 12 | #include <QDockWidget> | 12 | #include <QDockWidget> |
| 13 | #include <QTreeView> | 13 | #include <QTreeView> |
| 14 | |||
| 14 | #include "common/common_types.h" | 15 | #include "common/common_types.h" |
| 15 | #include "core/hle/kernel/object.h" | 16 | #include "core/hle/kernel/k_auto_object.h" |
| 16 | 17 | ||
| 17 | class EmuThread; | 18 | class EmuThread; |
| 18 | 19 | ||
| @@ -149,14 +150,14 @@ public: | |||
| 149 | class WaitTreeThreadList : public WaitTreeExpandableItem { | 150 | class WaitTreeThreadList : public WaitTreeExpandableItem { |
| 150 | Q_OBJECT | 151 | Q_OBJECT |
| 151 | public: | 152 | public: |
| 152 | explicit WaitTreeThreadList(const std::vector<Kernel::KThread*>& list); | 153 | explicit WaitTreeThreadList(std::vector<Kernel::KThread*>&& list); |
| 153 | ~WaitTreeThreadList() override; | 154 | ~WaitTreeThreadList() override; |
| 154 | 155 | ||
| 155 | QString GetText() const override; | 156 | QString GetText() const override; |
| 156 | std::vector<std::unique_ptr<WaitTreeItem>> GetChildren() const override; | 157 | std::vector<std::unique_ptr<WaitTreeItem>> GetChildren() const override; |
| 157 | 158 | ||
| 158 | private: | 159 | private: |
| 159 | const std::vector<Kernel::KThread*>& thread_list; | 160 | std::vector<Kernel::KThread*> thread_list; |
| 160 | }; | 161 | }; |
| 161 | 162 | ||
| 162 | class WaitTreeModel : public QAbstractItemModel { | 163 | class WaitTreeModel : public QAbstractItemModel { |