summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.h
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2020-01-25 18:55:32 -0400
committerGravatar Fernando Sahmkow2020-01-25 18:55:32 -0400
commit4d6a86b03fe6ae0d98838a21613b66d5196150af (patch)
tree21f4b8e63e6435b2d816936af8b494882a3cdfb2 /src/core/hle/kernel/kernel.h
parentKernel: Implement Physical Core. (diff)
downloadyuzu-4d6a86b03fe6ae0d98838a21613b66d5196150af.tar.gz
yuzu-4d6a86b03fe6ae0d98838a21613b66d5196150af.tar.xz
yuzu-4d6a86b03fe6ae0d98838a21613b66d5196150af.zip
Core: Refactor CPU Management.
This commit moves ARM Interface and Scheduler handling into the kernel.
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r--src/core/hle/kernel/kernel.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 3bf0068ed..536068f74 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -11,6 +11,7 @@
11#include "core/hle/kernel/object.h" 11#include "core/hle/kernel/object.h"
12 12
13namespace Core { 13namespace Core {
14class ExclusiveMonitor;
14class System; 15class System;
15} 16}
16 17
@@ -25,6 +26,7 @@ class AddressArbiter;
25class ClientPort; 26class ClientPort;
26class GlobalScheduler; 27class GlobalScheduler;
27class HandleTable; 28class HandleTable;
29class PhysicalCore;
28class Process; 30class Process;
29class ResourceLimit; 31class ResourceLimit;
30class Thread; 32class Thread;
@@ -84,6 +86,21 @@ public:
84 /// Gets the sole instance of the global scheduler 86 /// Gets the sole instance of the global scheduler
85 const Kernel::GlobalScheduler& GlobalScheduler() const; 87 const Kernel::GlobalScheduler& GlobalScheduler() const;
86 88
89 /// Gets the an instance of the respective physical CPU core.
90 Kernel::PhysicalCore& PhysicalCore(std::size_t id);
91
92 /// Gets the an instance of the respective physical CPU core.
93 const Kernel::PhysicalCore& PhysicalCore(std::size_t id) const;
94
95 /// Stops execution of 'id' core, in order to reschedule a new thread.
96 void PrepareReschedule(std::size_t id);
97
98 Core::ExclusiveMonitor& GetExclusiveMonitor();
99
100 const Core::ExclusiveMonitor& GetExclusiveMonitor() const;
101
102 void InvalidateAllInstructionCaches();
103
87 /// Adds a port to the named port table 104 /// Adds a port to the named port table
88 void AddNamedPort(std::string name, std::shared_ptr<ClientPort> port); 105 void AddNamedPort(std::string name, std::shared_ptr<ClientPort> port);
89 106