diff options
| author | JPikachu <jpikachu@eden-emu.dev> | 2025-10-24 12:34:49 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-10-24 12:34:49 +0200 |
| commit | b5d54b8df73bf42d396a9b2a5e2e8d71e191848b (patch) | |
| tree | 57227b5105f023a1c65bf56d5ae5c51fd910c275 /src/core/hle/service/ldn/ldn.cpp | |
| parent | cd4bcb91ccc485a751c276616ef74d56d318f121 (diff) | |
[acc, ldn] Implement CreateClientProcessMonitor and stub LoadIdTokenCache changes (#2810)
- IManagerForApplication/SystemService: from 19.0.0+ LoadIdTokenCache (3) is now LoadIdTokenCacheDeprecated (3)
- IManagerForApplication/SystemService: LoadIdTokenCache (4) stubbed
- Implement CreateClientProcessMonitor to ldn:s and ldn:u
- Create new client_process_monitor.cpp/.h files
- Change non-domain (C) functions into domain (D) functions to fix crashes
Thanks to SwitchBrew documentation, fixes 'Pokemon: Legends Z-A' LDN issues.
Co-authored-by: JPikachu <jpikachu.eden@gmail.com>
Co-authored-by: unknown <sahyno1996@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2810
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: JPikachu <jpikachu@eden-emu.dev>
Co-committed-by: JPikachu <jpikachu@eden-emu.dev>
Diffstat (limited to 'src/core/hle/service/ldn/ldn.cpp')
| -rw-r--r-- | src/core/hle/service/ldn/ldn.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/core/hle/service/ldn/ldn.cpp b/src/core/hle/service/ldn/ldn.cpp index 46e10e21c5..c77ae2911e 100644 --- a/src/core/hle/service/ldn/ldn.cpp +++ b/src/core/hle/service/ldn/ldn.cpp @@ -1,9 +1,13 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "core/core.h" #include "core/hle/service/cmif_serialization.h" #include "core/hle/service/ldn/ldn.h" +#include "core/hle/service/ldn/client_process_monitor.h" #include "core/hle/service/ldn/monitor_service.h" #include "core/hle/service/ldn/sf_monitor_service.h" #include "core/hle/service/ldn/sf_service.h" @@ -40,7 +44,7 @@ public: // clang-format off static const FunctionInfo functions[] = { {0, C<&ISystemServiceCreator::CreateSystemLocalCommunicationService>, "CreateSystemLocalCommunicationService"}, - {1, nullptr, "CreateClientProcessMonitor"} // 18.0.0+ + {1, C<&ISystemServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+ }; // clang-format on @@ -55,6 +59,14 @@ private: *out_interface = std::make_shared<ISystemLocalCommunicationService>(system); R_SUCCEED(); } + + Result CreateClientProcessMonitor( + OutInterface<IClientProcessMonitor> out_interface) { + LOG_DEBUG(Service_LDN, "called"); + + *out_interface = std::make_shared<IClientProcessMonitor>(system); + R_SUCCEED(); + } }; class IUserServiceCreator final : public ServiceFramework<IUserServiceCreator> { @@ -62,8 +74,8 @@ public: explicit IUserServiceCreator(Core::System& system_) : ServiceFramework{system_, "ldn:u"} { // clang-format off static const FunctionInfo functions[] = { - {0, C<&IUserServiceCreator::CreateUserLocalCommunicationService>, "CreateUserLocalCommunicationService"}, - {1, nullptr, "CreateClientProcessMonitor"} // 18.0.0+ + {0, D<&IUserServiceCreator::CreateUserLocalCommunicationService>, "CreateUserLocalCommunicationService"}, + {1, D<&IUserServiceCreator::CreateClientProcessMonitor>, "CreateClientProcessMonitor"} // 18.0.0+ }; // clang-format on @@ -78,6 +90,14 @@ private: *out_interface = std::make_shared<IUserLocalCommunicationService>(system); R_SUCCEED(); } + + Result CreateClientProcessMonitor( + OutInterface<IClientProcessMonitor> out_interface) { + LOG_DEBUG(Service_LDN, "called"); + + *out_interface = std::make_shared<IClientProcessMonitor>(system); + R_SUCCEED(); + } }; class ISfServiceCreator final : public ServiceFramework<ISfServiceCreator> { |
