diff options
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 5ebd47e49..32bbf2d9b 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -69,6 +69,7 @@ struct KernelCore::Impl { | |||
| 69 | InitializePhysicalCores(); | 69 | InitializePhysicalCores(); |
| 70 | 70 | ||
| 71 | // Derive the initial memory layout from the emulated board | 71 | // Derive the initial memory layout from the emulated board |
| 72 | Init::InitializeSlabResourceCounts(kernel); | ||
| 72 | KMemoryLayout memory_layout; | 73 | KMemoryLayout memory_layout; |
| 73 | DeriveInitialMemoryLayout(memory_layout); | 74 | DeriveInitialMemoryLayout(memory_layout); |
| 74 | Init::InitializeSlabHeaps(system, memory_layout); | 75 | Init::InitializeSlabHeaps(system, memory_layout); |
| @@ -395,7 +396,7 @@ struct KernelCore::Impl { | |||
| 395 | 396 | ||
| 396 | // Determine the size of the slab region. | 397 | // Determine the size of the slab region. |
| 397 | const size_t slab_region_size = | 398 | const size_t slab_region_size = |
| 398 | Common::AlignUp(Init::CalculateTotalSlabHeapSize(), PageSize); | 399 | Common::AlignUp(Init::CalculateTotalSlabHeapSize(system.Kernel()), PageSize); |
| 399 | ASSERT(slab_region_size <= resource_region_size); | 400 | ASSERT(slab_region_size <= resource_region_size); |
| 400 | 401 | ||
| 401 | // Setup the slab region. | 402 | // Setup the slab region. |
| @@ -642,6 +643,7 @@ struct KernelCore::Impl { | |||
| 642 | std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context; | 643 | std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context; |
| 643 | Kernel::TimeManager time_manager; | 644 | Kernel::TimeManager time_manager; |
| 644 | 645 | ||
| 646 | Init::KSlabResourceCounts slab_resource_counts{}; | ||
| 645 | KResourceLimit* system_resource_limit{}; | 647 | KResourceLimit* system_resource_limit{}; |
| 646 | 648 | ||
| 647 | std::shared_ptr<Core::Timing::EventType> preemption_event; | 649 | std::shared_ptr<Core::Timing::EventType> preemption_event; |
| @@ -995,6 +997,14 @@ void KernelCore::ReleaseServiceThread(std::weak_ptr<Kernel::ServiceThread> servi | |||
| 995 | }); | 997 | }); |
| 996 | } | 998 | } |
| 997 | 999 | ||
| 1000 | Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() { | ||
| 1001 | return impl->slab_resource_counts; | ||
| 1002 | } | ||
| 1003 | |||
| 1004 | const Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() const { | ||
| 1005 | return impl->slab_resource_counts; | ||
| 1006 | } | ||
| 1007 | |||
| 998 | bool KernelCore::IsPhantomModeForSingleCore() const { | 1008 | bool KernelCore::IsPhantomModeForSingleCore() const { |
| 999 | return impl->IsPhantomModeForSingleCore(); | 1009 | return impl->IsPhantomModeForSingleCore(); |
| 1000 | } | 1010 | } |