summaryrefslogtreecommitdiff
path: root/src/core/hle/service/aoc
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/aoc
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/aoc')
-rw-r--r--src/core/hle/service/aoc/aoc_u.cpp7
-rw-r--r--src/core/hle/service/aoc/aoc_u.h3
2 files changed, 6 insertions, 4 deletions
diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp
index 7264f23f9..c4cd1d0d5 100644
--- a/src/core/hle/service/aoc/aoc_u.cpp
+++ b/src/core/hle/service/aoc/aoc_u.cpp
@@ -17,6 +17,7 @@
17#include "core/hle/ipc_helpers.h" 17#include "core/hle/ipc_helpers.h"
18#include "core/hle/kernel/k_event.h" 18#include "core/hle/kernel/k_event.h"
19#include "core/hle/service/aoc/aoc_u.h" 19#include "core/hle/service/aoc/aoc_u.h"
20#include "core/hle/service/server_manager.h"
20#include "core/loader/loader.h" 21#include "core/loader/loader.h"
21 22
22namespace Service::AOC { 23namespace Service::AOC {
@@ -311,8 +312,10 @@ void AOC_U::CreatePermanentEcPurchasedEventManager(Kernel::HLERequestContext& ct
311 rb.PushIpcInterface<IPurchaseEventManager>(system); 312 rb.PushIpcInterface<IPurchaseEventManager>(system);
312} 313}
313 314
314void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { 315void LoopProcess(Core::System& system) {
315 std::make_shared<AOC_U>(system)->InstallAsService(service_manager); 316 auto server_manager = std::make_unique<ServerManager>(system);
317 server_manager->RegisterNamedService("aoc:u", std::make_shared<AOC_U>(system));
318 ServerManager::RunServer(std::move(server_manager));
316} 319}
317 320
318} // namespace Service::AOC 321} // namespace Service::AOC
diff --git a/src/core/hle/service/aoc/aoc_u.h b/src/core/hle/service/aoc/aoc_u.h
index 6c1ce601a..5e7087e50 100644
--- a/src/core/hle/service/aoc/aoc_u.h
+++ b/src/core/hle/service/aoc/aoc_u.h
@@ -40,7 +40,6 @@ private:
40 Kernel::KEvent* aoc_change_event; 40 Kernel::KEvent* aoc_change_event;
41}; 41};
42 42
43/// Registers all AOC services with the specified service manager. 43void LoopProcess(Core::System& system);
44void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system);
45 44
46} // namespace Service::AOC 45} // namespace Service::AOC