From a434fdcb102e96ddf564dc0973d7073d49bf19fc Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 2 May 2018 22:36:51 -0400 Subject: core: Implement multicore support. --- src/core/hle/kernel/thread.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/core/hle/kernel/thread.h') diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index e0a3c0934..0a3bb1183 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include @@ -56,6 +57,7 @@ enum class ThreadWakeupReason { namespace Kernel { class Process; +class Scheduler; class Thread final : public WaitObject { public: @@ -240,6 +242,8 @@ public: // available. In case of a timeout, the object will be nullptr. std::function wakeup_callback; + std::shared_ptr scheduler; + private: Thread(); ~Thread() override; -- cgit v1.2.3 From 6ea8b3ef60bba657ca10c7e62dd849be9217faf3 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 5 May 2018 23:03:01 -0400 Subject: thread: Implement ChangeCore function. --- src/core/hle/kernel/thread.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/core/hle/kernel/thread.h') diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 0a3bb1183..3dda548ad 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -120,6 +120,9 @@ public: /// Recalculates the current priority taking into account priority inheritance. void UpdatePriority(); + /// Changes the core that the thread is running or scheduled to run on. + void ChangeCore(u32 core, u64 mask); + /** * Gets the thread's thread ID * @return The thread's ID @@ -244,6 +247,9 @@ public: std::shared_ptr scheduler; + u32 ideal_core{0xFFFFFFFF}; + u64 mask{0x1}; + private: Thread(); ~Thread() override; -- cgit v1.2.3 From 46ec9a9bc924aa1151db349541976521b72c41da Mon Sep 17 00:00:00 2001 From: bunnei Date: Thu, 10 May 2018 19:12:46 -0400 Subject: thread: Rename mask to affinity_masks. --- src/core/hle/kernel/thread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/hle/kernel/thread.h') diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 3dda548ad..1d2da6d50 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -248,7 +248,7 @@ public: std::shared_ptr scheduler; u32 ideal_core{0xFFFFFFFF}; - u64 mask{0x1}; + u64 affinity_mask{0x1}; private: Thread(); -- cgit v1.2.3