New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sys_net: Implement sys_net_abort #12265
Conversation
d794fd5
to
01f1099
Compare
rpcs3/Emu/Cell/lv2/sys_net.cpp
Outdated
|
||
if (sock->queue.empty()) | ||
{ | ||
if (flags & 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SYS_NET_ABORT_STRICT_CHECK
Need definition in sys_net.h
rpcs3/Emu/Cell/lv2/sys_net.cpp
Outdated
@@ -1595,12 +1610,141 @@ error_code _sys_net_write_dump(ppu_thread& ppu, s32 id, vm::cptr<void> buf, s32 | |||
return CELL_OK; | |||
} | |||
|
|||
error_code lv2_socket::handle_abort(s32 type, u64 arg, s32 flags) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a pure design pov I feel the case _socket should be what is in there, the rest should be in the sys_net_abort function. lv2_socket is meant to be an interface for functions specifically acting on a socket.
rpcs3/Emu/Cell/lv2/sys_net.cpp
Outdated
} | ||
|
||
// Check if the PPU reappears in other sockets in case it waits on multiple sockets (so it won't be woken up) | ||
idm::select<lv2_socket>([&](u32, lv2_socket& _sock) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this from hardware tests?
I would expect poll/select to be woken up by an abort on one of their sockets(I might be wrong though).
24a553e
to
b3de542
Compare
Attempts to address #12236.Implement type 0 and 4 commands.