mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 16:43:05 -05:00
ioctl and _ioctl answered EBADF for every descriptor outside the libSceNet socket table. Decoded call sites: PS5MC (PPSA99420, FIONBIO x3, FIONREAD x2, TIOCGWINSZ x3), ProsperoTV (PPSA99003, FIONBIO on a pipe once poll on pipes is in), XPSemu (PPSA97358, 21 sites). Following FreeBSD 11.4 kern_ioctl (sys/kern/sys_generic.c:758), vn_ioctl (sys/kern/vfs_vnops.c:1488), pipe_ioctl (sys/kern/sys_pipe.c:1346) and randomdev_ioctl (sys/dev/random/randomdev.c:301), release/11.4.0 8c639945: FIONBIO sets or clears O_NONBLOCK through the same status flags as fcntl F_SETFL (EFAULT for a null argument before EBADF); FIONREAD reports the size past the offset of a file, the queued bytes of a pipe's read end, 0 on its write end, ENOTTY on the random device, and throws on a directory or another character device; termios requests (group 't', TIOCGWINSZ included) fail with ENOTTY, as tcgetattr already takes these descriptors as not a terminal; any other request throws naming the request and descriptor kind. Sockets keep their path unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>