diff options
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 39c5182c5..331cf3a60 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -27,17 +27,17 @@ | |||
| 27 | #include "core/hardware_properties.h" | 27 | #include "core/hardware_properties.h" |
| 28 | #include "core/hle/kernel/client_port.h" | 28 | #include "core/hle/kernel/client_port.h" |
| 29 | #include "core/hle/kernel/handle_table.h" | 29 | #include "core/hle/kernel/handle_table.h" |
| 30 | #include "core/hle/kernel/k_memory_layout.h" | ||
| 31 | #include "core/hle/kernel/k_memory_manager.h" | ||
| 30 | #include "core/hle/kernel/k_resource_limit.h" | 32 | #include "core/hle/kernel/k_resource_limit.h" |
| 31 | #include "core/hle/kernel/k_scheduler.h" | 33 | #include "core/hle/kernel/k_scheduler.h" |
| 34 | #include "core/hle/kernel/k_shared_memory.h" | ||
| 35 | #include "core/hle/kernel/k_slab_heap.h" | ||
| 32 | #include "core/hle/kernel/k_thread.h" | 36 | #include "core/hle/kernel/k_thread.h" |
| 33 | #include "core/hle/kernel/kernel.h" | 37 | #include "core/hle/kernel/kernel.h" |
| 34 | #include "core/hle/kernel/memory/memory_layout.h" | ||
| 35 | #include "core/hle/kernel/memory/memory_manager.h" | ||
| 36 | #include "core/hle/kernel/memory/slab_heap.h" | ||
| 37 | #include "core/hle/kernel/physical_core.h" | 38 | #include "core/hle/kernel/physical_core.h" |
| 38 | #include "core/hle/kernel/process.h" | 39 | #include "core/hle/kernel/process.h" |
| 39 | #include "core/hle/kernel/service_thread.h" | 40 | #include "core/hle/kernel/service_thread.h" |
| 40 | #include "core/hle/kernel/shared_memory.h" | ||
| 41 | #include "core/hle/kernel/svc_results.h" | 41 | #include "core/hle/kernel/svc_results.h" |
| 42 | #include "core/hle/kernel/time_manager.h" | 42 | #include "core/hle/kernel/time_manager.h" |
| 43 | #include "core/hle/lock.h" | 43 | #include "core/hle/lock.h" |
| @@ -271,7 +271,7 @@ struct KernelCore::Impl { | |||
| 271 | 271 | ||
| 272 | void InitializeMemoryLayout() { | 272 | void InitializeMemoryLayout() { |
| 273 | // Initialize memory layout | 273 | // Initialize memory layout |
| 274 | constexpr Memory::MemoryLayout layout{Memory::MemoryLayout::GetDefaultLayout()}; | 274 | constexpr KMemoryLayout layout{KMemoryLayout::GetDefaultLayout()}; |
| 275 | constexpr std::size_t hid_size{0x40000}; | 275 | constexpr std::size_t hid_size{0x40000}; |
| 276 | constexpr std::size_t font_size{0x1100000}; | 276 | constexpr std::size_t font_size{0x1100000}; |
| 277 | constexpr std::size_t irs_size{0x8000}; | 277 | constexpr std::size_t irs_size{0x8000}; |
| @@ -282,36 +282,36 @@ struct KernelCore::Impl { | |||
| 282 | constexpr PAddr time_addr{layout.System().StartAddress() + hid_size + font_size + irs_size}; | 282 | constexpr PAddr time_addr{layout.System().StartAddress() + hid_size + font_size + irs_size}; |
| 283 | 283 | ||
| 284 | // Initialize memory manager | 284 | // Initialize memory manager |
| 285 | memory_manager = std::make_unique<Memory::MemoryManager>(); | 285 | memory_manager = std::make_unique<KMemoryManager>(); |
| 286 | memory_manager->InitializeManager(Memory::MemoryManager::Pool::Application, | 286 | memory_manager->InitializeManager(KMemoryManager::Pool::Application, |
| 287 | layout.Application().StartAddress(), | 287 | layout.Application().StartAddress(), |
| 288 | layout.Application().EndAddress()); | 288 | layout.Application().EndAddress()); |
| 289 | memory_manager->InitializeManager(Memory::MemoryManager::Pool::Applet, | 289 | memory_manager->InitializeManager(KMemoryManager::Pool::Applet, |
| 290 | layout.Applet().StartAddress(), | 290 | layout.Applet().StartAddress(), |
| 291 | layout.Applet().EndAddress()); | 291 | layout.Applet().EndAddress()); |
| 292 | memory_manager->InitializeManager(Memory::MemoryManager::Pool::System, | 292 | memory_manager->InitializeManager(KMemoryManager::Pool::System, |
| 293 | layout.System().StartAddress(), | 293 | layout.System().StartAddress(), |
| 294 | layout.System().EndAddress()); | 294 | layout.System().EndAddress()); |
| 295 | 295 | ||
| 296 | hid_shared_mem = Kernel::SharedMemory::Create( | 296 | hid_shared_mem = Kernel::KSharedMemory::Create( |
| 297 | system.Kernel(), system.DeviceMemory(), nullptr, | 297 | system.Kernel(), system.DeviceMemory(), nullptr, {hid_addr, hid_size / PageSize}, |
| 298 | {hid_addr, hid_size / Memory::PageSize}, Memory::MemoryPermission::None, | 298 | KMemoryPermission::None, KMemoryPermission::Read, hid_addr, hid_size, |
| 299 | Memory::MemoryPermission::Read, hid_addr, hid_size, "HID:SharedMemory"); | 299 | "HID:SharedMemory"); |
| 300 | font_shared_mem = Kernel::SharedMemory::Create( | 300 | font_shared_mem = Kernel::KSharedMemory::Create( |
| 301 | system.Kernel(), system.DeviceMemory(), nullptr, | 301 | system.Kernel(), system.DeviceMemory(), nullptr, {font_pa, font_size / PageSize}, |
| 302 | {font_pa, font_size / Memory::PageSize}, Memory::MemoryPermission::None, | 302 | KMemoryPermission::None, KMemoryPermission::Read, font_pa, font_size, |
| 303 | Memory::MemoryPermission::Read, font_pa, font_size, "Font:SharedMemory"); | 303 | "Font:SharedMemory"); |
| 304 | irs_shared_mem = Kernel::SharedMemory::Create( | 304 | irs_shared_mem = Kernel::KSharedMemory::Create( |
| 305 | system.Kernel(), system.DeviceMemory(), nullptr, | 305 | system.Kernel(), system.DeviceMemory(), nullptr, {irs_addr, irs_size / PageSize}, |
| 306 | {irs_addr, irs_size / Memory::PageSize}, Memory::MemoryPermission::None, | 306 | KMemoryPermission::None, KMemoryPermission::Read, irs_addr, irs_size, |
| 307 | Memory::MemoryPermission::Read, irs_addr, irs_size, "IRS:SharedMemory"); | 307 | "IRS:SharedMemory"); |
| 308 | time_shared_mem = Kernel::SharedMemory::Create( | 308 | time_shared_mem = Kernel::KSharedMemory::Create( |
| 309 | system.Kernel(), system.DeviceMemory(), nullptr, | 309 | system.Kernel(), system.DeviceMemory(), nullptr, {time_addr, time_size / PageSize}, |
| 310 | {time_addr, time_size / Memory::PageSize}, Memory::MemoryPermission::None, | 310 | KMemoryPermission::None, KMemoryPermission::Read, time_addr, time_size, |
| 311 | Memory::MemoryPermission::Read, time_addr, time_size, "Time:SharedMemory"); | 311 | "Time:SharedMemory"); |
| 312 | 312 | ||
| 313 | // Allocate slab heaps | 313 | // Allocate slab heaps |
| 314 | user_slab_heap_pages = std::make_unique<Memory::SlabHeap<Memory::Page>>(); | 314 | user_slab_heap_pages = std::make_unique<KSlabHeap<Page>>(); |
| 315 | 315 | ||
| 316 | constexpr u64 user_slab_heap_size{0x1ef000}; | 316 | constexpr u64 user_slab_heap_size{0x1ef000}; |
| 317 | // Reserve slab heaps | 317 | // Reserve slab heaps |
| @@ -353,14 +353,14 @@ struct KernelCore::Impl { | |||
| 353 | std::atomic<u32> next_host_thread_id{Core::Hardware::NUM_CPU_CORES}; | 353 | std::atomic<u32> next_host_thread_id{Core::Hardware::NUM_CPU_CORES}; |
| 354 | 354 | ||
| 355 | // Kernel memory management | 355 | // Kernel memory management |
| 356 | std::unique_ptr<Memory::MemoryManager> memory_manager; | 356 | std::unique_ptr<KMemoryManager> memory_manager; |
| 357 | std::unique_ptr<Memory::SlabHeap<Memory::Page>> user_slab_heap_pages; | 357 | std::unique_ptr<KSlabHeap<Page>> user_slab_heap_pages; |
| 358 | 358 | ||
| 359 | // Shared memory for services | 359 | // Shared memory for services |
| 360 | std::shared_ptr<Kernel::SharedMemory> hid_shared_mem; | 360 | std::shared_ptr<Kernel::KSharedMemory> hid_shared_mem; |
| 361 | std::shared_ptr<Kernel::SharedMemory> font_shared_mem; | 361 | std::shared_ptr<Kernel::KSharedMemory> font_shared_mem; |
| 362 | std::shared_ptr<Kernel::SharedMemory> irs_shared_mem; | 362 | std::shared_ptr<Kernel::KSharedMemory> irs_shared_mem; |
| 363 | std::shared_ptr<Kernel::SharedMemory> time_shared_mem; | 363 | std::shared_ptr<Kernel::KSharedMemory> time_shared_mem; |
| 364 | 364 | ||
| 365 | // Threads used for services | 365 | // Threads used for services |
| 366 | std::unordered_set<std::shared_ptr<Kernel::ServiceThread>> service_threads; | 366 | std::unordered_set<std::shared_ptr<Kernel::ServiceThread>> service_threads; |
| @@ -578,51 +578,51 @@ KThread* KernelCore::GetCurrentEmuThread() const { | |||
| 578 | return impl->GetCurrentEmuThread(); | 578 | return impl->GetCurrentEmuThread(); |
| 579 | } | 579 | } |
| 580 | 580 | ||
| 581 | Memory::MemoryManager& KernelCore::MemoryManager() { | 581 | KMemoryManager& KernelCore::MemoryManager() { |
| 582 | return *impl->memory_manager; | 582 | return *impl->memory_manager; |
| 583 | } | 583 | } |
| 584 | 584 | ||
| 585 | const Memory::MemoryManager& KernelCore::MemoryManager() const { | 585 | const KMemoryManager& KernelCore::MemoryManager() const { |
| 586 | return *impl->memory_manager; | 586 | return *impl->memory_manager; |
| 587 | } | 587 | } |
| 588 | 588 | ||
| 589 | Memory::SlabHeap<Memory::Page>& KernelCore::GetUserSlabHeapPages() { | 589 | KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() { |
| 590 | return *impl->user_slab_heap_pages; | 590 | return *impl->user_slab_heap_pages; |
| 591 | } | 591 | } |
| 592 | 592 | ||
| 593 | const Memory::SlabHeap<Memory::Page>& KernelCore::GetUserSlabHeapPages() const { | 593 | const KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() const { |
| 594 | return *impl->user_slab_heap_pages; | 594 | return *impl->user_slab_heap_pages; |
| 595 | } | 595 | } |
| 596 | 596 | ||
| 597 | Kernel::SharedMemory& KernelCore::GetHidSharedMem() { | 597 | Kernel::KSharedMemory& KernelCore::GetHidSharedMem() { |
| 598 | return *impl->hid_shared_mem; | 598 | return *impl->hid_shared_mem; |
| 599 | } | 599 | } |
| 600 | 600 | ||
| 601 | const Kernel::SharedMemory& KernelCore::GetHidSharedMem() const { | 601 | const Kernel::KSharedMemory& KernelCore::GetHidSharedMem() const { |
| 602 | return *impl->hid_shared_mem; | 602 | return *impl->hid_shared_mem; |
| 603 | } | 603 | } |
| 604 | 604 | ||
| 605 | Kernel::SharedMemory& KernelCore::GetFontSharedMem() { | 605 | Kernel::KSharedMemory& KernelCore::GetFontSharedMem() { |
| 606 | return *impl->font_shared_mem; | 606 | return *impl->font_shared_mem; |
| 607 | } | 607 | } |
| 608 | 608 | ||
| 609 | const Kernel::SharedMemory& KernelCore::GetFontSharedMem() const { | 609 | const Kernel::KSharedMemory& KernelCore::GetFontSharedMem() const { |
| 610 | return *impl->font_shared_mem; | 610 | return *impl->font_shared_mem; |
| 611 | } | 611 | } |
| 612 | 612 | ||
| 613 | Kernel::SharedMemory& KernelCore::GetIrsSharedMem() { | 613 | Kernel::KSharedMemory& KernelCore::GetIrsSharedMem() { |
| 614 | return *impl->irs_shared_mem; | 614 | return *impl->irs_shared_mem; |
| 615 | } | 615 | } |
| 616 | 616 | ||
| 617 | const Kernel::SharedMemory& KernelCore::GetIrsSharedMem() const { | 617 | const Kernel::KSharedMemory& KernelCore::GetIrsSharedMem() const { |
| 618 | return *impl->irs_shared_mem; | 618 | return *impl->irs_shared_mem; |
| 619 | } | 619 | } |
| 620 | 620 | ||
| 621 | Kernel::SharedMemory& KernelCore::GetTimeSharedMem() { | 621 | Kernel::KSharedMemory& KernelCore::GetTimeSharedMem() { |
| 622 | return *impl->time_shared_mem; | 622 | return *impl->time_shared_mem; |
| 623 | } | 623 | } |
| 624 | 624 | ||
| 625 | const Kernel::SharedMemory& KernelCore::GetTimeSharedMem() const { | 625 | const Kernel::KSharedMemory& KernelCore::GetTimeSharedMem() const { |
| 626 | return *impl->time_shared_mem; | 626 | return *impl->time_shared_mem; |
| 627 | } | 627 | } |
| 628 | 628 | ||