service: refactor server architecture

Converts services to have their own processes
This commit is contained in:
Liam 2023-02-18 16:26:48 -05:00
parent 23151ff498
commit a936972614
140 changed files with 1388 additions and 1138 deletions

View file

@ -5,8 +5,8 @@
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/pcv/pcv.h"
#include "core/hle/service/server_manager.h"
#include "core/hle/service/service.h"
#include "core/hle/service/sm/sm.h"
namespace Service::PCV {
@ -141,11 +141,14 @@ public:
}
};
void InstallInterfaces(SM::ServiceManager& sm, Core::System& system) {
std::make_shared<PCV>(system)->InstallAsService(sm);
std::make_shared<CLKRST>(system, "clkrst")->InstallAsService(sm);
std::make_shared<CLKRST>(system, "clkrst:i")->InstallAsService(sm);
std::make_shared<CLKRST_A>(system)->InstallAsService(sm);
void LoopProcess(Core::System& system) {
auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService("pcv", std::make_shared<PCV>(system));
server_manager->RegisterNamedService("clkrst", std::make_shared<CLKRST>(system, "clkrst"));
server_manager->RegisterNamedService("clkrst:i", std::make_shared<CLKRST>(system, "clkrst:i"));
server_manager->RegisterNamedService("clkrst:a", std::make_shared<CLKRST_A>(system));
ServerManager::RunServer(std::move(server_manager));
}
} // namespace Service::PCV

View file

@ -7,10 +7,6 @@ namespace Core {
class System;
}
namespace Service::SM {
class ServiceManager;
}
namespace Service::PCV {
enum class DeviceCode : u32 {
@ -104,6 +100,6 @@ enum class DeviceCode : u32 {
OscClk = 0x40000080
};
void InstallInterfaces(SM::ServiceManager& sm, Core::System& system);
void LoopProcess(Core::System& system);
} // namespace Service::PCV