diff options
| author | 2023-02-03 00:08:45 -0500 | |
|---|---|---|
| committer | 2023-02-03 00:08:45 -0500 | |
| commit | 2d2522693e7d453bf10a8246f704350b69e12ebc (patch) | |
| tree | 195584b8f97867628b4d5bc37ecfff5c20655cf9 /src/core/hle/service/sockets | |
| parent | Merge pull request #9713 from unfamiliarplace/master (diff) | |
| download | yuzu-2d2522693e7d453bf10a8246f704350b69e12ebc.tar.gz yuzu-2d2522693e7d453bf10a8246f704350b69e12ebc.tar.xz yuzu-2d2522693e7d453bf10a8246f704350b69e12ebc.zip | |
Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
This reverts commit 25fc5c0e1158cb8e81cbc769b24ad84032a1fbfd, reversing
changes made to af20e25081f97d55b451606c87922e2b49f0d363.
Diffstat (limited to 'src/core/hle/service/sockets')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 15 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.h | 23 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/sfdnsres.cpp | 2 |
3 files changed, 20 insertions, 20 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 9e94a462f..bdb499268 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -208,7 +208,6 @@ void BSD::Bind(Kernel::HLERequestContext& ctx) { | |||
| 208 | const s32 fd = rp.Pop<s32>(); | 208 | const s32 fd = rp.Pop<s32>(); |
| 209 | 209 | ||
| 210 | LOG_DEBUG(Service, "called. fd={} addrlen={}", fd, ctx.GetReadBufferSize()); | 210 | LOG_DEBUG(Service, "called. fd={} addrlen={}", fd, ctx.GetReadBufferSize()); |
| 211 | |||
| 212 | BuildErrnoResponse(ctx, BindImpl(fd, ctx.ReadBuffer())); | 211 | BuildErrnoResponse(ctx, BindImpl(fd, ctx.ReadBuffer())); |
| 213 | } | 212 | } |
| 214 | 213 | ||
| @@ -312,7 +311,7 @@ void BSD::SetSockOpt(Kernel::HLERequestContext& ctx) { | |||
| 312 | const u32 level = rp.Pop<u32>(); | 311 | const u32 level = rp.Pop<u32>(); |
| 313 | const OptName optname = static_cast<OptName>(rp.Pop<u32>()); | 312 | const OptName optname = static_cast<OptName>(rp.Pop<u32>()); |
| 314 | 313 | ||
| 315 | const std::vector<u8> buffer = ctx.ReadBuffer(); | 314 | const auto buffer = ctx.ReadBuffer(); |
| 316 | const u8* optval = buffer.empty() ? nullptr : buffer.data(); | 315 | const u8* optval = buffer.empty() ? nullptr : buffer.data(); |
| 317 | size_t optlen = buffer.size(); | 316 | size_t optlen = buffer.size(); |
| 318 | 317 | ||
| @@ -489,7 +488,7 @@ std::pair<s32, Errno> BSD::SocketImpl(Domain domain, Type type, Protocol protoco | |||
| 489 | return {fd, Errno::SUCCESS}; | 488 | return {fd, Errno::SUCCESS}; |
| 490 | } | 489 | } |
| 491 | 490 | ||
| 492 | std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::vector<u8> read_buffer, | 491 | std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::span<const u8> read_buffer, |
| 493 | s32 nfds, s32 timeout) { | 492 | s32 nfds, s32 timeout) { |
| 494 | if (write_buffer.size() < nfds * sizeof(PollFD)) { | 493 | if (write_buffer.size() < nfds * sizeof(PollFD)) { |
| 495 | return {-1, Errno::INVAL}; | 494 | return {-1, Errno::INVAL}; |
| @@ -584,7 +583,7 @@ std::pair<s32, Errno> BSD::AcceptImpl(s32 fd, std::vector<u8>& write_buffer) { | |||
| 584 | return {new_fd, Errno::SUCCESS}; | 583 | return {new_fd, Errno::SUCCESS}; |
| 585 | } | 584 | } |
| 586 | 585 | ||
| 587 | Errno BSD::BindImpl(s32 fd, const std::vector<u8>& addr) { | 586 | Errno BSD::BindImpl(s32 fd, std::span<const u8> addr) { |
| 588 | if (!IsFileDescriptorValid(fd)) { | 587 | if (!IsFileDescriptorValid(fd)) { |
| 589 | return Errno::BADF; | 588 | return Errno::BADF; |
| 590 | } | 589 | } |
| @@ -595,7 +594,7 @@ Errno BSD::BindImpl(s32 fd, const std::vector<u8>& addr) { | |||
| 595 | return Translate(file_descriptors[fd]->socket->Bind(Translate(addr_in))); | 594 | return Translate(file_descriptors[fd]->socket->Bind(Translate(addr_in))); |
| 596 | } | 595 | } |
| 597 | 596 | ||
| 598 | Errno BSD::ConnectImpl(s32 fd, const std::vector<u8>& addr) { | 597 | Errno BSD::ConnectImpl(s32 fd, std::span<const u8> addr) { |
| 599 | if (!IsFileDescriptorValid(fd)) { | 598 | if (!IsFileDescriptorValid(fd)) { |
| 600 | return Errno::BADF; | 599 | return Errno::BADF; |
| 601 | } | 600 | } |
| @@ -800,15 +799,15 @@ std::pair<s32, Errno> BSD::RecvFromImpl(s32 fd, u32 flags, std::vector<u8>& mess | |||
| 800 | return {ret, bsd_errno}; | 799 | return {ret, bsd_errno}; |
| 801 | } | 800 | } |
| 802 | 801 | ||
| 803 | std::pair<s32, Errno> BSD::SendImpl(s32 fd, u32 flags, const std::vector<u8>& message) { | 802 | std::pair<s32, Errno> BSD::SendImpl(s32 fd, u32 flags, std::span<const u8> message) { |
| 804 | if (!IsFileDescriptorValid(fd)) { | 803 | if (!IsFileDescriptorValid(fd)) { |
| 805 | return {-1, Errno::BADF}; | 804 | return {-1, Errno::BADF}; |
| 806 | } | 805 | } |
| 807 | return Translate(file_descriptors[fd]->socket->Send(message, flags)); | 806 | return Translate(file_descriptors[fd]->socket->Send(message, flags)); |
| 808 | } | 807 | } |
| 809 | 808 | ||
| 810 | std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, const std::vector<u8>& message, | 809 | std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, std::span<const u8> message, |
| 811 | const std::vector<u8>& addr) { | 810 | std::span<const u8> addr) { |
| 812 | if (!IsFileDescriptorValid(fd)) { | 811 | if (!IsFileDescriptorValid(fd)) { |
| 813 | return {-1, Errno::BADF}; | 812 | return {-1, Errno::BADF}; |
| 814 | } | 813 | } |
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h index 81e855e0f..56bb3f8b1 100644 --- a/src/core/hle/service/sockets/bsd.h +++ b/src/core/hle/service/sockets/bsd.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | #pragma once | 4 | #pragma once |
| 5 | 5 | ||
| 6 | #include <memory> | 6 | #include <memory> |
| 7 | #include <span> | ||
| 7 | #include <vector> | 8 | #include <vector> |
| 8 | 9 | ||
| 9 | #include "common/common_types.h" | 10 | #include "common/common_types.h" |
| @@ -44,7 +45,7 @@ private: | |||
| 44 | 45 | ||
| 45 | s32 nfds; | 46 | s32 nfds; |
| 46 | s32 timeout; | 47 | s32 timeout; |
| 47 | std::vector<u8> read_buffer; | 48 | std::span<const u8> read_buffer; |
| 48 | std::vector<u8> write_buffer; | 49 | std::vector<u8> write_buffer; |
| 49 | s32 ret{}; | 50 | s32 ret{}; |
| 50 | Errno bsd_errno{}; | 51 | Errno bsd_errno{}; |
| @@ -65,7 +66,7 @@ private: | |||
| 65 | void Response(Kernel::HLERequestContext& ctx); | 66 | void Response(Kernel::HLERequestContext& ctx); |
| 66 | 67 | ||
| 67 | s32 fd; | 68 | s32 fd; |
| 68 | std::vector<u8> addr; | 69 | std::span<const u8> addr; |
| 69 | Errno bsd_errno{}; | 70 | Errno bsd_errno{}; |
| 70 | }; | 71 | }; |
| 71 | 72 | ||
| @@ -98,7 +99,7 @@ private: | |||
| 98 | 99 | ||
| 99 | s32 fd; | 100 | s32 fd; |
| 100 | u32 flags; | 101 | u32 flags; |
| 101 | std::vector<u8> message; | 102 | std::span<const u8> message; |
| 102 | s32 ret{}; | 103 | s32 ret{}; |
| 103 | Errno bsd_errno{}; | 104 | Errno bsd_errno{}; |
| 104 | }; | 105 | }; |
| @@ -109,8 +110,8 @@ private: | |||
| 109 | 110 | ||
| 110 | s32 fd; | 111 | s32 fd; |
| 111 | u32 flags; | 112 | u32 flags; |
| 112 | std::vector<u8> message; | 113 | std::span<const u8> message; |
| 113 | std::vector<u8> addr; | 114 | std::span<const u8> addr; |
| 114 | s32 ret{}; | 115 | s32 ret{}; |
| 115 | Errno bsd_errno{}; | 116 | Errno bsd_errno{}; |
| 116 | }; | 117 | }; |
| @@ -143,11 +144,11 @@ private: | |||
| 143 | void ExecuteWork(Kernel::HLERequestContext& ctx, Work work); | 144 | void ExecuteWork(Kernel::HLERequestContext& ctx, Work work); |
| 144 | 145 | ||
| 145 | std::pair<s32, Errno> SocketImpl(Domain domain, Type type, Protocol protocol); | 146 | std::pair<s32, Errno> SocketImpl(Domain domain, Type type, Protocol protocol); |
| 146 | std::pair<s32, Errno> PollImpl(std::vector<u8>& write_buffer, std::vector<u8> read_buffer, | 147 | std::pair<s32, Errno> PollImpl(std::vector<u8>& write_buffer, std::span<const u8> read_buffer, |
| 147 | s32 nfds, s32 timeout); | 148 | s32 nfds, s32 timeout); |
| 148 | std::pair<s32, Errno> AcceptImpl(s32 fd, std::vector<u8>& write_buffer); | 149 | std::pair<s32, Errno> AcceptImpl(s32 fd, std::vector<u8>& write_buffer); |
| 149 | Errno BindImpl(s32 fd, const std::vector<u8>& addr); | 150 | Errno BindImpl(s32 fd, std::span<const u8> addr); |
| 150 | Errno ConnectImpl(s32 fd, const std::vector<u8>& addr); | 151 | Errno ConnectImpl(s32 fd, std::span<const u8> addr); |
| 151 | Errno GetPeerNameImpl(s32 fd, std::vector<u8>& write_buffer); | 152 | Errno GetPeerNameImpl(s32 fd, std::vector<u8>& write_buffer); |
| 152 | Errno GetSockNameImpl(s32 fd, std::vector<u8>& write_buffer); | 153 | Errno GetSockNameImpl(s32 fd, std::vector<u8>& write_buffer); |
| 153 | Errno ListenImpl(s32 fd, s32 backlog); | 154 | Errno ListenImpl(s32 fd, s32 backlog); |
| @@ -157,9 +158,9 @@ private: | |||
| 157 | std::pair<s32, Errno> RecvImpl(s32 fd, u32 flags, std::vector<u8>& message); | 158 | std::pair<s32, Errno> RecvImpl(s32 fd, u32 flags, std::vector<u8>& message); |
| 158 | std::pair<s32, Errno> RecvFromImpl(s32 fd, u32 flags, std::vector<u8>& message, | 159 | std::pair<s32, Errno> RecvFromImpl(s32 fd, u32 flags, std::vector<u8>& message, |
| 159 | std::vector<u8>& addr); | 160 | std::vector<u8>& addr); |
| 160 | std::pair<s32, Errno> SendImpl(s32 fd, u32 flags, const std::vector<u8>& message); | 161 | std::pair<s32, Errno> SendImpl(s32 fd, u32 flags, std::span<const u8> message); |
| 161 | std::pair<s32, Errno> SendToImpl(s32 fd, u32 flags, const std::vector<u8>& message, | 162 | std::pair<s32, Errno> SendToImpl(s32 fd, u32 flags, std::span<const u8> message, |
| 162 | const std::vector<u8>& addr); | 163 | std::span<const u8> addr); |
| 163 | Errno CloseImpl(s32 fd); | 164 | Errno CloseImpl(s32 fd); |
| 164 | 165 | ||
| 165 | s32 FindFreeFileDescriptorHandle() noexcept; | 166 | s32 FindFreeFileDescriptorHandle() noexcept; |
diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp index 097c37d7a..e96eda7f3 100644 --- a/src/core/hle/service/sockets/sfdnsres.cpp +++ b/src/core/hle/service/sockets/sfdnsres.cpp | |||
| @@ -243,4 +243,4 @@ void SFDNSRES::GetAddrInfoRequestWithOptions(Kernel::HLERequestContext& ctx) { | |||
| 243 | rb.Push(0); | 243 | rb.Push(0); |
| 244 | } | 244 | } |
| 245 | 245 | ||
| 246 | } // namespace Service::Sockets \ No newline at end of file | 246 | } // namespace Service::Sockets |