aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/ldn/ldn.cpp
diff options
context:
space:
mode:
authorJPikachu <jpikachu@eden-emu.dev>2025-10-24 12:34:49 +0200
committercrueter <crueter@eden-emu.dev>2025-10-24 12:34:49 +0200
commitb5d54b8df73bf42d396a9b2a5e2e8d71e191848b (patch)
tree57227b5105f023a1c65bf56d5ae5c51fd910c275 /src/core/hle/service/ldn/ldn.cpp
parentcd4bcb91ccc485a751c276616ef74d56d318f121 (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.cpp26
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> {