diff options
| author | 2022-01-14 16:25:37 -0800 | |
|---|---|---|
| committer | 2022-01-14 16:44:14 -0800 | |
| commit | c905044e1bdd7b602ae43e053b57bae03c47244a (patch) | |
| tree | bc9987b3010c8883de4ac9c2c94e620b417ed238 | |
| parent | core: hle: kernel: Add KWorkerTask and KWorkerTaskManager. (diff) | |
| download | yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.gz yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.tar.xz yuzu-c905044e1bdd7b602ae43e053b57bae03c47244a.zip | |
core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 11 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.h | 7 |
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 | ||
| 1144 | KWorkerTaskManager& KernelCore::WorkerTaskManager() { | ||
| 1145 | return impl->worker_task_manager; | ||
| 1146 | } | ||
| 1147 | |||
| 1148 | const KWorkerTaskManager& KernelCore::WorkerTaskManager() const { | ||
| 1149 | return impl->worker_task_manager; | ||
| 1150 | } | ||
| 1151 | |||
| 1141 | bool KernelCore::IsPhantomModeForSingleCore() const { | 1152 | bool 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; | |||
| 52 | class KSharedMemoryInfo; | 52 | class KSharedMemoryInfo; |
| 53 | class KThread; | 53 | class KThread; |
| 54 | class KTransferMemory; | 54 | class KTransferMemory; |
| 55 | class KWorkerTaskManager; | ||
| 55 | class KWritableEvent; | 56 | class KWritableEvent; |
| 56 | class KCodeMemory; | 57 | class KCodeMemory; |
| 57 | class PhysicalCore; | 58 | class 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 | |||
| 346 | private: | 353 | private: |
| 347 | friend class KProcess; | 354 | friend class KProcess; |
| 348 | friend class KThread; | 355 | friend class KThread; |