diff options
| author | 2021-09-24 08:20:32 -0400 | |
|---|---|---|
| committer | 2021-09-24 16:46:52 -0400 | |
| commit | 06f22c3d284114f5df2c66260e20aaae70db3cf9 (patch) | |
| tree | b0fd83639672f157f1b3d9190f1c95aafb04f967 /src | |
| parent | Merge pull request #7084 from ameerj/clang-12 (diff) | |
| download | yuzu-06f22c3d284114f5df2c66260e20aaae70db3cf9.tar.gz yuzu-06f22c3d284114f5df2c66260e20aaae70db3cf9.tar.xz yuzu-06f22c3d284114f5df2c66260e20aaae70db3cf9.zip | |
service: bsd: Implement Read
- Used by Diablo II: Resurrected
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 15 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.h | 1 |
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 | ||
| 418 | void 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 | |||
| 418 | void BSD::Close(Kernel::HLERequestContext& ctx) { | 431 | void 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 | ||