mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 09:03:22 -05:00
Adds tcsendbreak (vXE-dIUIZlE), tcdrain (brGGJWsZauw), tcflush (FxHW5NuEXsY), tcflow (OG8xRaGIpqk), tcgetpgrp (5OEl1mRhUm0) and tcsetpgrp (YMuesZTyTl4) next to tcgetattr and tcsetattr in File/src/Terminal.cpp. The NIDs come from tools/nid_names.py and match aerolib.csv (zecoxao/sce_symbols 2883963a). They follow FreeBSD 11.4 lib/libc/gen/termios.c (8c639945), which implements each one over a terminal ioctl: tcflush returns EINVAL for a queue other than TCIFLUSH, TCOFLUSH or TCIOFLUSH and tcflow for an action outside TCOOFF..TCION before the descriptor is used; every other call fails with the error the merged tcgetattr gives (EBADF for a closed descriptor, ENOTTY for a file or pipe, EADDRNOTAVAIL or EOPNOTSUPP for a socket, per soo_ioctl and in_control/in6_control). tcsendbreak fails on TIOCSBRK before its 0.4 s pause, and tcflow's TCIOFF/TCION fail in tcgetattr. FreeBSD's pipe_ioctl answers TIOCGPGRP/TIOCSPGRP on a pipe or FIFO with the SIGIO owner, which is not modelled, so tcgetpgrp and tcsetpgrp throw on a host pipe above descriptor 2. Titles (homebrew catalog #1578), predicted stops from registry order: - PS5MC PPSA99420 imports tcsendbreak (442), tcdrain (443), tcflush (444), tcflow (445), tcgetpgrp (462) and tcsetpgrp (463); once pause and setrlimit are in, it stops at "FAIL: unresolved ELF import vXE-dIUIZlE from libkernel.prx". - XPSemu PPSA97358 imports tcsendbreak (214), its first uncovered import after execv, sigwait, setrlimit, mlockall, setuid and getopt: "FAIL: unresolved ELF import vXE-dIUIZlE from libkernel.prx". guest_terminal covers each call over stdin, stdout, stderr, a file, both pipe ends and an AF_INET socket, the EINVAL cases (also on -1), and EBADF for -1, a closed socket, a closed pipe and a closed file. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>