hle: kernel: Breakup InitializeMemoryLayout.

master
bunnei 2021-03-23 18:47:16 +07:00
parent fb91647bca
commit 10d6e9f32b
1 changed files with 7 additions and 3 deletions

@ -269,9 +269,7 @@ struct KernelCore::Impl {
return schedulers[thread_id]->GetCurrentThread(); return schedulers[thread_id]->GetCurrentThread();
} }
void InitializeMemoryLayout() { void DeriveInitialMemoryLayout(KMemoryLayout& memory_layout) {
KMemoryLayout memory_layout;
// Insert the root region for the virtual memory tree, from which all other regions will // Insert the root region for the virtual memory tree, from which all other regions will
// derive. // derive.
memory_layout.GetVirtualMemoryRegionTree().InsertDirectly( memory_layout.GetVirtualMemoryRegionTree().InsertDirectly(
@ -531,6 +529,12 @@ struct KernelCore::Impl {
// Cache all linear regions in their own trees for faster access, later. // Cache all linear regions in their own trees for faster access, later.
memory_layout.InitializeLinearMemoryRegionTrees(aligned_linear_phys_start, memory_layout.InitializeLinearMemoryRegionTrees(aligned_linear_phys_start,
linear_region_start); linear_region_start);
}
void InitializeMemoryLayout() {
// Derive the initial memory layout from the emulated board
KMemoryLayout memory_layout;
DeriveInitialMemoryLayout(memory_layout);
const auto system_pool = memory_layout.GetKernelSystemPoolRegionPhysicalExtents(); const auto system_pool = memory_layout.GetKernelSystemPoolRegionPhysicalExtents();
const auto applet_pool = memory_layout.GetKernelAppletPoolRegionPhysicalExtents(); const auto applet_pool = memory_layout.GetKernelAppletPoolRegionPhysicalExtents();