summaryrefslogtreecommitdiff
path: root/src/core/hle/service/apm
diff options
context:
space:
mode:
authorGravatar Liam2023-02-18 16:26:48 -0500
committerGravatar Liam2023-02-21 12:19:25 -0500
commita9369726147c7499e0016e183d5d56a7b44efe4b (patch)
treec1d1b4a9fdafd92863c0922b05d72c14de83ffa7 /src/core/hle/service/apm
parentcore: defer cpu shutdown (diff)
downloadyuzu-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/apm')
-rw-r--r--src/core/hle/service/apm/apm.cpp20
-rw-r--r--src/core/hle/service/apm/apm.h3
2 files changed, 13 insertions, 10 deletions
diff --git a/src/core/hle/service/apm/apm.cpp b/src/core/hle/service/apm/apm.cpp
index 44b2927a6..c23ff293d 100644
--- a/src/core/hle/service/apm/apm.cpp
+++ b/src/core/hle/service/apm/apm.cpp
@@ -4,20 +4,24 @@
4#include "core/core.h" 4#include "core/core.h"
5#include "core/hle/service/apm/apm.h" 5#include "core/hle/service/apm/apm.h"
6#include "core/hle/service/apm/apm_interface.h" 6#include "core/hle/service/apm/apm_interface.h"
7#include "core/hle/service/server_manager.h"
7 8
8namespace Service::APM { 9namespace Service::APM {
9 10
10Module::Module() = default; 11Module::Module() = default;
11Module::~Module() = default; 12Module::~Module() = default;
12 13
13void InstallInterfaces(Core::System& system) { 14void LoopProcess(Core::System& system) {
14 auto module_ = std::make_shared<Module>(); 15 auto module = std::make_shared<Module>();
15 std::make_shared<APM>(system, module_, system.GetAPMController(), "apm") 16 auto server_manager = std::make_unique<ServerManager>(system);
16 ->InstallAsService(system.ServiceManager()); 17
17 std::make_shared<APM>(system, module_, system.GetAPMController(), "apm:am") 18 server_manager->RegisterNamedService(
18 ->InstallAsService(system.ServiceManager()); 19 "apm", std::make_shared<APM>(system, module, system.GetAPMController(), "apm"));
19 std::make_shared<APM_Sys>(system, system.GetAPMController()) 20 server_manager->RegisterNamedService(
20 ->InstallAsService(system.ServiceManager()); 21 "apm:am", std::make_shared<APM>(system, module, system.GetAPMController(), "apm:am"));
22 server_manager->RegisterNamedService(
23 "apm:sys", std::make_shared<APM_Sys>(system, system.GetAPMController()));
24 ServerManager::RunServer(std::move(server_manager));
21} 25}
22 26
23} // namespace Service::APM 27} // namespace Service::APM
diff --git a/src/core/hle/service/apm/apm.h b/src/core/hle/service/apm/apm.h
index 0fecc766a..e188b4e44 100644
--- a/src/core/hle/service/apm/apm.h
+++ b/src/core/hle/service/apm/apm.h
@@ -15,7 +15,6 @@ public:
15 ~Module(); 15 ~Module();
16}; 16};
17 17
18/// Registers all AM services with the specified service manager. 18void LoopProcess(Core::System& system);
19void InstallInterfaces(Core::System& system);
20 19
21} // namespace Service::APM 20} // namespace Service::APM