diff options
| author | 2018-07-26 11:51:11 -0700 | |
|---|---|---|
| committer | 2018-07-26 11:51:11 -0700 | |
| commit | 40eb243f86c5ba26ec37d4b6cb5ef38d0e4bbfda (patch) | |
| tree | 35a4a024372d2c7fa952d536f21aca55d828af70 /src | |
| parent | Merge pull request #808 from lioncash/mem-dedup (diff) | |
| parent | service/sockets: Add ethc:c and ethc:i services (diff) | |
| download | yuzu-40eb243f86c5ba26ec37d4b6cb5ef38d0e4bbfda.tar.gz yuzu-40eb243f86c5ba26ec37d4b6cb5ef38d0e4bbfda.tar.xz yuzu-40eb243f86c5ba26ec37d4b6cb5ef38d0e4bbfda.zip | |
Merge pull request #830 from lioncash/socket
service/sockets: Add missing socket services
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 22 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.h | 5 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/ethc.cpp | 38 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/ethc.h | 21 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sockets.cpp | 7 |
6 files changed, 95 insertions, 0 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 2e2de59b1..7a67439fd 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -225,6 +225,8 @@ add_library(core STATIC | |||
| 225 | hle/service/sm/sm.h | 225 | hle/service/sm/sm.h |
| 226 | hle/service/sockets/bsd.cpp | 226 | hle/service/sockets/bsd.cpp |
| 227 | hle/service/sockets/bsd.h | 227 | hle/service/sockets/bsd.h |
| 228 | hle/service/sockets/ethc.cpp | ||
| 229 | hle/service/sockets/ethc.h | ||
| 228 | hle/service/sockets/nsd.cpp | 230 | hle/service/sockets/nsd.cpp |
| 229 | hle/service/sockets/nsd.h | 231 | hle/service/sockets/nsd.h |
| 230 | hle/service/sockets/sfdnsres.cpp | 232 | hle/service/sockets/sfdnsres.cpp |
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 6aa1e2511..3211a8346 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -109,4 +109,26 @@ BSD::BSD(const char* name) : ServiceFramework(name) { | |||
| 109 | RegisterHandlers(functions); | 109 | RegisterHandlers(functions); |
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | BSDCFG::BSDCFG() : ServiceFramework{"bsdcfg"} { | ||
| 113 | // clang-format off | ||
| 114 | static const FunctionInfo functions[] = { | ||
| 115 | {0, nullptr, "SetIfUp"}, | ||
| 116 | {1, nullptr, "SetIfUpWithEvent"}, | ||
| 117 | {2, nullptr, "CancelIf"}, | ||
| 118 | {3, nullptr, "SetIfDown"}, | ||
| 119 | {4, nullptr, "GetIfState"}, | ||
| 120 | {5, nullptr, "DhcpRenew"}, | ||
| 121 | {6, nullptr, "AddStaticArpEntry"}, | ||
| 122 | {7, nullptr, "RemoveArpEntry"}, | ||
| 123 | {8, nullptr, "LookupArpEntry"}, | ||
| 124 | {9, nullptr, "LookupArpEntry2"}, | ||
| 125 | {10, nullptr, "ClearArpEntries"}, | ||
| 126 | {11, nullptr, "ClearArpEntries2"}, | ||
| 127 | {12, nullptr, "PrintArpEntries"}, | ||
| 128 | }; | ||
| 129 | // clang-format on | ||
| 130 | |||
| 131 | RegisterHandlers(functions); | ||
| 132 | } | ||
| 133 | |||
| 112 | } // namespace Service::Sockets | 134 | } // namespace Service::Sockets |
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h index a6b1ca7d0..c1da59b24 100644 --- a/src/core/hle/service/sockets/bsd.h +++ b/src/core/hle/service/sockets/bsd.h | |||
| @@ -26,4 +26,9 @@ private: | |||
| 26 | u32 next_fd = 1; | 26 | u32 next_fd = 1; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | class BSDCFG final : public ServiceFramework<BSDCFG> { | ||
| 30 | public: | ||
| 31 | explicit BSDCFG(); | ||
| 32 | }; | ||
| 33 | |||
| 29 | } // namespace Service::Sockets | 34 | } // namespace Service::Sockets |
diff --git a/src/core/hle/service/sockets/ethc.cpp b/src/core/hle/service/sockets/ethc.cpp new file mode 100644 index 000000000..d53c25eec --- /dev/null +++ b/src/core/hle/service/sockets/ethc.cpp | |||
| @@ -0,0 +1,38 @@ | |||
| 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/ethc.h" | ||
| 6 | |||
| 7 | namespace Service::Sockets { | ||
| 8 | |||
| 9 | ETHC_C::ETHC_C() : ServiceFramework{"ethc:c"} { | ||
| 10 | // clang-format off | ||
| 11 | static const FunctionInfo functions[] = { | ||
| 12 | {0, nullptr, "Initialize"}, | ||
| 13 | {1, nullptr, "Cancel"}, | ||
| 14 | {2, nullptr, "GetResult"}, | ||
| 15 | {3, nullptr, "GetMediaList"}, | ||
| 16 | {4, nullptr, "SetMediaType"}, | ||
| 17 | {5, nullptr, "GetMediaType"}, | ||
| 18 | }; | ||
| 19 | // clang-format on | ||
| 20 | |||
| 21 | RegisterHandlers(functions); | ||
| 22 | } | ||
| 23 | |||
| 24 | ETHC_I::ETHC_I() : ServiceFramework{"ethc:i"} { | ||
| 25 | // clang-format off | ||
| 26 | static const FunctionInfo functions[] = { | ||
| 27 | {0, nullptr, "GetReadableHandle"}, | ||
| 28 | {1, nullptr, "Cancel"}, | ||
| 29 | {2, nullptr, "GetResult"}, | ||
| 30 | {3, nullptr, "GetInterfaceList"}, | ||
| 31 | {4, nullptr, "GetInterfaceCount"}, | ||
| 32 | }; | ||
| 33 | // clang-format on | ||
| 34 | |||
| 35 | RegisterHandlers(functions); | ||
| 36 | } | ||
| 37 | |||
| 38 | } // namespace Service::Sockets | ||
diff --git a/src/core/hle/service/sockets/ethc.h b/src/core/hle/service/sockets/ethc.h new file mode 100644 index 000000000..9a3c88100 --- /dev/null +++ b/src/core/hle/service/sockets/ethc.h | |||
| @@ -0,0 +1,21 @@ | |||
| 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/service/service.h" | ||
| 8 | |||
| 9 | namespace Service::Sockets { | ||
| 10 | |||
| 11 | class ETHC_C final : public ServiceFramework<ETHC_C> { | ||
| 12 | public: | ||
| 13 | explicit ETHC_C(); | ||
| 14 | }; | ||
| 15 | |||
| 16 | class ETHC_I final : public ServiceFramework<ETHC_I> { | ||
| 17 | public: | ||
| 18 | explicit ETHC_I(); | ||
| 19 | }; | ||
| 20 | |||
| 21 | } // namespace Service::Sockets | ||
diff --git a/src/core/hle/service/sockets/sockets.cpp b/src/core/hle/service/sockets/sockets.cpp index 05bd10d35..08d2d306a 100644 --- a/src/core/hle/service/sockets/sockets.cpp +++ b/src/core/hle/service/sockets/sockets.cpp | |||
| @@ -3,6 +3,7 @@ | |||
| 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.h" | 5 | #include "core/hle/service/sockets/bsd.h" |
| 6 | #include "core/hle/service/sockets/ethc.h" | ||
| 6 | #include "core/hle/service/sockets/nsd.h" | 7 | #include "core/hle/service/sockets/nsd.h" |
| 7 | #include "core/hle/service/sockets/sfdnsres.h" | 8 | #include "core/hle/service/sockets/sfdnsres.h" |
| 8 | #include "core/hle/service/sockets/sockets.h" | 9 | #include "core/hle/service/sockets/sockets.h" |
| @@ -12,8 +13,14 @@ namespace Service::Sockets { | |||
| 12 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 13 | void InstallInterfaces(SM::ServiceManager& service_manager) { |
| 13 | std::make_shared<BSD>("bsd:s")->InstallAsService(service_manager); | 14 | std::make_shared<BSD>("bsd:s")->InstallAsService(service_manager); |
| 14 | std::make_shared<BSD>("bsd:u")->InstallAsService(service_manager); | 15 | std::make_shared<BSD>("bsd:u")->InstallAsService(service_manager); |
| 16 | std::make_shared<BSDCFG>()->InstallAsService(service_manager); | ||
| 17 | |||
| 18 | std::make_shared<ETHC_C>()->InstallAsService(service_manager); | ||
| 19 | std::make_shared<ETHC_I>()->InstallAsService(service_manager); | ||
| 20 | |||
| 15 | std::make_shared<NSD>("nsd:a")->InstallAsService(service_manager); | 21 | std::make_shared<NSD>("nsd:a")->InstallAsService(service_manager); |
| 16 | std::make_shared<NSD>("nsd:u")->InstallAsService(service_manager); | 22 | std::make_shared<NSD>("nsd:u")->InstallAsService(service_manager); |
| 23 | |||
| 17 | std::make_shared<SFDNSRES>()->InstallAsService(service_manager); | 24 | std::make_shared<SFDNSRES>()->InstallAsService(service_manager); |
| 18 | } | 25 | } |
| 19 | 26 | ||