diff options
| author | 2019-03-05 12:28:10 -0500 | |
|---|---|---|
| committer | 2019-03-05 15:47:03 -0500 | |
| commit | c161389a0f0b0fe3b9d6400c45fd87152f2cb14c (patch) | |
| tree | b050bdbd77611a1205028b6307f4aca72e1c7417 /src/core/hle/kernel/kernel.h | |
| parent | kernel/address_arbiter: Minor tidying up (diff) | |
| download | yuzu-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.h | 19 |
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 @@ | |||
| 11 | template <typename T> | 11 | template <typename T> |
| 12 | class ResultVal; | 12 | class ResultVal; |
| 13 | 13 | ||
| 14 | namespace Core { | ||
| 15 | class System; | ||
| 16 | } | ||
| 17 | |||
| 14 | namespace Core::Timing { | 18 | namespace Core::Timing { |
| 15 | class CoreTiming; | 19 | class CoreTiming; |
| 16 | struct EventType; | 20 | struct 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 | ||
| 33 | public: | 37 | public: |
| 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(); |