From a9369726147c7499e0016e183d5d56a7b44efe4b Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 18 Feb 2023 16:26:48 -0500 Subject: service: refactor server architecture Converts services to have their own processes --- src/core/hle/service/spl/spl_module.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/core/hle/service/spl/spl_module.cpp') diff --git a/src/core/hle/service/spl/spl_module.cpp b/src/core/hle/service/spl/spl_module.cpp index 64eae1ebf..31679e1bb 100644 --- a/src/core/hle/service/spl/spl_module.cpp +++ b/src/core/hle/service/spl/spl_module.cpp @@ -9,6 +9,7 @@ #include "common/settings.h" #include "core/hle/api_version.h" #include "core/hle/ipc_helpers.h" +#include "core/hle/service/server_manager.h" #include "core/hle/service/spl/csrng.h" #include "core/hle/service/spl/spl.h" #include "core/hle/service/spl/spl_module.h" @@ -158,15 +159,18 @@ ResultVal Module::Interface::GetConfigImpl(ConfigItem config_item) const { } } -void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { +void LoopProcess(Core::System& system) { + auto server_manager = std::make_unique(system); auto module = std::make_shared(); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); - std::make_shared(system, module)->InstallAsService(service_manager); + + server_manager->RegisterNamedService("csrng", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl:mig", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl:fs", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl:ssl", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl:es", std::make_shared(system, module)); + server_manager->RegisterNamedService("spl:manu", std::make_shared(system, module)); + ServerManager::RunServer(std::move(server_manager)); } } // namespace Service::SPL -- cgit v1.2.3