summaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/service.cpp')
-rw-r--r--src/core/hle/service/service.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 418b128b1..9f68898db 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -8,7 +8,6 @@
8#include "common/string_util.h" 8#include "common/string_util.h"
9 9
10#include "core/hle/kernel/server_port.h" 10#include "core/hle/kernel/server_port.h"
11#include "core/hle/service/service.h"
12#include "core/hle/service/ac_u.h" 11#include "core/hle/service/ac_u.h"
13#include "core/hle/service/act_a.h" 12#include "core/hle/service/act_a.h"
14#include "core/hle/service/act_u.h" 13#include "core/hle/service/act_u.h"
@@ -66,11 +65,13 @@ static std::string MakeFunctionString(const char* name, const char* port_name,
66 return function_string; 65 return function_string;
67} 66}
68 67
69void SessionRequestHandler::ClientConnected(Kernel::SharedPtr<Kernel::ServerSession> server_session) { 68void SessionRequestHandler::ClientConnected(
69 Kernel::SharedPtr<Kernel::ServerSession> server_session) {
70 connected_sessions.push_back(server_session); 70 connected_sessions.push_back(server_session);
71} 71}
72 72
73void SessionRequestHandler::ClientDisconnected(Kernel::SharedPtr<Kernel::ServerSession> server_session) { 73void SessionRequestHandler::ClientDisconnected(
74 Kernel::SharedPtr<Kernel::ServerSession> server_session) {
74 boost::range::remove_erase(connected_sessions, server_session); 75 boost::range::remove_erase(connected_sessions, server_session);
75} 76}
76 77
@@ -78,7 +79,8 @@ Interface::Interface(u32 max_sessions) : max_sessions(max_sessions) {}
78Interface::~Interface() = default; 79Interface::~Interface() = default;
79 80
80void Interface::HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) { 81void Interface::HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) {
81 // TODO(Subv): Make use of the server_session in the HLE service handlers to distinguish which session triggered each command. 82 // TODO(Subv): Make use of the server_session in the HLE service handlers to distinguish which
83 // session triggered each command.
82 84
83 u32* cmd_buff = Kernel::GetCommandBuffer(); 85 u32* cmd_buff = Kernel::GetCommandBuffer();
84 auto itr = m_functions.find(cmd_buff[0]); 86 auto itr = m_functions.find(cmd_buff[0]);
@@ -113,15 +115,17 @@ void Interface::Register(const FunctionInfo* functions, size_t n) {
113// Module interface 115// Module interface
114 116
115static void AddNamedPort(Interface* interface_) { 117static void AddNamedPort(Interface* interface_) {
116 auto ports = Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(), 118 auto ports =
117 std::shared_ptr<Interface>(interface_)); 119 Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(),
120 std::shared_ptr<Interface>(interface_));
118 auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports); 121 auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports);
119 g_kernel_named_ports.emplace(interface_->GetPortName(), std::move(client_port)); 122 g_kernel_named_ports.emplace(interface_->GetPortName(), std::move(client_port));
120} 123}
121 124
122void AddService(Interface* interface_) { 125void AddService(Interface* interface_) {
123 auto ports = Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(), 126 auto ports =
124 std::shared_ptr<Interface>(interface_)); 127 Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(),
128 std::shared_ptr<Interface>(interface_));
125 auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports); 129 auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports);
126 g_srv_services.emplace(interface_->GetPortName(), std::move(client_port)); 130 g_srv_services.emplace(interface_->GetPortName(), std::move(client_port));
127} 131}
@@ -190,5 +194,4 @@ void Shutdown() {
190 g_kernel_named_ports.clear(); 194 g_kernel_named_ports.clear();
191 LOG_DEBUG(Service, "shutdown OK"); 195 LOG_DEBUG(Service, "shutdown OK");
192} 196}
193
194} 197}