summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-01-15 01:25:37 +0100
committerbunnei <bunneidev@gmail.com>2022-01-15 01:44:14 +0100
commitc905044e1bdd7b602ae43e053b57bae03c47244a (patch)
treebc9987b3010c8883de4ac9c2c94e620b417ed238
parentcore: hle: kernel: Add KWorkerTask and KWorkerTaskManager. (diff)
downloadyuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.gz
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.bz2
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.lz
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.xz
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.zst
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.zip
-rw-r--r--src/core/hle/kernel/kernel.cpp11
-rw-r--r--src/core/hle/kernel/kernel.h7
2 files changed, 18 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index e1e17db13..93c0cdaee 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -37,6 +37,7 @@
#include "core/hle/kernel/k_shared_memory.h"
#include "core/hle/kernel/k_slab_heap.h"
#include "core/hle/kernel/k_thread.h"
+#include "core/hle/kernel/k_worker_task_manager.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/physical_core.h"
#include "core/hle/kernel/service_thread.h"
@@ -798,6 +799,8 @@ struct KernelCore::Impl {
std::array<u64, Core::Hardware::NUM_CPU_CORES> svc_ticks{};
+ KWorkerTaskManager worker_task_manager;
+
// System context
Core::System& system;
};
@@ -1138,6 +1141,14 @@ const Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() const {
return impl->slab_resource_counts;
}
+KWorkerTaskManager& KernelCore::WorkerTaskManager() {
+ return impl->worker_task_manager;
+}
+
+const KWorkerTaskManager& KernelCore::WorkerTaskManager() const {
+ return impl->worker_task_manager;
+}
+
bool KernelCore::IsPhantomModeForSingleCore() const {
return impl->IsPhantomModeForSingleCore();
}
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index b9b423908..0e04fc3bb 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -52,6 +52,7 @@ class KSharedMemory;
class KSharedMemoryInfo;
class KThread;
class KTransferMemory;
+class KWorkerTaskManager;
class KWritableEvent;
class KCodeMemory;
class PhysicalCore;
@@ -343,6 +344,12 @@ public:
/// Gets the current slab resource counts.
const Init::KSlabResourceCounts& SlabResourceCounts() const;
+ /// Gets the current worker task manager, used for dispatching KThread/KProcess tasks.
+ KWorkerTaskManager& WorkerTaskManager();
+
+ /// Gets the current worker task manager, used for dispatching KThread/KProcess tasks.
+ const KWorkerTaskManager& WorkerTaskManager() const;
+
private:
friend class KProcess;
friend class KThread;