summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2021-04-03 23:22:07 -0700
committerGravatar bunnei2021-05-05 16:40:50 -0700
commit086db71e942dc3468bccb741cabf62fdd221e790 (patch)
tree46dda7ba6a9d2a1590b09ddddb450595879b2896 /src/core/hle/kernel/kernel.cpp
parenthle: kernel: Migrate KProcess to KAutoObject. (diff)
downloadyuzu-086db71e942dc3468bccb741cabf62fdd221e790.tar.gz
yuzu-086db71e942dc3468bccb741cabf62fdd221e790.tar.xz
yuzu-086db71e942dc3468bccb741cabf62fdd221e790.zip
hle: kernel: Migrate KSharedMemory to KAutoObject.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 1b5b11564..cac76a6ec 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -575,22 +575,27 @@ struct KernelCore::Impl {
575 const PAddr irs_phys_addr{system_pool.GetAddress() + hid_size + font_size}; 575 const PAddr irs_phys_addr{system_pool.GetAddress() + hid_size + font_size};
576 const PAddr time_phys_addr{system_pool.GetAddress() + hid_size + font_size + irs_size}; 576 const PAddr time_phys_addr{system_pool.GetAddress() + hid_size + font_size + irs_size};
577 577
578 hid_shared_mem = Kernel::KSharedMemory::Create( 578 hid_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
579 system.Kernel(), system.DeviceMemory(), nullptr, {hid_phys_addr, hid_size / PageSize}, 579 font_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
580 KMemoryPermission::None, KMemoryPermission::Read, hid_phys_addr, hid_size, 580 irs_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
581 "HID:SharedMemory"); 581 time_shared_mem = std::make_unique<KSharedMemory>(system.Kernel());
582 font_shared_mem = Kernel::KSharedMemory::Create( 582
583 system.Kernel(), system.DeviceMemory(), nullptr, {font_phys_addr, font_size / PageSize}, 583 hid_shared_mem->Initialize(system.Kernel(), system.DeviceMemory(), nullptr,
584 KMemoryPermission::None, KMemoryPermission::Read, font_phys_addr, font_size, 584 {hid_phys_addr, hid_size / PageSize}, KMemoryPermission::None,
585 "Font:SharedMemory"); 585 KMemoryPermission::Read, hid_phys_addr, hid_size,
586 irs_shared_mem = Kernel::KSharedMemory::Create( 586 "HID:SharedMemory");
587 system.Kernel(), system.DeviceMemory(), nullptr, {irs_phys_addr, irs_size / PageSize}, 587 font_shared_mem->Initialize(system.Kernel(), system.DeviceMemory(), nullptr,
588 KMemoryPermission::None, KMemoryPermission::Read, irs_phys_addr, irs_size, 588 {font_phys_addr, font_size / PageSize}, KMemoryPermission::None,
589 "IRS:SharedMemory"); 589 KMemoryPermission::Read, font_phys_addr, font_size,
590 time_shared_mem = Kernel::KSharedMemory::Create( 590 "Font:SharedMemory");
591 system.Kernel(), system.DeviceMemory(), nullptr, {time_phys_addr, time_size / PageSize}, 591 irs_shared_mem->Initialize(system.Kernel(), system.DeviceMemory(), nullptr,
592 KMemoryPermission::None, KMemoryPermission::Read, time_phys_addr, time_size, 592 {irs_phys_addr, irs_size / PageSize}, KMemoryPermission::None,
593 "Time:SharedMemory"); 593 KMemoryPermission::Read, irs_phys_addr, irs_size,
594 "IRS:SharedMemory");
595 time_shared_mem->Initialize(system.Kernel(), system.DeviceMemory(), nullptr,
596 {time_phys_addr, time_size / PageSize}, KMemoryPermission::None,
597 KMemoryPermission::Read, time_phys_addr, time_size,
598 "Time:SharedMemory");
594 } 599 }
595 600
596 void InitializePageSlab() { 601 void InitializePageSlab() {
@@ -644,10 +649,10 @@ struct KernelCore::Impl {
644 std::unique_ptr<KSlabHeap<Page>> user_slab_heap_pages; 649 std::unique_ptr<KSlabHeap<Page>> user_slab_heap_pages;
645 650
646 // Shared memory for services 651 // Shared memory for services
647 std::shared_ptr<Kernel::KSharedMemory> hid_shared_mem; 652 std::unique_ptr<Kernel::KSharedMemory> hid_shared_mem;
648 std::shared_ptr<Kernel::KSharedMemory> font_shared_mem; 653 std::unique_ptr<Kernel::KSharedMemory> font_shared_mem;
649 std::shared_ptr<Kernel::KSharedMemory> irs_shared_mem; 654 std::unique_ptr<Kernel::KSharedMemory> irs_shared_mem;
650 std::shared_ptr<Kernel::KSharedMemory> time_shared_mem; 655 std::unique_ptr<Kernel::KSharedMemory> time_shared_mem;
651 656
652 // Threads used for services 657 // Threads used for services
653 std::unordered_set<std::shared_ptr<Kernel::ServiceThread>> service_threads; 658 std::unordered_set<std::shared_ptr<Kernel::ServiceThread>> service_threads;