summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2022-01-14 16:25:37 -0800
committerGravatar bunnei2022-01-14 16:44:14 -0800
commitc905044e1bdd7b602ae43e053b57bae03c47244a (patch)
treebc9987b3010c8883de4ac9c2c94e620b417ed238 /src
parentcore: hle: kernel: Add KWorkerTask and KWorkerTaskManager. (diff)
downloadyuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.gz
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.xz
yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.zip
core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.
Diffstat (limited to 'src')
-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 @@
37#include "core/hle/kernel/k_shared_memory.h" 37#include "core/hle/kernel/k_shared_memory.h"
38#include "core/hle/kernel/k_slab_heap.h" 38#include "core/hle/kernel/k_slab_heap.h"
39#include "core/hle/kernel/k_thread.h" 39#include "core/hle/kernel/k_thread.h"
40#include "core/hle/kernel/k_worker_task_manager.h"
40#include "core/hle/kernel/kernel.h" 41#include "core/hle/kernel/kernel.h"
41#include "core/hle/kernel/physical_core.h" 42#include "core/hle/kernel/physical_core.h"
42#include "core/hle/kernel/service_thread.h" 43#include "core/hle/kernel/service_thread.h"
@@ -798,6 +799,8 @@ struct KernelCore::Impl {
798 799
799 std::array<u64, Core::Hardware::NUM_CPU_CORES> svc_ticks{}; 800 std::array<u64, Core::Hardware::NUM_CPU_CORES> svc_ticks{};
800 801
802 KWorkerTaskManager worker_task_manager;
803
801 // System context 804 // System context
802 Core::System& system; 805 Core::System& system;
803}; 806};
@@ -1138,6 +1141,14 @@ const Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() const {
1138 return impl->slab_resource_counts; 1141 return impl->slab_resource_counts;
1139} 1142}
1140 1143
1144KWorkerTaskManager& KernelCore::WorkerTaskManager() {
1145 return impl->worker_task_manager;
1146}
1147
1148const KWorkerTaskManager& KernelCore::WorkerTaskManager() const {
1149 return impl->worker_task_manager;
1150}
1151
1141bool KernelCore::IsPhantomModeForSingleCore() const { 1152bool KernelCore::IsPhantomModeForSingleCore() const {
1142 return impl->IsPhantomModeForSingleCore(); 1153 return impl->IsPhantomModeForSingleCore();
1143} 1154}
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;
52class KSharedMemoryInfo; 52class KSharedMemoryInfo;
53class KThread; 53class KThread;
54class KTransferMemory; 54class KTransferMemory;
55class KWorkerTaskManager;
55class KWritableEvent; 56class KWritableEvent;
56class KCodeMemory; 57class KCodeMemory;
57class PhysicalCore; 58class PhysicalCore;
@@ -343,6 +344,12 @@ public:
343 /// Gets the current slab resource counts. 344 /// Gets the current slab resource counts.
344 const Init::KSlabResourceCounts& SlabResourceCounts() const; 345 const Init::KSlabResourceCounts& SlabResourceCounts() const;
345 346
347 /// Gets the current worker task manager, used for dispatching KThread/KProcess tasks.
348 KWorkerTaskManager& WorkerTaskManager();
349
350 /// Gets the current worker task manager, used for dispatching KThread/KProcess tasks.
351 const KWorkerTaskManager& WorkerTaskManager() const;
352
346private: 353private:
347 friend class KProcess; 354 friend class KProcess;
348 friend class KThread; 355 friend class KThread;