diff options
| author | 2018-03-25 15:45:18 -0400 | |
|---|---|---|
| committer | 2018-03-25 15:45:18 -0400 | |
| commit | a0933d92fc8bbb6240fff9a7dc8ed7648be474af (patch) | |
| tree | 75febb12f0247dc8f855bd1be845722141005287 /src/core | |
| parent | Merge pull request #275 from MerryMage/addticks-dynarmic (diff) | |
| parent | Service/sockets: add bsd:s, nsd:a, nsd:u services (diff) | |
| download | yuzu-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.txt | 6 | ||||
| -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.cpp | 34 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/nsd.h | 20 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sfdnsres.cpp | 22 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sfdnsres.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sockets.cpp | 8 |
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 | ||
| 8 | namespace Service { | 8 | namespace Service { |
| 9 | namespace Sockets { | 9 | namespace Sockets { |
| 10 | 10 | ||
| 11 | void BSD_U::RegisterClient(Kernel::HLERequestContext& ctx) { | 11 | void 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 | ||
| 20 | void BSD_U::StartMonitoring(Kernel::HLERequestContext& ctx) { | 20 | void 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 | ||
| 29 | void BSD_U::Socket(Kernel::HLERequestContext& ctx) { | 29 | void 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 | ||
| 47 | void BSD_U::Connect(Kernel::HLERequestContext& ctx) { | 47 | void 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 | ||
| 57 | void BSD_U::SendTo(Kernel::HLERequestContext& ctx) { | 57 | void 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 | ||
| 67 | void BSD_U::Close(Kernel::HLERequestContext& ctx) { | 67 | void 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 | ||
| 77 | BSD_U::BSD_U() : ServiceFramework("bsd:u") { | 77 | BSD::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 @@ | |||
| 10 | namespace Service { | 10 | namespace Service { |
| 11 | namespace Sockets { | 11 | namespace Sockets { |
| 12 | 12 | ||
| 13 | class BSD_U final : public ServiceFramework<BSD_U> { | 13 | class BSD final : public ServiceFramework<BSD> { |
| 14 | public: | 14 | public: |
| 15 | BSD_U(); | 15 | explicit BSD(const char* name); |
| 16 | ~BSD_U() = default; | 16 | ~BSD() = default; |
| 17 | 17 | ||
| 18 | private: | 18 | private: |
| 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 | |||
| 7 | namespace Service { | ||
| 8 | namespace Sockets { | ||
| 9 | |||
| 10 | NSD::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 | |||
| 10 | namespace Service { | ||
| 11 | namespace Sockets { | ||
| 12 | |||
| 13 | class NSD final : public ServiceFramework<NSD> { | ||
| 14 | public: | ||
| 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 | ||
| 21 | SFDNSRES::SFDNSRES() : ServiceFramework("sfdnsres") { | 21 | SFDNSRES::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 | ||
| 13 | class SFDNSRES final : public ServiceFramework<SFDNSRES> { | 13 | class SFDNSRES final : public ServiceFramework<SFDNSRES> { |
| 14 | public: | 14 | public: |
| 15 | SFDNSRES(); | 15 | explicit SFDNSRES(); |
| 16 | ~SFDNSRES() = default; | 16 | ~SFDNSRES() = default; |
| 17 | 17 | ||
| 18 | private: | 18 | private: |
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 { | |||
| 10 | namespace Sockets { | 11 | namespace Sockets { |
| 11 | 12 | ||
| 12 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 13 | void 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 | ||