summaryrefslogtreecommitdiff
path: root/src/core/hle/service/sockets
diff options
context:
space:
mode:
authorGravatar ameerj2023-02-03 00:08:45 -0500
committerGravatar ameerj2023-02-03 00:08:45 -0500
commit2d2522693e7d453bf10a8246f704350b69e12ebc (patch)
tree195584b8f97867628b4d5bc37ecfff5c20655cf9 /src/core/hle/service/sockets
parentMerge pull request #9713 from unfamiliarplace/master (diff)
downloadyuzu-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.cpp15
-rw-r--r--src/core/hle/service/sockets/bsd.h23
-rw-r--r--src/core/hle/service/sockets/sfdnsres.cpp2
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
492std::pair<s32, Errno> BSD::PollImpl(std::vector<u8>& write_buffer, std::vector<u8> read_buffer, 491std::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
587Errno BSD::BindImpl(s32 fd, const std::vector<u8>& addr) { 586Errno 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
598Errno BSD::ConnectImpl(s32 fd, const std::vector<u8>& addr) { 597Errno 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
803std::pair<s32, Errno> BSD::SendImpl(s32 fd, u32 flags, const std::vector<u8>& message) { 802std::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
810std::pair<s32, Errno> BSD::SendToImpl(s32 fd, u32 flags, const std::vector<u8>& message, 809std::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