summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.h
diff options
context:
space:
mode:
authorGravatar Lioncash2019-03-05 12:28:10 -0500
committerGravatar Lioncash2019-03-05 15:47:03 -0500
commitc161389a0f0b0fe3b9d6400c45fd87152f2cb14c (patch)
treeb050bdbd77611a1205028b6307f4aca72e1c7417 /src/core/hle/kernel/kernel.h
parentkernel/address_arbiter: Minor tidying up (diff)
downloadyuzu-c161389a0f0b0fe3b9d6400c45fd87152f2cb14c.tar.gz
yuzu-c161389a0f0b0fe3b9d6400c45fd87152f2cb14c.tar.xz
yuzu-c161389a0f0b0fe3b9d6400c45fd87152f2cb14c.zip
kernel/address_arbiter: Pass in system instance to constructor
Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r--src/core/hle/kernel/kernel.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 32b8ede0e..4d292aca9 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -11,6 +11,10 @@
11template <typename T> 11template <typename T>
12class ResultVal; 12class ResultVal;
13 13
14namespace Core {
15class System;
16}
17
14namespace Core::Timing { 18namespace Core::Timing {
15class CoreTiming; 19class CoreTiming;
16struct EventType; 20struct EventType;
@@ -31,7 +35,14 @@ private:
31 using NamedPortTable = std::unordered_map<std::string, SharedPtr<ClientPort>>; 35 using NamedPortTable = std::unordered_map<std::string, SharedPtr<ClientPort>>;
32 36
33public: 37public:
34 KernelCore(); 38 /// Constructs an instance of the kernel using the given System
39 /// instance as a context for any necessary system-related state,
40 /// such as threads, CPU core state, etc.
41 ///
42 /// @post After execution of the constructor, the provided System
43 /// object *must* outlive the kernel instance itself.
44 ///
45 explicit KernelCore(Core::System& system);
35 ~KernelCore(); 46 ~KernelCore();
36 47
37 KernelCore(const KernelCore&) = delete; 48 KernelCore(const KernelCore&) = delete;
@@ -41,11 +52,7 @@ public:
41 KernelCore& operator=(KernelCore&&) = delete; 52 KernelCore& operator=(KernelCore&&) = delete;
42 53
43 /// Resets the kernel to a clean slate for use. 54 /// Resets the kernel to a clean slate for use.
44 /// 55 void Initialize();
45 /// @param core_timing CoreTiming instance used to create any necessary
46 /// kernel-specific callback events.
47 ///
48 void Initialize(Core::Timing::CoreTiming& core_timing);
49 56
50 /// Clears all resources in use by the kernel instance. 57 /// Clears all resources in use by the kernel instance.
51 void Shutdown(); 58 void Shutdown();