diff options
| author | 2019-03-29 17:02:57 -0400 | |
|---|---|---|
| committer | 2019-10-15 11:55:07 -0400 | |
| commit | 57a71f899a95ccaa2984c1cb35c083221a29fd6e (patch) | |
| tree | 497f639114e7d26b9030600fb58d2474cc2883f0 /src/core/hle/kernel | |
| parent | Addapt thread class to the new Scheduler (diff) | |
| download | yuzu-57a71f899a95ccaa2984c1cb35c083221a29fd6e.tar.gz yuzu-57a71f899a95ccaa2984c1cb35c083221a29fd6e.tar.xz yuzu-57a71f899a95ccaa2984c1cb35c083221a29fd6e.zip | |
Add interfacing to the Global Scheduler
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.h | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 799e5e0d8..b4fd1d3f3 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | #include "core/hle/kernel/kernel.h" | 18 | #include "core/hle/kernel/kernel.h" |
| 19 | #include "core/hle/kernel/process.h" | 19 | #include "core/hle/kernel/process.h" |
| 20 | #include "core/hle/kernel/resource_limit.h" | 20 | #include "core/hle/kernel/resource_limit.h" |
| 21 | #include "core/hle/kernel/scheduler.h" | ||
| 21 | #include "core/hle/kernel/thread.h" | 22 | #include "core/hle/kernel/thread.h" |
| 22 | #include "core/hle/lock.h" | 23 | #include "core/hle/lock.h" |
| 23 | #include "core/hle/result.h" | 24 | #include "core/hle/result.h" |
| @@ -140,6 +141,7 @@ struct KernelCore::Impl { | |||
| 140 | // Lists all processes that exist in the current session. | 141 | // Lists all processes that exist in the current session. |
| 141 | std::vector<SharedPtr<Process>> process_list; | 142 | std::vector<SharedPtr<Process>> process_list; |
| 142 | Process* current_process = nullptr; | 143 | Process* current_process = nullptr; |
| 144 | Kernel::GlobalScheduler global_scheduler; | ||
| 143 | 145 | ||
| 144 | SharedPtr<ResourceLimit> system_resource_limit; | 146 | SharedPtr<ResourceLimit> system_resource_limit; |
| 145 | 147 | ||
| @@ -203,6 +205,14 @@ const std::vector<SharedPtr<Process>>& KernelCore::GetProcessList() const { | |||
| 203 | return impl->process_list; | 205 | return impl->process_list; |
| 204 | } | 206 | } |
| 205 | 207 | ||
| 208 | Kernel::GlobalScheduler& KernelCore::GlobalScheduler() { | ||
| 209 | return impl->global_scheduler; | ||
| 210 | } | ||
| 211 | |||
| 212 | const Kernel::GlobalScheduler& KernelCore::GlobalScheduler() const { | ||
| 213 | return impl->global_scheduler; | ||
| 214 | } | ||
| 215 | |||
| 206 | void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) { | 216 | void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) { |
| 207 | impl->named_ports.emplace(std::move(name), std::move(port)); | 217 | impl->named_ports.emplace(std::move(name), std::move(port)); |
| 208 | } | 218 | } |
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 0cc44ee76..f9f5bdc88 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h | |||
| @@ -25,6 +25,7 @@ class HandleTable; | |||
| 25 | class Process; | 25 | class Process; |
| 26 | class ResourceLimit; | 26 | class ResourceLimit; |
| 27 | class Thread; | 27 | class Thread; |
| 28 | class GlobalScheduler; | ||
| 28 | 29 | ||
| 29 | /// Represents a single instance of the kernel. | 30 | /// Represents a single instance of the kernel. |
| 30 | class KernelCore { | 31 | class KernelCore { |
| @@ -75,6 +76,12 @@ public: | |||
| 75 | /// Retrieves the list of processes. | 76 | /// Retrieves the list of processes. |
| 76 | const std::vector<SharedPtr<Process>>& GetProcessList() const; | 77 | const std::vector<SharedPtr<Process>>& GetProcessList() const; |
| 77 | 78 | ||
| 79 | /// Gets the sole instance of the global scheduler | ||
| 80 | Kernel::GlobalScheduler& GlobalScheduler(); | ||
| 81 | |||
| 82 | /// Gets the sole instance of the global scheduler | ||
| 83 | const Kernel::GlobalScheduler& GlobalScheduler() const; | ||
| 84 | |||
| 78 | /// Adds a port to the named port table | 85 | /// Adds a port to the named port table |
| 79 | void AddNamedPort(std::string name, SharedPtr<ClientPort> port); | 86 | void AddNamedPort(std::string name, SharedPtr<ClientPort> port); |
| 80 | 87 | ||