summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2021-09-24 22:34:32 -0700
committerGravatar GitHub2021-09-24 22:34:32 -0700
commitdb9b80399b7c60521482c8e9997035ec8a1031fc (patch)
treeb0fd83639672f157f1b3d9190f1c95aafb04f967
parentMerge pull request #7084 from ameerj/clang-12 (diff)
parentservice: bsd: Implement Read (diff)
downloadyuzu-db9b80399b7c60521482c8e9997035ec8a1031fc.tar.gz
yuzu-db9b80399b7c60521482c8e9997035ec8a1031fc.tar.xz
yuzu-db9b80399b7c60521482c8e9997035ec8a1031fc.zip
Merge pull request #7082 from Morph1984/bsd-read
service: bsd: Implement Read
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/sockets/bsd.cpp15
-rw-r--r--src/core/hle/service/sockets/bsd.h1
2 files changed, 15 insertions, 1 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index 7d85ecb6a..95a70dfd3 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -415,6 +415,19 @@ void BSD::Write(Kernel::HLERequestContext& ctx) {
415 }); 415 });
416} 416}
417 417
418void BSD::Read(Kernel::HLERequestContext& ctx) {
419 IPC::RequestParser rp{ctx};
420 const s32 fd = rp.Pop<s32>();
421
422 LOG_DEBUG(Service, "called. fd={} len={}", fd, ctx.GetWriteBufferSize());
423
424 ExecuteWork(ctx, RecvWork{
425 .fd = fd,
426 .flags = 0,
427 .message = std::vector<u8>(ctx.GetWriteBufferSize()),
428 });
429}
430
418void BSD::Close(Kernel::HLERequestContext& ctx) { 431void BSD::Close(Kernel::HLERequestContext& ctx) {
419 IPC::RequestParser rp{ctx}; 432 IPC::RequestParser rp{ctx};
420 const s32 fd = rp.Pop<s32>(); 433 const s32 fd = rp.Pop<s32>();
@@ -855,7 +868,7 @@ BSD::BSD(Core::System& system_, const char* name) : ServiceFramework{system_, na
855 {22, &BSD::Shutdown, "Shutdown"}, 868 {22, &BSD::Shutdown, "Shutdown"},
856 {23, nullptr, "ShutdownAllSockets"}, 869 {23, nullptr, "ShutdownAllSockets"},
857 {24, &BSD::Write, "Write"}, 870 {24, &BSD::Write, "Write"},
858 {25, nullptr, "Read"}, 871 {25, &BSD::Read, "Read"},
859 {26, &BSD::Close, "Close"}, 872 {26, &BSD::Close, "Close"},
860 {27, nullptr, "DuplicateSocket"}, 873 {27, nullptr, "DuplicateSocket"},
861 {28, nullptr, "GetResourceStatistics"}, 874 {28, nullptr, "GetResourceStatistics"},
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h
index 1d2df9c61..d68beef5c 100644
--- a/src/core/hle/service/sockets/bsd.h
+++ b/src/core/hle/service/sockets/bsd.h
@@ -135,6 +135,7 @@ private:
135 void Send(Kernel::HLERequestContext& ctx); 135 void Send(Kernel::HLERequestContext& ctx);
136 void SendTo(Kernel::HLERequestContext& ctx); 136 void SendTo(Kernel::HLERequestContext& ctx);
137 void Write(Kernel::HLERequestContext& ctx); 137 void Write(Kernel::HLERequestContext& ctx);
138 void Read(Kernel::HLERequestContext& ctx);
138 void Close(Kernel::HLERequestContext& ctx); 139 void Close(Kernel::HLERequestContext& ctx);
139 void EventFd(Kernel::HLERequestContext& ctx); 140 void EventFd(Kernel::HLERequestContext& ctx);
140 141