diff options
| author | 2023-02-18 16:26:48 -0500 | |
|---|---|---|
| committer | 2023-02-21 12:19:25 -0500 | |
| commit | a9369726147c7499e0016e183d5d56a7b44efe4b (patch) | |
| tree | c1d1b4a9fdafd92863c0922b05d72c14de83ffa7 /src/core/hle/service/spl | |
| parent | core: defer cpu shutdown (diff) | |
| download | yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.gz yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.xz yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.zip | |
service: refactor server architecture
Converts services to have their own processes
Diffstat (limited to 'src/core/hle/service/spl')
| -rw-r--r-- | src/core/hle/service/spl/spl_module.cpp | 20 | ||||
| -rw-r--r-- | src/core/hle/service/spl/spl_module.h | 3 |
2 files changed, 13 insertions, 10 deletions
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 @@ | |||
| 9 | #include "common/settings.h" | 9 | #include "common/settings.h" |
| 10 | #include "core/hle/api_version.h" | 10 | #include "core/hle/api_version.h" |
| 11 | #include "core/hle/ipc_helpers.h" | 11 | #include "core/hle/ipc_helpers.h" |
| 12 | #include "core/hle/service/server_manager.h" | ||
| 12 | #include "core/hle/service/spl/csrng.h" | 13 | #include "core/hle/service/spl/csrng.h" |
| 13 | #include "core/hle/service/spl/spl.h" | 14 | #include "core/hle/service/spl/spl.h" |
| 14 | #include "core/hle/service/spl/spl_module.h" | 15 | #include "core/hle/service/spl/spl_module.h" |
| @@ -158,15 +159,18 @@ ResultVal<u64> Module::Interface::GetConfigImpl(ConfigItem config_item) const { | |||
| 158 | } | 159 | } |
| 159 | } | 160 | } |
| 160 | 161 | ||
| 161 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { | 162 | void LoopProcess(Core::System& system) { |
| 163 | auto server_manager = std::make_unique<ServerManager>(system); | ||
| 162 | auto module = std::make_shared<Module>(); | 164 | auto module = std::make_shared<Module>(); |
| 163 | std::make_shared<CSRNG>(system, module)->InstallAsService(service_manager); | 165 | |
| 164 | std::make_shared<SPL>(system, module)->InstallAsService(service_manager); | 166 | server_manager->RegisterNamedService("csrng", std::make_shared<CSRNG>(system, module)); |
| 165 | std::make_shared<SPL_MIG>(system, module)->InstallAsService(service_manager); | 167 | server_manager->RegisterNamedService("spl", std::make_shared<SPL>(system, module)); |
| 166 | std::make_shared<SPL_FS>(system, module)->InstallAsService(service_manager); | 168 | server_manager->RegisterNamedService("spl:mig", std::make_shared<SPL_MIG>(system, module)); |
| 167 | std::make_shared<SPL_SSL>(system, module)->InstallAsService(service_manager); | 169 | server_manager->RegisterNamedService("spl:fs", std::make_shared<SPL_FS>(system, module)); |
| 168 | std::make_shared<SPL_ES>(system, module)->InstallAsService(service_manager); | 170 | server_manager->RegisterNamedService("spl:ssl", std::make_shared<SPL_SSL>(system, module)); |
| 169 | std::make_shared<SPL_MANU>(system, module)->InstallAsService(service_manager); | 171 | server_manager->RegisterNamedService("spl:es", std::make_shared<SPL_ES>(system, module)); |
| 172 | server_manager->RegisterNamedService("spl:manu", std::make_shared<SPL_MANU>(system, module)); | ||
| 173 | ServerManager::RunServer(std::move(server_manager)); | ||
| 170 | } | 174 | } |
| 171 | 175 | ||
| 172 | } // namespace Service::SPL | 176 | } // namespace Service::SPL |
diff --git a/src/core/hle/service/spl/spl_module.h b/src/core/hle/service/spl/spl_module.h index 4c9a3c618..baed9efd7 100644 --- a/src/core/hle/service/spl/spl_module.h +++ b/src/core/hle/service/spl/spl_module.h | |||
| @@ -41,7 +41,6 @@ public: | |||
| 41 | }; | 41 | }; |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | /// Registers all SPL services with the specified service manager. | 44 | void LoopProcess(Core::System& system); |
| 45 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system); | ||
| 46 | 45 | ||
| 47 | } // namespace Service::SPL | 46 | } // namespace Service::SPL |