service: Remove two usages of the global system accessor
Removes more instances of reliance on global state.
This commit is contained in:
parent
841b295ad0
commit
ffdf8c0cb3
|
@ -105,10 +105,9 @@ void ServiceFrameworkBase::InstallAsService(SM::ServiceManager& service_manager)
|
||||||
port_installed = true;
|
port_installed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServiceFrameworkBase::InstallAsNamedPort() {
|
void ServiceFrameworkBase::InstallAsNamedPort(Kernel::KernelCore& kernel) {
|
||||||
ASSERT(!port_installed);
|
ASSERT(!port_installed);
|
||||||
|
|
||||||
auto& kernel = Core::System::GetInstance().Kernel();
|
|
||||||
auto [server_port, client_port] =
|
auto [server_port, client_port] =
|
||||||
Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name);
|
Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name);
|
||||||
server_port->SetHleHandler(shared_from_this());
|
server_port->SetHleHandler(shared_from_this());
|
||||||
|
@ -116,10 +115,9 @@ void ServiceFrameworkBase::InstallAsNamedPort() {
|
||||||
port_installed = true;
|
port_installed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<Kernel::ClientPort> ServiceFrameworkBase::CreatePort() {
|
std::shared_ptr<Kernel::ClientPort> ServiceFrameworkBase::CreatePort(Kernel::KernelCore& kernel) {
|
||||||
ASSERT(!port_installed);
|
ASSERT(!port_installed);
|
||||||
|
|
||||||
auto& kernel = Core::System::GetInstance().Kernel();
|
|
||||||
auto [server_port, client_port] =
|
auto [server_port, client_port] =
|
||||||
Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name);
|
Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name);
|
||||||
auto port = MakeResult(std::move(server_port)).Unwrap();
|
auto port = MakeResult(std::move(server_port)).Unwrap();
|
||||||
|
|
|
@ -63,9 +63,9 @@ public:
|
||||||
/// Creates a port pair and registers this service with the given ServiceManager.
|
/// Creates a port pair and registers this service with the given ServiceManager.
|
||||||
void InstallAsService(SM::ServiceManager& service_manager);
|
void InstallAsService(SM::ServiceManager& service_manager);
|
||||||
/// Creates a port pair and registers it on the kernel's global port registry.
|
/// Creates a port pair and registers it on the kernel's global port registry.
|
||||||
void InstallAsNamedPort();
|
void InstallAsNamedPort(Kernel::KernelCore& kernel);
|
||||||
/// Creates and returns an unregistered port for the service.
|
/// Creates and returns an unregistered port for the service.
|
||||||
std::shared_ptr<Kernel::ClientPort> CreatePort();
|
std::shared_ptr<Kernel::ClientPort> CreatePort(Kernel::KernelCore& kernel);
|
||||||
|
|
||||||
void InvokeRequest(Kernel::HLERequestContext& ctx);
|
void InvokeRequest(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ void ServiceManager::InstallInterfaces(std::shared_ptr<ServiceManager> self,
|
||||||
ASSERT(self->sm_interface.expired());
|
ASSERT(self->sm_interface.expired());
|
||||||
|
|
||||||
auto sm = std::make_shared<SM>(self, kernel);
|
auto sm = std::make_shared<SM>(self, kernel);
|
||||||
sm->InstallAsNamedPort();
|
sm->InstallAsNamedPort(kernel);
|
||||||
self->sm_interface = sm;
|
self->sm_interface = sm;
|
||||||
self->controller_interface = std::make_unique<Controller>();
|
self->controller_interface = std::make_unique<Controller>();
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue