summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp27
1 files changed, 1 insertions, 26 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 71bd466cf..b543f4083 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -76,7 +76,7 @@ struct KernelCore::Impl {
76 // Initialize kernel memory and resources. 76 // Initialize kernel memory and resources.
77 InitializeSystemResourceLimit(kernel, system.CoreTiming()); 77 InitializeSystemResourceLimit(kernel, system.CoreTiming());
78 InitializeMemoryLayout(); 78 InitializeMemoryLayout();
79 InitializePageSlab(); 79 Init::InitializeKPageBufferSlabHeap(system);
80 InitializeSchedulers(); 80 InitializeSchedulers();
81 InitializeSuspendThreads(); 81 InitializeSuspendThreads();
82 InitializePreemption(kernel); 82 InitializePreemption(kernel);
@@ -660,22 +660,6 @@ struct KernelCore::Impl {
660 time_phys_addr, time_size, "Time:SharedMemory"); 660 time_phys_addr, time_size, "Time:SharedMemory");
661 } 661 }
662 662
663 void InitializePageSlab() {
664 // Allocate slab heaps
665 user_slab_heap_pages =
666 std::make_unique<KSlabHeap<Page>>(KSlabHeap<Page>::AllocationType::Guest);
667
668 // TODO(ameerj): This should be derived, not hardcoded within the kernel
669 constexpr u64 user_slab_heap_size{0x3de000};
670 // Reserve slab heaps
671 ASSERT(
672 system_resource_limit->Reserve(LimitableResource::PhysicalMemory, user_slab_heap_size));
673 // Initialize slab heap
674 user_slab_heap_pages->Initialize(
675 system.DeviceMemory().GetPointer(Core::DramMemoryMap::SlabHeapBase),
676 user_slab_heap_size);
677 }
678
679 KClientPort* CreateNamedServicePort(std::string name) { 663 KClientPort* CreateNamedServicePort(std::string name) {
680 auto search = service_interface_factory.find(name); 664 auto search = service_interface_factory.find(name);
681 if (search == service_interface_factory.end()) { 665 if (search == service_interface_factory.end()) {
@@ -756,7 +740,6 @@ struct KernelCore::Impl {
756 740
757 // Kernel memory management 741 // Kernel memory management
758 std::unique_ptr<KMemoryManager> memory_manager; 742 std::unique_ptr<KMemoryManager> memory_manager;
759 std::unique_ptr<KSlabHeap<Page>> user_slab_heap_pages;
760 743
761 // Shared memory for services 744 // Shared memory for services
762 Kernel::KSharedMemory* hid_shared_mem{}; 745 Kernel::KSharedMemory* hid_shared_mem{};
@@ -1031,14 +1014,6 @@ const KMemoryManager& KernelCore::MemoryManager() const {
1031 return *impl->memory_manager; 1014 return *impl->memory_manager;
1032} 1015}
1033 1016
1034KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() {
1035 return *impl->user_slab_heap_pages;
1036}
1037
1038const KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() const {
1039 return *impl->user_slab_heap_pages;
1040}
1041
1042Kernel::KSharedMemory& KernelCore::GetHidSharedMem() { 1017Kernel::KSharedMemory& KernelCore::GetHidSharedMem() {
1043 return *impl->hid_shared_mem; 1018 return *impl->hid_shared_mem;
1044} 1019}