From aa85c0cba15387866e5b4cb36b242189c73ab7a6 Mon Sep 17 00:00:00 2001 From: lizzie Date: Fri, 11 Sep 2026 01:55:21 +0000 Subject: [PATCH] 2026-09-11 01:55:21 Signed-off-by: lizzie --- src/audio_core/audio_render_manager.cpp | 19 +++++----- src/core/hle/service/audio/audio.cpp | 34 +++++++++--------- src/core/hle/service/bcat/bcat.cpp | 30 +++++++--------- src/core/hle/service/bpc/bpc.cpp | 24 ++++++++++--- .../hle/service/filesystem/filesystem.cpp | 6 ++-- src/core/hle/service/glue/arp.cpp | 35 ++++++++----------- src/core/hle/service/glue/glue.cpp | 4 +-- src/core/hle/service/grc/grc.cpp | 4 +-- src/core/hle/service/ldr/ldr.cpp | 9 +++-- src/core/hle/service/ngc/ngc.cpp | 6 ++-- src/core/hle/service/nifm/nifm.cpp | 9 ++--- src/core/hle/service/ns/ns.cpp | 18 +++++----- src/core/hle/service/pm/pm.cpp | 8 ++--- src/core/hle/service/ro/ro.cpp | 6 ++-- src/core/hle/service/set/settings.cpp | 14 ++++---- src/core/hle/service/sm/sm.cpp | 7 ++-- src/core/hle/service/sockets/sockets.cpp | 14 ++++---- src/core/hle/service/usb/usb.cpp | 8 ++--- src/core/hle/service/wlan/wlan.cpp | 16 ++++----- 19 files changed, 138 insertions(+), 133 deletions(-) diff --git a/src/audio_core/audio_render_manager.cpp b/src/audio_core/audio_render_manager.cpp index 3c53e3afde..8c4e74c4be 100644 --- a/src/audio_core/audio_render_manager.cpp +++ b/src/audio_core/audio_render_manager.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -9,7 +12,9 @@ namespace AudioCore::Renderer { Manager::Manager(Core::System& system_) - : system{system_}, system_manager{std::make_unique(system)} { + : system{system_} + , system_manager{std::make_unique(system)} +{ std::iota(session_ids.begin(), session_ids.end(), 0); } @@ -38,14 +43,12 @@ Result Manager::GetWorkBufferSize(const AudioRendererParameterInternal& params, s32 Manager::GetSessionId() { std::scoped_lock l{session_lock}; - auto session_id{session_ids[session_count]}; - - if (session_id == -1) { - return -1; + ASSERT(session_count <= session_ids.size()); + auto const session_id = session_ids[session_count]; + if (session_id >= 0) { + session_ids[session_count] = -1; + session_count++; } - - session_ids[session_count] = -1; - session_count++; return session_id; } diff --git a/src/core/hle/service/audio/audio.cpp b/src/core/hle/service/audio/audio.cpp index c433283304..6caf794caa 100644 --- a/src/core/hle/service/audio/audio.cpp +++ b/src/core/hle/service/audio/audio.cpp @@ -185,26 +185,26 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("aud:a", std::make_shared(system)); - server_manager->RegisterNamedService("aud:d", std::make_shared(system)); + server_manager->RegisterNamedService("aud:a", std::make_shared(system), 30); + server_manager->RegisterNamedService("aud:d", std::make_shared(system), 30); - server_manager->RegisterNamedService("audout:d", std::make_shared(system)); - server_manager->RegisterNamedService("audin:d", std::make_shared(system)); - server_manager->RegisterNamedService("audrec:d", std::make_shared(system)); - server_manager->RegisterNamedService("audren:d", std::make_shared(system)); + server_manager->RegisterNamedService("audout:d", std::make_shared(system), 30); + server_manager->RegisterNamedService("audin:d", std::make_shared(system), 30); + server_manager->RegisterNamedService("audrec:d", std::make_shared(system), 30); + server_manager->RegisterNamedService("audren:d", std::make_shared(system), 30); - server_manager->RegisterNamedService("audin:u", std::make_shared(system)); - server_manager->RegisterNamedService("audin:a", std::make_shared(system)); - server_manager->RegisterNamedService("audout:u", std::make_shared(system)); - server_manager->RegisterNamedService("audout:a", std::make_shared(system)); - server_manager->RegisterNamedService("auddev", std::make_shared(system)); + server_manager->RegisterNamedService("audin:u", std::make_shared(system), 30); + server_manager->RegisterNamedService("audin:a", std::make_shared(system), 30); + server_manager->RegisterNamedService("audout:u", std::make_shared(system), 30); + server_manager->RegisterNamedService("audout:a", std::make_shared(system), 30); + server_manager->RegisterNamedService("auddev", std::make_shared(system), 30); // Depends on audout:u and audin:u on ctor! - server_manager->RegisterNamedService("audctl", std::make_shared(system)); - server_manager->RegisterNamedService("audrec:a", std::make_shared(system)); - server_manager->RegisterNamedService("audrec:u", std::make_shared(system)); - server_manager->RegisterNamedService("audren:u", std::make_shared(system)); - server_manager->RegisterNamedService("audren:a", std::make_shared(system)); - server_manager->RegisterNamedService("hwopus", std::make_shared(system)); + server_manager->RegisterNamedService("audctl", std::make_shared(system), 30); + server_manager->RegisterNamedService("audrec:a", std::make_shared(system), 30); + server_manager->RegisterNamedService("audrec:u", std::make_shared(system), 30); + server_manager->RegisterNamedService("audren:u", std::make_shared(system), 30); + server_manager->RegisterNamedService("audren:a", std::make_shared(system), 30); + server_manager->RegisterNamedService("hwopus", std::make_shared(system), 25); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/bcat/bcat.cpp b/src/core/hle/service/bcat/bcat.cpp index ea8b15998d..bf9e054a49 100644 --- a/src/core/hle/service/bcat/bcat.cpp +++ b/src/core/hle/service/bcat/bcat.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 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 @@ -12,25 +15,16 @@ namespace Service::BCAT { void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("bcat:a", - std::make_shared(system, "bcat:a")); - server_manager->RegisterNamedService("bcat:m", - std::make_shared(system, "bcat:m")); - server_manager->RegisterNamedService("bcat:u", - std::make_shared(system, "bcat:u")); - server_manager->RegisterNamedService("bcat:s", - std::make_shared(system, "bcat:s")); + server_manager->RegisterNamedService("bcat:a", std::make_shared(system, "bcat:a"), 32); + server_manager->RegisterNamedService("bcat:m", std::make_shared(system, "bcat:m"), 32); + server_manager->RegisterNamedService("bcat:u", std::make_shared(system, "bcat:u"), 32); + server_manager->RegisterNamedService("bcat:s", std::make_shared(system, "bcat:s"), 32); - server_manager->RegisterNamedService( - "news:a", std::make_shared(system, 0xffffffff, "news:a")); - server_manager->RegisterNamedService( - "news:p", std::make_shared(system, 0x1, "news:p")); - server_manager->RegisterNamedService( - "news:c", std::make_shared(system, 0x2, "news:c")); - server_manager->RegisterNamedService( - "news:v", std::make_shared(system, 0x4, "news:v")); - server_manager->RegisterNamedService( - "news:m", std::make_shared(system, 0xd, "news:m")); + server_manager->RegisterNamedService("news:a", std::make_shared(system, 0xffffffff, "news:a"), 32); + server_manager->RegisterNamedService("news:p", std::make_shared(system, 0x1, "news:p"), 32); + server_manager->RegisterNamedService("news:c", std::make_shared(system, 0x2, "news:c"), 32); + server_manager->RegisterNamedService("news:v", std::make_shared(system, 0x4, "news:v"), 32); + server_manager->RegisterNamedService("news:m", std::make_shared(system, 0xd, "news:m"), 32); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/bpc/bpc.cpp b/src/core/hle/service/bpc/bpc.cpp index 6fd7001821..6f2e00b22b 100644 --- a/src/core/hle/service/bpc/bpc.cpp +++ b/src/core/hle/service/bpc/bpc.cpp @@ -101,14 +101,28 @@ public: } }; +class BPC_AMS final : public ServiceFramework { +public: + explicit BPC_AMS(Core::System& system_) : ServiceFramework{system_, "bpc:ams"} { + // clang-format off + static const FunctionInfo functions[] = { + {65000, nullptr, "RebootToFatalError"}, + {65001, nullptr, "SetRebootPayload"}, + }; + // clang-format on + RegisterHandlers(functions); + } +}; + void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("bpc", std::make_shared(system)); - server_manager->RegisterNamedService("bpc:r", std::make_shared(system)); - server_manager->RegisterNamedService("bpc:c", std::make_shared(system)); - server_manager->RegisterNamedService("bpc:b", std::make_shared(system)); - server_manager->RegisterNamedService("bpc:w", std::make_shared(system)); + server_manager->RegisterNamedService("bpc", std::make_shared(system), 13); + server_manager->RegisterNamedService("bpc:r", std::make_shared(system), 13); + server_manager->RegisterNamedService("bpc:c", std::make_shared(system), 13); + server_manager->RegisterNamedService("bpc:b", std::make_shared(system), 13); + server_manager->RegisterNamedService("bpc:w", std::make_shared(system), 13); + server_manager->RegisterNamedService("bpc:ams", std::make_shared(system), 4); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 38d2f1735c..925af7b371 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp @@ -804,9 +804,9 @@ void LoopProcess(Core::System& system) { const auto FileSystemProxyFactory = [&] { return std::make_shared(system); }; - server_manager->RegisterNamedService("fsp-ldr", std::make_shared(system)); - server_manager->RegisterNamedService("fsp-pr", std::make_shared(system)); - server_manager->RegisterNamedService("fsp-srv", std::move(FileSystemProxyFactory)); + server_manager->RegisterNamedService("fsp-ldr", std::make_shared(system), 61); + server_manager->RegisterNamedService("fsp-pr", std::make_shared(system), 61); + server_manager->RegisterNamedService("fsp-srv", std::move(FileSystemProxyFactory), 61); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/glue/arp.cpp b/src/core/hle/service/glue/arp.cpp index b5dfbe9c60..7eda57ddc3 100644 --- a/src/core/hle/service/glue/arp.cpp +++ b/src/core/hle/service/glue/arp.cpp @@ -36,18 +36,18 @@ std::optional GetTitleIDForProcessID(Core::System& system, u64 process_id) ARP_R::ARP_R(Core::System& system_, const ARPManager& manager_) : ServiceFramework{system_, "arp:r"}, manager{manager_} { // clang-format off - static const FunctionInfo functions[] = { - {0, &ARP_R::GetApplicationLaunchProperty, "GetApplicationLaunchProperty"}, - {1, &ARP_R::GetApplicationLaunchPropertyWithApplicationId, "GetApplicationLaunchPropertyWithApplicationId"}, - {2, &ARP_R::GetApplicationControlProperty, "GetApplicationControlProperty"}, - {3, &ARP_R::GetApplicationControlPropertyWithApplicationId, "GetApplicationControlPropertyWithApplicationId"}, - {4, nullptr, "GetApplicationInstanceUnregistrationNotifier"}, - {5, nullptr, "ListApplicationInstanceId"}, - {6, nullptr, "GetMicroApplicationInstanceId"}, - {7, nullptr, "GetApplicationCertificate"}, - {9998, nullptr, "GetPreomiaApplicationLaunchProperty"}, - {9999, nullptr, "GetPreomiaApplicationControlProperty"}, - }; + static const FunctionInfo functions[] = { + {0, &ARP_R::GetApplicationLaunchProperty, "GetApplicationLaunchProperty"}, + {1, &ARP_R::GetApplicationLaunchPropertyWithApplicationId, "GetApplicationLaunchPropertyWithApplicationId"}, + {2, &ARP_R::GetApplicationControlProperty, "GetApplicationControlProperty"}, + {3, &ARP_R::GetApplicationControlPropertyWithApplicationId, "GetApplicationControlPropertyWithApplicationId"}, + {4, nullptr, "GetApplicationInstanceUnregistrationNotifier"}, + {5, nullptr, "ListApplicationInstanceId"}, + {6, nullptr, "GetMicroApplicationInstanceId"}, + {7, nullptr, "GetApplicationCertificate"}, + {9998, nullptr, "GetPreomiaApplicationLaunchProperty"}, + {9999, nullptr, "GetPreomiaApplicationControlProperty"}, + }; // clang-format on RegisterHandlers(functions); @@ -191,8 +191,7 @@ private: } if (issued) { - LOG_ERROR(Service_ARP, - "Attempted to issue registrar, but registrar is already issued!"); + LOG_ERROR(Service_ARP, "Attempted to issue registrar, but registrar is already issued!"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(Glue::ResultAlreadyBound); return; @@ -209,9 +208,7 @@ private: LOG_DEBUG(Service_ARP, "called"); if (issued) { - LOG_ERROR( - Service_ARP, - "Attempted to set application launch property, but registrar is already issued!"); + LOG_ERROR(Service_ARP, "Attempted to set application launch property, but registrar is already issued!"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(Glue::ResultAlreadyBound); return; @@ -228,9 +225,7 @@ private: LOG_DEBUG(Service_ARP, "called"); if (issued) { - LOG_ERROR( - Service_ARP, - "Attempted to set application control property, but registrar is already issued!"); + LOG_ERROR(Service_ARP, "Attempted to set application control property, but registrar is already issued!"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(Glue::ResultAlreadyBound); return; diff --git a/src/core/hle/service/glue/glue.cpp b/src/core/hle/service/glue/glue.cpp index 46d078d00b..f267060ef4 100644 --- a/src/core/hle/service/glue/glue.cpp +++ b/src/core/hle/service/glue/glue.cpp @@ -22,8 +22,8 @@ void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); // ARP - server_manager->RegisterNamedService("arp:r", std::make_shared(system, system.GetARPManager())); - server_manager->RegisterNamedService("arp:w", std::make_shared(system, system.GetARPManager())); + server_manager->RegisterNamedService("arp:r", std::make_shared(system, system.GetARPManager()), 16); + server_manager->RegisterNamedService("arp:w", std::make_shared(system, system.GetARPManager()), 8); // BackGround Task Controller server_manager->RegisterNamedService("bgtc:t", std::make_shared(system)); diff --git a/src/core/hle/service/grc/grc.cpp b/src/core/hle/service/grc/grc.cpp index b3d39a6294..e8e901662d 100644 --- a/src/core/hle/service/grc/grc.cpp +++ b/src/core/hle/service/grc/grc.cpp @@ -46,8 +46,8 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("grc:c", std::make_shared(system)); - server_manager->RegisterNamedService("grc:d", std::make_shared(system)); + server_manager->RegisterNamedService("grc:c", std::make_shared(system), 4); + server_manager->RegisterNamedService("grc:d", std::make_shared(system), 4); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp index ba58b3a093..db4d51b49d 100644 --- a/src/core/hle/service/ldr/ldr.cpp +++ b/src/core/hle/service/ldr/ldr.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 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 @@ -56,9 +59,9 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("ldr:dmnt", std::make_shared(system)); - server_manager->RegisterNamedService("ldr:pm", std::make_shared(system)); - server_manager->RegisterNamedService("ldr:shel", std::make_shared(system)); + server_manager->RegisterNamedService("ldr:dmnt", std::make_shared(system), 3); + server_manager->RegisterNamedService("ldr:pm", std::make_shared(system), 1); + server_manager->RegisterNamedService("ldr:shel", std::make_shared(system), 3); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/ngc/ngc.cpp b/src/core/hle/service/ngc/ngc.cpp index 0af4a7bd0e..06310145e5 100644 --- a/src/core/hle/service/ngc/ngc.cpp +++ b/src/core/hle/service/ngc/ngc.cpp @@ -169,9 +169,9 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("ngct:u", std::make_shared(system)); - server_manager->RegisterNamedService("ngct:s", std::make_shared(system)); - server_manager->RegisterNamedService("ngc:u", std::make_shared(system)); + server_manager->RegisterNamedService("ngct:u", std::make_shared(system), 4); + server_manager->RegisterNamedService("ngct:s", std::make_shared(system), 4); + server_manager->RegisterNamedService("ngc:u", std::make_shared(system), 4); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 898b9ecfb2..efada9b807 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -1144,12 +1144,9 @@ private: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("nifm:a", - std::make_shared("nifm:a", system)); - server_manager->RegisterNamedService("nifm:s", - std::make_shared("nifm:s", system)); - server_manager->RegisterNamedService("nifm:u", - std::make_shared("nifm:u", system)); + server_manager->RegisterNamedService("nifm:a", std::make_shared("nifm:a", system), 2); + server_manager->RegisterNamedService("nifm:s", std::make_shared("nifm:s", system), 16); + server_manager->RegisterNamedService("nifm:u", std::make_shared("nifm:u", system), 5); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/ns/ns.cpp b/src/core/hle/service/ns/ns.cpp index 4e3915f684..fe057422ce 100644 --- a/src/core/hle/service/ns/ns.cpp +++ b/src/core/hle/service/ns/ns.cpp @@ -81,16 +81,16 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("ns:am2", std::make_shared(system, "ns:am2")); - server_manager->RegisterNamedService("ns:ec", std::make_shared(system, "ns:ec")); - server_manager->RegisterNamedService("ns:rid", std::make_shared(system, "ns:rid")); - server_manager->RegisterNamedService("ns:rt", std::make_shared(system, "ns:rt")); - server_manager->RegisterNamedService("ns:web", std::make_shared(system, "ns:web")); - server_manager->RegisterNamedService("ns:ro", std::make_shared(system, "ns:ro")); + server_manager->RegisterNamedService("ns:am2", std::make_shared(system, "ns:am2"), 5); + server_manager->RegisterNamedService("ns:ec", std::make_shared(system, "ns:ec"), 5); + server_manager->RegisterNamedService("ns:rid", std::make_shared(system, "ns:rid"), 5); + server_manager->RegisterNamedService("ns:rt", std::make_shared(system, "ns:rt"), 5); + server_manager->RegisterNamedService("ns:web", std::make_shared(system, "ns:web"), 5); + server_manager->RegisterNamedService("ns:ro", std::make_shared(system, "ns:ro"), 5); - server_manager->RegisterNamedService("ns:dev", std::make_shared(system)); - server_manager->RegisterNamedService("ns:su", std::make_shared(system)); - server_manager->RegisterNamedService("ns:vm", std::make_shared(system)); + server_manager->RegisterNamedService("ns:dev", std::make_shared(system), 5); + server_manager->RegisterNamedService("ns:su", std::make_shared(system), 5); + server_manager->RegisterNamedService("ns:vm", std::make_shared(system), 5); server_manager->RegisterNamedService("pdm:ntfy", std::make_shared(system)); server_manager->RegisterNamedService("pdm:qry", std::make_shared(system)); diff --git a/src/core/hle/service/pm/pm.cpp b/src/core/hle/service/pm/pm.cpp index 97efb1a361..ff7053b690 100644 --- a/src/core/hle/service/pm/pm.cpp +++ b/src/core/hle/service/pm/pm.cpp @@ -252,10 +252,10 @@ private: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("pm:bm", std::make_shared(system)); - server_manager->RegisterNamedService("pm:dmnt", std::make_shared(system)); - server_manager->RegisterNamedService("pm:info", std::make_shared(system)); - server_manager->RegisterNamedService("pm:shell", std::make_shared(system)); + server_manager->RegisterNamedService("pm:bm", std::make_shared(system), 4); // Nx = 4, Ams = 8 + server_manager->RegisterNamedService("pm:dmnt", std::make_shared(system), 16); + server_manager->RegisterNamedService("pm:shell", std::make_shared(system), 3); //Nx = 3, AMS = 8 + server_manager->RegisterNamedService("pm:info", std::make_shared(system), 25); //48-(4+16+3) ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/ro/ro.cpp b/src/core/hle/service/ro/ro.cpp index 922fc10440..13de9f96c8 100644 --- a/src/core/hle/service/ro/ro.cpp +++ b/src/core/hle/service/ro/ro.cpp @@ -593,9 +593,9 @@ void LoopProcess(Core::System& system) { return std::make_shared(system, "ldr:ro", ro, NrrKind::User); }; - server_manager->RegisterNamedService("ldr:ro", std::move(RoInterfaceFactoryForUser)); - server_manager->RegisterNamedService("ro:1", std::make_shared(system, "ro:1", ro, NrrKind::JitPlugin)); - server_manager->RegisterNamedService("ro:dmnt", std::make_shared(system)); + server_manager->RegisterNamedService("ldr:ro", std::move(RoInterfaceFactoryForUser), 2); + server_manager->RegisterNamedService("ro:1", std::make_shared(system, "ro:1", ro, NrrKind::JitPlugin), 2); + server_manager->RegisterNamedService("ro:dmnt", std::make_shared(system), 2); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/set/settings.cpp b/src/core/hle/service/set/settings.cpp index 73d021ff4d..407332b9b7 100644 --- a/src/core/hle/service/set/settings.cpp +++ b/src/core/hle/service/set/settings.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 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 @@ -13,13 +16,10 @@ namespace Service::Set { void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("set", std::make_shared(system)); - server_manager->RegisterNamedService("set:cal", - std::make_shared(system)); - server_manager->RegisterNamedService("set:fd", - std::make_shared(system)); - server_manager->RegisterNamedService("set:sys", - std::make_shared(system)); + server_manager->RegisterNamedService("set", std::make_shared(system), 60); + server_manager->RegisterNamedService("set:cal", std::make_shared(system), 60); + server_manager->RegisterNamedService("set:fd", std::make_shared(system), 60); + server_manager->RegisterNamedService("set:sys", std::make_shared(system), 60); ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index 45d2a14d62..c75c5437df 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp @@ -53,8 +53,7 @@ static Result ValidateServiceName(const std::string& name) { return ResultSuccess; } -Result ServiceManager::RegisterService(Kernel::KServerPort** out_server_port, std::string name, - u32 max_sessions, SessionRequestHandlerFactory handler) { +Result ServiceManager::RegisterService(Kernel::KServerPort** out_server_port, std::string name, u32 max_sessions, SessionRequestHandlerFactory handler) { R_TRY(ValidateServiceName(name)); std::scoped_lock lk{lock}; @@ -64,7 +63,7 @@ Result ServiceManager::RegisterService(Kernel::KServerPort** out_server_port, st } auto* port = Kernel::KPort::Create(kernel); - port->Initialize(kernel, ServerSessionCountMax, false, 0); + port->Initialize(kernel, max_sessions, false, 0); // Register the port. Kernel::KPort::Register(kernel, port); @@ -264,7 +263,7 @@ void SM::AtmosphereHasService(HLERequestContext& ctx) { } SM::SM(ServiceManager& service_manager_, Core::System& system_) - : ServiceFramework{system_, "sm:", 4} + : ServiceFramework{system_, "sm:", 64} , service_manager{service_manager_} , kernel{system_.Kernel()} { diff --git a/src/core/hle/service/sockets/sockets.cpp b/src/core/hle/service/sockets/sockets.cpp index e14617ddd8..e96d7c5638 100644 --- a/src/core/hle/service/sockets/sockets.cpp +++ b/src/core/hle/service/sockets/sockets.cpp @@ -64,17 +64,17 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("ethc:c", std::make_shared(system)); - server_manager->RegisterNamedService("ethc:i", std::make_shared(system)); - server_manager->RegisterNamedService("bsd:s", std::make_shared(system, "bsd:s", false)); - server_manager->RegisterNamedService("bsd:u", std::make_shared(system, "bsd:u", true)); - server_manager->RegisterNamedService("bsd:a", std::make_shared(system, "bsd:a", true)); - server_manager->RegisterNamedService("bsd:nu", std::make_shared(system)); + server_manager->RegisterNamedService("ethc:c", std::make_shared(system), 5); + server_manager->RegisterNamedService("ethc:i", std::make_shared(system), 5); + server_manager->RegisterNamedService("bsd:s", std::make_shared(system, "bsd:s", false), 0x7E); + server_manager->RegisterNamedService("bsd:u", std::make_shared(system, "bsd:u", true), 0x0f); + server_manager->RegisterNamedService("bsd:a", std::make_shared(system, "bsd:a", true), 0x17); + server_manager->RegisterNamedService("bsd:nu", std::make_shared(system), 4); server_manager->RegisterNamedService("bsdcfg", std::make_shared(system, "bsdcfg")); server_manager->RegisterNamedService("ifcfg", std::make_shared(system, "ifcfg")); server_manager->RegisterNamedService("nsd:a", std::make_shared(system, "nsd:a")); server_manager->RegisterNamedService("nsd:u", std::make_shared(system, "nsd:u")); - server_manager->RegisterNamedService("sfdnsres", std::make_shared(system)); + server_manager->RegisterNamedService("sfdnsres", std::make_shared(system), 30); server_manager->RegisterNamedService("dns:priv", std::make_shared(system)); server_manager->RegisterNamedService("eth:nd", std::make_shared(system)); diff --git a/src/core/hle/service/usb/usb.cpp b/src/core/hle/service/usb/usb.cpp index 179d1f7097..ff2a377172 100644 --- a/src/core/hle/service/usb/usb.cpp +++ b/src/core/hle/service/usb/usb.cpp @@ -265,17 +265,17 @@ void LoopProcess(Core::System& system) { server_manager->RegisterNamedService("usb:ds", std::make_shared(system)); server_manager->RegisterNamedService("usb:hs", std::make_shared(system)); - server_manager->RegisterNamedService("usb:pd", std::make_shared(system)); - server_manager->RegisterNamedService("usb:pd:c", std::make_shared(system)); + server_manager->RegisterNamedService("usb:pd", std::make_shared(system), 6); + server_manager->RegisterNamedService("usb:pd:c", std::make_shared(system), 4); server_manager->RegisterNamedService("usb:pd:m", std::make_shared(system)); - server_manager->RegisterNamedService("usb:pm", std::make_shared(system)); + server_manager->RegisterNamedService("usb:pm", std::make_shared(system), 5); // +7.0.0 if (FirmwareManager::GetFirmwareVersion(system).first.major >= 7) { server_manager->RegisterNamedService("usb:qdb", std::make_shared(system)); } // +8.0.0 if (FirmwareManager::GetFirmwareVersion(system).first.major >= 8) { - server_manager->RegisterNamedService("usb:obsv", std::make_shared(system)); + server_manager->RegisterNamedService("usb:obsv", std::make_shared(system), 2); } ServerManager::RunServer(std::move(server_manager)); } diff --git a/src/core/hle/service/wlan/wlan.cpp b/src/core/hle/service/wlan/wlan.cpp index 7f118c62ba..bcd357d57a 100644 --- a/src/core/hle/service/wlan/wlan.cpp +++ b/src/core/hle/service/wlan/wlan.cpp @@ -246,14 +246,14 @@ public: void LoopProcess(Core::System& system) { auto server_manager = std::make_unique(system); - server_manager->RegisterNamedService("wlan:lcl", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:lg", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:lga", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:sg", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:soc", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:dtc", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:p", std::make_shared(system)); - server_manager->RegisterNamedService("wlan:nd", std::make_shared(system)); + server_manager->RegisterNamedService("wlan:lcl", std::make_shared(system), 10); + server_manager->RegisterNamedService("wlan:lg", std::make_shared(system), 10); + server_manager->RegisterNamedService("wlan:lga", std::make_shared(system), 10); + server_manager->RegisterNamedService("wlan:sg", std::make_shared(system), 10); + server_manager->RegisterNamedService("wlan:soc", std::make_shared(system), 10); + server_manager->RegisterNamedService("wlan:dtc", std::make_shared(system), 4); + server_manager->RegisterNamedService("wlan:p", std::make_shared(system), 30); + server_manager->RegisterNamedService("wlan:nd", std::make_shared(system), 5); ServerManager::RunServer(std::move(server_manager)); }