diff options
| author | 2021-04-03 23:22:07 -0700 | |
|---|---|---|
| committer | 2021-05-05 16:40:50 -0700 | |
| commit | 086db71e942dc3468bccb741cabf62fdd221e790 (patch) | |
| tree | 46dda7ba6a9d2a1590b09ddddb450595879b2896 /src/core/hle/kernel/kernel.cpp | |
| parent | hle: kernel: Migrate KProcess to KAutoObject. (diff) | |
| download | yuzu-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.cpp | 45 |
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; |