diff options
| author | 2023-05-03 09:07:19 -0700 | |
|---|---|---|
| committer | 2023-05-03 09:07:19 -0700 | |
| commit | 737e1ca1018cd5e5be03095cab6206ae6f653136 (patch) | |
| tree | cde86ea87ab9eb495f47307b5ae58b35608066ee /src/core/hle/service | |
| parent | Merge pull request #10151 from GPUCode/no-softlocks-please (diff) | |
| parent | kernel: match calls to Register and Unregister (diff) | |
| download | yuzu-737e1ca1018cd5e5be03095cab6206ae6f653136.tar.gz yuzu-737e1ca1018cd5e5be03095cab6206ae6f653136.tar.xz yuzu-737e1ca1018cd5e5be03095cab6206ae6f653136.zip | |
Merge pull request #10117 from liamwhite/sync-register
kernel: match calls to Register and Unregister
Diffstat (limited to 'src/core/hle/service')
| -rw-r--r-- | src/core/hle/service/ipc_helpers.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/kernel_helpers.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/mutex.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/server_manager.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/sm/sm.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/sm/sm_controller.cpp | 3 |
6 files changed, 19 insertions, 0 deletions
diff --git a/src/core/hle/service/ipc_helpers.h b/src/core/hle/service/ipc_helpers.h index e4cb4e1f2..0e222362e 100644 --- a/src/core/hle/service/ipc_helpers.h +++ b/src/core/hle/service/ipc_helpers.h | |||
| @@ -156,6 +156,7 @@ public: | |||
| 156 | 156 | ||
| 157 | auto* session = Kernel::KSession::Create(kernel); | 157 | auto* session = Kernel::KSession::Create(kernel); |
| 158 | session->Initialize(nullptr, 0); | 158 | session->Initialize(nullptr, 0); |
| 159 | Kernel::KSession::Register(kernel, session); | ||
| 159 | 160 | ||
| 160 | auto next_manager = std::make_shared<Service::SessionRequestManager>( | 161 | auto next_manager = std::make_shared<Service::SessionRequestManager>( |
| 161 | kernel, manager->GetServerManager()); | 162 | kernel, manager->GetServerManager()); |
diff --git a/src/core/hle/service/kernel_helpers.cpp b/src/core/hle/service/kernel_helpers.cpp index a39ce5212..6a313a03b 100644 --- a/src/core/hle/service/kernel_helpers.cpp +++ b/src/core/hle/service/kernel_helpers.cpp | |||
| @@ -25,6 +25,9 @@ ServiceContext::ServiceContext(Core::System& system_, std::string name_) | |||
| 25 | Kernel::KProcess::ProcessType::KernelInternal, | 25 | Kernel::KProcess::ProcessType::KernelInternal, |
| 26 | kernel.GetSystemResourceLimit()) | 26 | kernel.GetSystemResourceLimit()) |
| 27 | .IsSuccess()); | 27 | .IsSuccess()); |
| 28 | |||
| 29 | // Register the process. | ||
| 30 | Kernel::KProcess::Register(kernel, process); | ||
| 28 | process_created = true; | 31 | process_created = true; |
| 29 | } | 32 | } |
| 30 | 33 | ||
diff --git a/src/core/hle/service/mutex.cpp b/src/core/hle/service/mutex.cpp index 07589a0f0..b0ff71d1b 100644 --- a/src/core/hle/service/mutex.cpp +++ b/src/core/hle/service/mutex.cpp | |||
| @@ -12,6 +12,9 @@ Mutex::Mutex(Core::System& system) : m_system(system) { | |||
| 12 | m_event = Kernel::KEvent::Create(system.Kernel()); | 12 | m_event = Kernel::KEvent::Create(system.Kernel()); |
| 13 | m_event->Initialize(nullptr); | 13 | m_event->Initialize(nullptr); |
| 14 | 14 | ||
| 15 | // Register the event. | ||
| 16 | Kernel::KEvent::Register(system.Kernel(), m_event); | ||
| 17 | |||
| 15 | ASSERT(R_SUCCEEDED(m_event->Signal())); | 18 | ASSERT(R_SUCCEEDED(m_event->Signal())); |
| 16 | } | 19 | } |
| 17 | 20 | ||
diff --git a/src/core/hle/service/server_manager.cpp b/src/core/hle/service/server_manager.cpp index 6b4a1291e..156bc27d8 100644 --- a/src/core/hle/service/server_manager.cpp +++ b/src/core/hle/service/server_manager.cpp | |||
| @@ -33,6 +33,9 @@ ServerManager::ServerManager(Core::System& system) : m_system{system}, m_serve_m | |||
| 33 | // Initialize event. | 33 | // Initialize event. |
| 34 | m_event = Kernel::KEvent::Create(system.Kernel()); | 34 | m_event = Kernel::KEvent::Create(system.Kernel()); |
| 35 | m_event->Initialize(nullptr); | 35 | m_event->Initialize(nullptr); |
| 36 | |||
| 37 | // Register event. | ||
| 38 | Kernel::KEvent::Register(system.Kernel(), m_event); | ||
| 36 | } | 39 | } |
| 37 | 40 | ||
| 38 | ServerManager::~ServerManager() { | 41 | ServerManager::~ServerManager() { |
| @@ -160,6 +163,9 @@ Result ServerManager::ManageDeferral(Kernel::KEvent** out_event) { | |||
| 160 | // Initialize the event. | 163 | // Initialize the event. |
| 161 | m_deferral_event->Initialize(nullptr); | 164 | m_deferral_event->Initialize(nullptr); |
| 162 | 165 | ||
| 166 | // Register the event. | ||
| 167 | Kernel::KEvent::Register(m_system.Kernel(), m_deferral_event); | ||
| 168 | |||
| 163 | // Set the output. | 169 | // Set the output. |
| 164 | *out_event = m_deferral_event; | 170 | *out_event = m_deferral_event; |
| 165 | 171 | ||
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index c45be5726..1608fa24c 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp | |||
| @@ -64,6 +64,9 @@ Result ServiceManager::RegisterService(std::string name, u32 max_sessions, | |||
| 64 | auto* port = Kernel::KPort::Create(kernel); | 64 | auto* port = Kernel::KPort::Create(kernel); |
| 65 | port->Initialize(ServerSessionCountMax, false, 0); | 65 | port->Initialize(ServerSessionCountMax, false, 0); |
| 66 | 66 | ||
| 67 | // Register the port. | ||
| 68 | Kernel::KPort::Register(kernel, port); | ||
| 69 | |||
| 67 | service_ports.emplace(name, port); | 70 | service_ports.emplace(name, port); |
| 68 | registered_services.emplace(name, handler); | 71 | registered_services.emplace(name, handler); |
| 69 | if (deferral_event) { | 72 | if (deferral_event) { |
diff --git a/src/core/hle/service/sm/sm_controller.cpp b/src/core/hle/service/sm/sm_controller.cpp index 419c1df2b..7dce28fe0 100644 --- a/src/core/hle/service/sm/sm_controller.cpp +++ b/src/core/hle/service/sm/sm_controller.cpp | |||
| @@ -49,6 +49,9 @@ void Controller::CloneCurrentObject(HLERequestContext& ctx) { | |||
| 49 | // Commit the session reservation. | 49 | // Commit the session reservation. |
| 50 | session_reservation.Commit(); | 50 | session_reservation.Commit(); |
| 51 | 51 | ||
| 52 | // Register the session. | ||
| 53 | Kernel::KSession::Register(system.Kernel(), session); | ||
| 54 | |||
| 52 | // Register with server manager. | 55 | // Register with server manager. |
| 53 | session_manager->GetServerManager().RegisterSession(&session->GetServerSession(), | 56 | session_manager->GetServerManager().RegisterSession(&session->GetServerSession(), |
| 54 | session_manager); | 57 | session_manager); |