summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar bunnei2018-03-25 15:45:18 -0400
committerGravatar GitHub2018-03-25 15:45:18 -0400
commita0933d92fc8bbb6240fff9a7dc8ed7648be474af (patch)
tree75febb12f0247dc8f855bd1be845722141005287 /src/core
parentMerge pull request #275 from MerryMage/addticks-dynarmic (diff)
parentService/sockets: add bsd:s, nsd:a, nsd:u services (diff)
downloadyuzu-a0933d92fc8bbb6240fff9a7dc8ed7648be474af.tar.gz
yuzu-a0933d92fc8bbb6240fff9a7dc8ed7648be474af.tar.xz
yuzu-a0933d92fc8bbb6240fff9a7dc8ed7648be474af.zip
Merge pull request #281 from mailwl/sockets-services
Service/sockets: add bsd:s, nsd:a, nsd:u services
Diffstat (limited to 'src/core')
-rw-r--r--src/core/CMakeLists.txt6
-rw-r--r--src/core/hle/service/sockets/bsd.cpp (renamed from src/core/hle/service/sockets/bsd_u.cpp)30
-rw-r--r--src/core/hle/service/sockets/bsd.h (renamed from src/core/hle/service/sockets/bsd_u.h)6
-rw-r--r--src/core/hle/service/sockets/nsd.cpp34
-rw-r--r--src/core/hle/service/sockets/nsd.h20
-rw-r--r--src/core/hle/service/sockets/sfdnsres.cpp22
-rw-r--r--src/core/hle/service/sockets/sfdnsres.h2
-rw-r--r--src/core/hle/service/sockets/sockets.cpp8
8 files changed, 96 insertions, 32 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 39cdb55f1..3d187cd40 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -189,8 +189,10 @@ add_library(core STATIC
189 hle/service/sm/controller.h 189 hle/service/sm/controller.h
190 hle/service/sm/sm.cpp 190 hle/service/sm/sm.cpp
191 hle/service/sm/sm.h 191 hle/service/sm/sm.h
192 hle/service/sockets/bsd_u.cpp 192 hle/service/sockets/bsd.cpp
193 hle/service/sockets/bsd_u.h 193 hle/service/sockets/bsd.h
194 hle/service/sockets/nsd.cpp
195 hle/service/sockets/nsd.h
194 hle/service/sockets/sfdnsres.cpp 196 hle/service/sockets/sfdnsres.cpp
195 hle/service/sockets/sfdnsres.h 197 hle/service/sockets/sfdnsres.h
196 hle/service/sockets/sockets.cpp 198 hle/service/sockets/sockets.cpp
diff --git a/src/core/hle/service/sockets/bsd_u.cpp b/src/core/hle/service/sockets/bsd.cpp
index 2ca1000ca..790ff82b3 100644
--- a/src/core/hle/service/sockets/bsd_u.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -3,12 +3,12 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/ipc_helpers.h" 5#include "core/hle/ipc_helpers.h"
6#include "core/hle/service/sockets/bsd_u.h" 6#include "core/hle/service/sockets/bsd.h"
7 7
8namespace Service { 8namespace Service {
9namespace Sockets { 9namespace Sockets {
10 10
11void BSD_U::RegisterClient(Kernel::HLERequestContext& ctx) { 11void BSD::RegisterClient(Kernel::HLERequestContext& ctx) {
12 LOG_WARNING(Service, "(STUBBED) called"); 12 LOG_WARNING(Service, "(STUBBED) called");
13 13
14 IPC::ResponseBuilder rb{ctx, 3}; 14 IPC::ResponseBuilder rb{ctx, 3};
@@ -17,7 +17,7 @@ void BSD_U::RegisterClient(Kernel::HLERequestContext& ctx) {
17 rb.Push<u32>(0); // bsd errno 17 rb.Push<u32>(0); // bsd errno
18} 18}
19 19
20void BSD_U::StartMonitoring(Kernel::HLERequestContext& ctx) { 20void BSD::StartMonitoring(Kernel::HLERequestContext& ctx) {
21 LOG_WARNING(Service, "(STUBBED) called"); 21 LOG_WARNING(Service, "(STUBBED) called");
22 22
23 IPC::ResponseBuilder rb{ctx, 3}; 23 IPC::ResponseBuilder rb{ctx, 3};
@@ -26,7 +26,7 @@ void BSD_U::StartMonitoring(Kernel::HLERequestContext& ctx) {
26 rb.Push<u32>(0); // bsd errno 26 rb.Push<u32>(0); // bsd errno
27} 27}
28 28
29void BSD_U::Socket(Kernel::HLERequestContext& ctx) { 29void BSD::Socket(Kernel::HLERequestContext& ctx) {
30 IPC::RequestParser rp{ctx}; 30 IPC::RequestParser rp{ctx};
31 31
32 u32 domain = rp.Pop<u32>(); 32 u32 domain = rp.Pop<u32>();
@@ -44,7 +44,7 @@ void BSD_U::Socket(Kernel::HLERequestContext& ctx) {
44 rb.Push<u32>(0); // bsd errno 44 rb.Push<u32>(0); // bsd errno
45} 45}
46 46
47void BSD_U::Connect(Kernel::HLERequestContext& ctx) { 47void BSD::Connect(Kernel::HLERequestContext& ctx) {
48 LOG_WARNING(Service, "(STUBBED) called"); 48 LOG_WARNING(Service, "(STUBBED) called");
49 49
50 IPC::ResponseBuilder rb{ctx, 4}; 50 IPC::ResponseBuilder rb{ctx, 4};
@@ -54,7 +54,7 @@ void BSD_U::Connect(Kernel::HLERequestContext& ctx) {
54 rb.Push<u32>(0); // bsd errno 54 rb.Push<u32>(0); // bsd errno
55} 55}
56 56
57void BSD_U::SendTo(Kernel::HLERequestContext& ctx) { 57void BSD::SendTo(Kernel::HLERequestContext& ctx) {
58 LOG_WARNING(Service, "(STUBBED) called"); 58 LOG_WARNING(Service, "(STUBBED) called");
59 59
60 IPC::ResponseBuilder rb{ctx, 4}; 60 IPC::ResponseBuilder rb{ctx, 4};
@@ -64,7 +64,7 @@ void BSD_U::SendTo(Kernel::HLERequestContext& ctx) {
64 rb.Push<u32>(0); // bsd errno 64 rb.Push<u32>(0); // bsd errno
65} 65}
66 66
67void BSD_U::Close(Kernel::HLERequestContext& ctx) { 67void BSD::Close(Kernel::HLERequestContext& ctx) {
68 LOG_WARNING(Service, "(STUBBED) called"); 68 LOG_WARNING(Service, "(STUBBED) called");
69 69
70 IPC::ResponseBuilder rb{ctx, 4}; 70 IPC::ResponseBuilder rb{ctx, 4};
@@ -74,13 +74,15 @@ void BSD_U::Close(Kernel::HLERequestContext& ctx) {
74 rb.Push<u32>(0); // bsd errno 74 rb.Push<u32>(0); // bsd errno
75} 75}
76 76
77BSD_U::BSD_U() : ServiceFramework("bsd:u") { 77BSD::BSD(const char* name) : ServiceFramework(name) {
78 static const FunctionInfo functions[] = {{0, &BSD_U::RegisterClient, "RegisterClient"}, 78 static const FunctionInfo functions[] = {
79 {1, &BSD_U::StartMonitoring, "StartMonitoring"}, 79 {0, &BSD::RegisterClient, "RegisterClient"},
80 {2, &BSD_U::Socket, "Socket"}, 80 {1, &BSD::StartMonitoring, "StartMonitoring"},
81 {11, &BSD_U::SendTo, "SendTo"}, 81 {2, &BSD::Socket, "Socket"},
82 {14, &BSD_U::Connect, "Connect"}, 82 {11, &BSD::SendTo, "SendTo"},
83 {26, &BSD_U::Close, "Close"}}; 83 {14, &BSD::Connect, "Connect"},
84 {26, &BSD::Close, "Close"},
85 };
84 RegisterHandlers(functions); 86 RegisterHandlers(functions);
85} 87}
86 88
diff --git a/src/core/hle/service/sockets/bsd_u.h b/src/core/hle/service/sockets/bsd.h
index 4e1252e9d..32d949e95 100644
--- a/src/core/hle/service/sockets/bsd_u.h
+++ b/src/core/hle/service/sockets/bsd.h
@@ -10,10 +10,10 @@
10namespace Service { 10namespace Service {
11namespace Sockets { 11namespace Sockets {
12 12
13class BSD_U final : public ServiceFramework<BSD_U> { 13class BSD final : public ServiceFramework<BSD> {
14public: 14public:
15 BSD_U(); 15 explicit BSD(const char* name);
16 ~BSD_U() = default; 16 ~BSD() = default;
17 17
18private: 18private:
19 void RegisterClient(Kernel::HLERequestContext& ctx); 19 void RegisterClient(Kernel::HLERequestContext& ctx);
diff --git a/src/core/hle/service/sockets/nsd.cpp b/src/core/hle/service/sockets/nsd.cpp
new file mode 100644
index 000000000..e3542d325
--- /dev/null
+++ b/src/core/hle/service/sockets/nsd.cpp
@@ -0,0 +1,34 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/service/sockets/nsd.h"
6
7namespace Service {
8namespace Sockets {
9
10NSD::NSD(const char* name) : ServiceFramework(name) {
11 static const FunctionInfo functions[] = {
12 {10, nullptr, "GetSettingName"},
13 {11, nullptr, "GetEnvironmentIdentifier"},
14 {12, nullptr, "GetDeviceId"},
15 {13, nullptr, "DeleteSettings"},
16 {14, nullptr, "ImportSettings"},
17 {20, nullptr, "Resolve"},
18 {21, nullptr, "ResolveEx"},
19 {30, nullptr, "GetNasServiceSetting"},
20 {31, nullptr, "GetNasServiceSettingEx"},
21 {40, nullptr, "GetNasRequestFqdn"},
22 {41, nullptr, "GetNasRequestFqdnEx"},
23 {42, nullptr, "GetNasApiFqdn"},
24 {43, nullptr, "GetNasApiFqdnEx"},
25 {50, nullptr, "GetCurrentSetting"},
26 {60, nullptr, "ReadSaveDataFromFsForTest"},
27 {61, nullptr, "WriteSaveDataToFsForTest"},
28 {62, nullptr, "DeleteSaveDataOfFsForTest"},
29 };
30 RegisterHandlers(functions);
31}
32
33} // namespace Sockets
34} // namespace Service
diff --git a/src/core/hle/service/sockets/nsd.h b/src/core/hle/service/sockets/nsd.h
new file mode 100644
index 000000000..a7c15a860
--- /dev/null
+++ b/src/core/hle/service/sockets/nsd.h
@@ -0,0 +1,20 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/kernel/hle_ipc.h"
8#include "core/hle/service/service.h"
9
10namespace Service {
11namespace Sockets {
12
13class NSD final : public ServiceFramework<NSD> {
14public:
15 explicit NSD(const char* name);
16 ~NSD() = default;
17};
18
19} // namespace Sockets
20} // namespace Service
diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp
index 4d7bc7c3e..eb4b5fa57 100644
--- a/src/core/hle/service/sockets/sfdnsres.cpp
+++ b/src/core/hle/service/sockets/sfdnsres.cpp
@@ -19,16 +19,18 @@ void SFDNSRES::GetAddrInfo(Kernel::HLERequestContext& ctx) {
19} 19}
20 20
21SFDNSRES::SFDNSRES() : ServiceFramework("sfdnsres") { 21SFDNSRES::SFDNSRES() : ServiceFramework("sfdnsres") {
22 static const FunctionInfo functions[] = {{0, nullptr, "SetDnsAddressesPrivate"}, 22 static const FunctionInfo functions[] = {
23 {1, nullptr, "GetDnsAddressPrivate"}, 23 {0, nullptr, "SetDnsAddressesPrivate"},
24 {2, nullptr, "GetHostByName"}, 24 {1, nullptr, "GetDnsAddressPrivate"},
25 {3, nullptr, "GetHostByAddr"}, 25 {2, nullptr, "GetHostByName"},
26 {4, nullptr, "GetHostStringError"}, 26 {3, nullptr, "GetHostByAddr"},
27 {5, nullptr, "GetGaiStringError"}, 27 {4, nullptr, "GetHostStringError"},
28 {6, &SFDNSRES::GetAddrInfo, "GetAddrInfo"}, 28 {5, nullptr, "GetGaiStringError"},
29 {7, nullptr, "GetNameInfo"}, 29 {6, &SFDNSRES::GetAddrInfo, "GetAddrInfo"},
30 {8, nullptr, "RequestCancelHandle"}, 30 {7, nullptr, "GetNameInfo"},
31 {9, nullptr, "CancelSocketCall"}}; 31 {8, nullptr, "RequestCancelHandle"},
32 {9, nullptr, "CancelSocketCall"},
33 };
32 RegisterHandlers(functions); 34 RegisterHandlers(functions);
33} 35}
34 36
diff --git a/src/core/hle/service/sockets/sfdnsres.h b/src/core/hle/service/sockets/sfdnsres.h
index b726a30fd..c07cc1594 100644
--- a/src/core/hle/service/sockets/sfdnsres.h
+++ b/src/core/hle/service/sockets/sfdnsres.h
@@ -12,7 +12,7 @@ namespace Sockets {
12 12
13class SFDNSRES final : public ServiceFramework<SFDNSRES> { 13class SFDNSRES final : public ServiceFramework<SFDNSRES> {
14public: 14public:
15 SFDNSRES(); 15 explicit SFDNSRES();
16 ~SFDNSRES() = default; 16 ~SFDNSRES() = default;
17 17
18private: 18private:
diff --git a/src/core/hle/service/sockets/sockets.cpp b/src/core/hle/service/sockets/sockets.cpp
index f1396eaa1..cedc276d9 100644
--- a/src/core/hle/service/sockets/sockets.cpp
+++ b/src/core/hle/service/sockets/sockets.cpp
@@ -2,7 +2,8 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include "core/hle/service/sockets/bsd_u.h" 5#include "core/hle/service/sockets/bsd.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"
7#include "core/hle/service/sockets/sockets.h" 8#include "core/hle/service/sockets/sockets.h"
8 9
@@ -10,7 +11,10 @@ namespace Service {
10namespace Sockets { 11namespace Sockets {
11 12
12void InstallInterfaces(SM::ServiceManager& service_manager) { 13void InstallInterfaces(SM::ServiceManager& service_manager) {
13 std::make_shared<BSD_U>()->InstallAsService(service_manager); 14 std::make_shared<BSD>("bsd:s")->InstallAsService(service_manager);
15 std::make_shared<BSD>("bsd:u")->InstallAsService(service_manager);
16 std::make_shared<NSD>("nsd:a")->InstallAsService(service_manager);
17 std::make_shared<NSD>("nsd:u")->InstallAsService(service_manager);
14 std::make_shared<SFDNSRES>()->InstallAsService(service_manager); 18 std::make_shared<SFDNSRES>()->InstallAsService(service_manager);
15} 19}
16 20