diff options
| author | 2023-03-01 10:38:20 -0500 | |
|---|---|---|
| committer | 2023-03-01 10:38:20 -0500 | |
| commit | 97f7a560f3905a1dd6a4e5a0a308ea752004bf08 (patch) | |
| tree | e60a69f96d16d051220b66e90906a7abeacf1064 /src/core/hle/service/sockets | |
| parent | Merge pull request #9879 from zhaobot/tx-update-20230301024940 (diff) | |
| parent | sm:: fix lingering session initialization issues (diff) | |
| download | yuzu-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.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sockets.cpp | 19 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sockets.h | 7 |
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 | ||
| 883 | BSD::BSD(Core::System& system_, const char* name) | 883 | BSD::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 | ||
| 9 | namespace Service::Sockets { | 10 | namespace Service::Sockets { |
| 10 | 11 | ||
| 11 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { | 12 | void 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 { | |||
| 10 | class System; | 10 | class System; |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | namespace Service::SM { | ||
| 14 | class ServiceManager; | ||
| 15 | } | ||
| 16 | |||
| 17 | namespace Service::Sockets { | 13 | namespace Service::Sockets { |
| 18 | 14 | ||
| 19 | enum class Errno : u32 { | 15 | enum 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. | 98 | void LoopProcess(Core::System& system); |
| 103 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system); | ||
| 104 | 99 | ||
| 105 | } // namespace Service::Sockets | 100 | } // namespace Service::Sockets |