summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2021-05-04 21:35:42 -0700
committerGravatar bunnei2021-05-05 16:40:54 -0700
commitb805ee653f3d178ed2b4b2e0a403bb0ab61dad8b (patch)
treefd54235441ff4c2a0986e106bf57c501c2c9982b /src/core/hle/kernel/kernel.cpp
parentfixup! hle: kernel: Migrate KSharedMemory to KAutoObject. (diff)
downloadyuzu-b805ee653f3d178ed2b4b2e0a403bb0ab61dad8b.tar.gz
yuzu-b805ee653f3d178ed2b4b2e0a403bb0ab61dad8b.tar.xz
yuzu-b805ee653f3d178ed2b4b2e0a403bb0ab61dad8b.zip
hle: kernel: Move slab resource counts to Kernel.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp12
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
1000Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() {
1001 return impl->slab_resource_counts;
1002}
1003
1004const Init::KSlabResourceCounts& KernelCore::SlabResourceCounts() const {
1005 return impl->slab_resource_counts;
1006}
1007
998bool KernelCore::IsPhantomModeForSingleCore() const { 1008bool KernelCore::IsPhantomModeForSingleCore() const {
999 return impl->IsPhantomModeForSingleCore(); 1009 return impl->IsPhantomModeForSingleCore();
1000} 1010}