summaryrefslogtreecommitdiff
path: root/src/core/hle/service/sockets
diff options
context:
space:
mode:
authorGravatar liamwhite2023-03-01 10:38:20 -0500
committerGravatar GitHub2023-03-01 10:38:20 -0500
commit97f7a560f3905a1dd6a4e5a0a308ea752004bf08 (patch)
treee60a69f96d16d051220b66e90906a7abeacf1064 /src/core/hle/service/sockets
parentMerge pull request #9879 from zhaobot/tx-update-20230301024940 (diff)
parentsm:: fix lingering session initialization issues (diff)
downloadyuzu-97f7a560f3905a1dd6a4e5a0a308ea752004bf08.tar.gz
yuzu-97f7a560f3905a1dd6a4e5a0a308ea752004bf08.tar.xz
yuzu-97f7a560f3905a1dd6a4e5a0a308ea752004bf08.zip
Merge pull request #9832 from liamwhite/hle-mp
service: HLE multiprocess
Diffstat (limited to 'src/core/hle/service/sockets')
-rw-r--r--src/core/hle/service/sockets/bsd.cpp3
-rw-r--r--src/core/hle/service/sockets/sockets.cpp19
-rw-r--r--src/core/hle/service/sockets/sockets.h7
3 files changed, 13 insertions, 16 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index 330a66409..2789fa1ed 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -881,8 +881,7 @@ void BSD::OnProxyPacketReceived(const Network::ProxyPacket& packet) {
881} 881}
882 882
883BSD::BSD(Core::System& system_, const char* name) 883BSD::BSD(Core::System& system_, const char* name)
884 : ServiceFramework{system_, name, ServiceThreadType::CreateNew}, room_network{ 884 : ServiceFramework{system_, name}, room_network{system_.GetRoomNetwork()} {
885 system_.GetRoomNetwork()} {
886 // clang-format off 885 // clang-format off
887 static const FunctionInfo functions[] = { 886 static const FunctionInfo functions[] = {
888 {0, &BSD::RegisterClient, "RegisterClient"}, 887 {0, &BSD::RegisterClient, "RegisterClient"},
diff --git a/src/core/hle/service/sockets/sockets.cpp b/src/core/hle/service/sockets/sockets.cpp
index b191b5cf5..676d24e03 100644
--- a/src/core/hle/service/sockets/sockets.cpp
+++ b/src/core/hle/service/sockets/sockets.cpp
@@ -1,6 +1,7 @@
1// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project 1// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later 2// SPDX-License-Identifier: GPL-2.0-or-later
3 3
4#include "core/hle/service/server_manager.h"
4#include "core/hle/service/sockets/bsd.h" 5#include "core/hle/service/sockets/bsd.h"
5#include "core/hle/service/sockets/nsd.h" 6#include "core/hle/service/sockets/nsd.h"
6#include "core/hle/service/sockets/sfdnsres.h" 7#include "core/hle/service/sockets/sfdnsres.h"
@@ -8,15 +9,17 @@
8 9
9namespace Service::Sockets { 10namespace Service::Sockets {
10 11
11void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { 12void LoopProcess(Core::System& system) {
12 std::make_shared<BSD>(system, "bsd:s")->InstallAsService(service_manager); 13 auto server_manager = std::make_unique<ServerManager>(system);
13 std::make_shared<BSD>(system, "bsd:u")->InstallAsService(service_manager);
14 std::make_shared<BSDCFG>(system)->InstallAsService(service_manager);
15 14
16 std::make_shared<NSD>(system, "nsd:a")->InstallAsService(service_manager); 15 server_manager->RegisterNamedService("bsd:s", std::make_shared<BSD>(system, "bsd:s"));
17 std::make_shared<NSD>(system, "nsd:u")->InstallAsService(service_manager); 16 server_manager->RegisterNamedService("bsd:u", std::make_shared<BSD>(system, "bsd:u"));
18 17 server_manager->RegisterNamedService("bsdcfg", std::make_shared<BSDCFG>(system));
19 std::make_shared<SFDNSRES>(system)->InstallAsService(service_manager); 18 server_manager->RegisterNamedService("nsd:a", std::make_shared<NSD>(system, "nsd:a"));
19 server_manager->RegisterNamedService("nsd:u", std::make_shared<NSD>(system, "nsd:u"));
20 server_manager->RegisterNamedService("sfdnsres", std::make_shared<SFDNSRES>(system));
21 server_manager->StartAdditionalHostThreads("bsdsocket", 2);
22 ServerManager::RunServer(std::move(server_manager));
20} 23}
21 24
22} // namespace Service::Sockets 25} // namespace Service::Sockets
diff --git a/src/core/hle/service/sockets/sockets.h b/src/core/hle/service/sockets/sockets.h
index 9840c11f9..acd2dae7b 100644
--- a/src/core/hle/service/sockets/sockets.h
+++ b/src/core/hle/service/sockets/sockets.h
@@ -10,10 +10,6 @@ namespace Core {
10class System; 10class System;
11} 11}
12 12
13namespace Service::SM {
14class ServiceManager;
15}
16
17namespace Service::Sockets { 13namespace Service::Sockets {
18 14
19enum class Errno : u32 { 15enum class Errno : u32 {
@@ -99,7 +95,6 @@ struct Linger {
99 u32 linger; 95 u32 linger;
100}; 96};
101 97
102/// Registers all Sockets services with the specified service manager. 98void LoopProcess(Core::System& system);
103void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system);
104 99
105} // namespace Service::Sockets 100} // namespace Service::Sockets