summaryrefslogtreecommitdiff
path: root/src/core/hle/service/acc
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/acc
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/acc')
-rw-r--r--src/core/hle/service/acc/acc.cpp23
-rw-r--r--src/core/hle/service/acc/acc.h3
2 files changed, 14 insertions, 12 deletions
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index 1495d64de..5eefa2e82 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -25,6 +25,7 @@
25#include "core/hle/service/acc/errors.h" 25#include "core/hle/service/acc/errors.h"
26#include "core/hle/service/acc/profile_manager.h" 26#include "core/hle/service/acc/profile_manager.h"
27#include "core/hle/service/glue/glue_manager.h" 27#include "core/hle/service/glue/glue_manager.h"
28#include "core/hle/service/server_manager.h"
28#include "core/loader/loader.h" 29#include "core/loader/loader.h"
29 30
30namespace Service::Account { 31namespace Service::Account {
@@ -942,18 +943,20 @@ Module::Interface::Interface(std::shared_ptr<Module> module_,
942 943
943Module::Interface::~Interface() = default; 944Module::Interface::~Interface() = default;
944 945
945void InstallInterfaces(Core::System& system) { 946void LoopProcess(Core::System& system) {
946 auto module = std::make_shared<Module>(); 947 auto module = std::make_shared<Module>();
947 auto profile_manager = std::make_shared<ProfileManager>(); 948 auto profile_manager = std::make_shared<ProfileManager>();
948 949 auto server_manager = std::make_unique<ServerManager>(system);
949 std::make_shared<ACC_AA>(module, profile_manager, system) 950
950 ->InstallAsService(system.ServiceManager()); 951 server_manager->RegisterNamedService("acc:aa",
951 std::make_shared<ACC_SU>(module, profile_manager, system) 952 std::make_shared<ACC_AA>(module, profile_manager, system));
952 ->InstallAsService(system.ServiceManager()); 953 server_manager->RegisterNamedService("acc:su",
953 std::make_shared<ACC_U0>(module, profile_manager, system) 954 std::make_shared<ACC_SU>(module, profile_manager, system));
954 ->InstallAsService(system.ServiceManager()); 955 server_manager->RegisterNamedService("acc:u0",
955 std::make_shared<ACC_U1>(module, profile_manager, system) 956 std::make_shared<ACC_U0>(module, profile_manager, system));
956 ->InstallAsService(system.ServiceManager()); 957 server_manager->RegisterNamedService("acc:u1",
958 std::make_shared<ACC_U1>(module, profile_manager, system));
959 ServerManager::RunServer(std::move(server_manager));
957} 960}
958 961
959} // namespace Service::Account 962} // namespace Service::Account
diff --git a/src/core/hle/service/acc/acc.h b/src/core/hle/service/acc/acc.h
index 9411b0b92..a2fdafd82 100644
--- a/src/core/hle/service/acc/acc.h
+++ b/src/core/hle/service/acc/acc.h
@@ -67,7 +67,6 @@ public:
67 }; 67 };
68}; 68};
69 69
70/// Registers all ACC services with the specified service manager. 70void LoopProcess(Core::System& system);
71void InstallInterfaces(Core::System& system);
72 71
73} // namespace Service::Account 72} // namespace Service::Account