diff options
| author | 2015-08-22 14:01:57 -0700 | |
|---|---|---|
| committer | 2015-08-22 14:01:57 -0700 | |
| commit | 3efb205a68d38fe377b2c27349d91ec4c6a2d390 (patch) | |
| tree | 4326d8394e66fec3831ce6b9851da689e5aa78e8 /src/core/hle/kernel/kernel.cpp | |
| parent | Merge pull request #1056 from lioncash/emitter (diff) | |
| parent | Kernel: Remove unused legacy heap MapBlock_* functions (diff) | |
| download | yuzu-3efb205a68d38fe377b2c27349d91ec4c6a2d390.tar.gz yuzu-3efb205a68d38fe377b2c27349d91ec4c6a2d390.tar.xz yuzu-3efb205a68d38fe377b2c27349d91ec4c6a2d390.zip | |
Merge pull request #1025 from yuriks/heap-management
Kernel: Correct(er) handling of Heap and Linear Heap allocations
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 5711c0405..7a401a965 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -7,11 +7,14 @@ | |||
| 7 | #include "common/assert.h" | 7 | #include "common/assert.h" |
| 8 | #include "common/logging/log.h" | 8 | #include "common/logging/log.h" |
| 9 | 9 | ||
| 10 | #include "core/hle/config_mem.h" | ||
| 10 | #include "core/hle/kernel/kernel.h" | 11 | #include "core/hle/kernel/kernel.h" |
| 11 | #include "core/hle/kernel/resource_limit.h" | 12 | #include "core/hle/kernel/memory.h" |
| 12 | #include "core/hle/kernel/process.h" | 13 | #include "core/hle/kernel/process.h" |
| 14 | #include "core/hle/kernel/resource_limit.h" | ||
| 13 | #include "core/hle/kernel/thread.h" | 15 | #include "core/hle/kernel/thread.h" |
| 14 | #include "core/hle/kernel/timer.h" | 16 | #include "core/hle/kernel/timer.h" |
| 17 | #include "core/hle/shared_page.h" | ||
| 15 | 18 | ||
| 16 | namespace Kernel { | 19 | namespace Kernel { |
| 17 | 20 | ||
| @@ -119,6 +122,13 @@ void HandleTable::Clear() { | |||
| 119 | 122 | ||
| 120 | /// Initialize the kernel | 123 | /// Initialize the kernel |
| 121 | void Init() { | 124 | void Init() { |
| 125 | ConfigMem::Init(); | ||
| 126 | SharedPage::Init(); | ||
| 127 | |||
| 128 | // TODO(yuriks): The memory type parameter needs to be determined by the ExHeader field instead | ||
| 129 | // For now it defaults to the one with a largest allocation to the app | ||
| 130 | Kernel::MemoryInit(2); // Allocates 96MB to the application | ||
| 131 | |||
| 122 | Kernel::ResourceLimitsInit(); | 132 | Kernel::ResourceLimitsInit(); |
| 123 | Kernel::ThreadingInit(); | 133 | Kernel::ThreadingInit(); |
| 124 | Kernel::TimersInit(); | 134 | Kernel::TimersInit(); |
| @@ -131,11 +141,14 @@ void Init() { | |||
| 131 | 141 | ||
| 132 | /// Shutdown the kernel | 142 | /// Shutdown the kernel |
| 133 | void Shutdown() { | 143 | void Shutdown() { |
| 144 | g_handle_table.Clear(); // Free all kernel objects | ||
| 145 | |||
| 134 | Kernel::ThreadingShutdown(); | 146 | Kernel::ThreadingShutdown(); |
| 147 | g_current_process = nullptr; | ||
| 148 | |||
| 135 | Kernel::TimersShutdown(); | 149 | Kernel::TimersShutdown(); |
| 136 | Kernel::ResourceLimitsShutdown(); | 150 | Kernel::ResourceLimitsShutdown(); |
| 137 | g_handle_table.Clear(); // Free all kernel objects | 151 | Kernel::MemoryShutdown(); |
| 138 | g_current_process = nullptr; | ||
| 139 | } | 152 | } |
| 140 | 153 | ||
| 141 | } // namespace | 154 | } // namespace |