Resolves docs/dev/debt/libkernel.md: main's sigaction entry (SIGPIPE outside Windows) and this branch's signal entry, which points to libSceLibcInternal for siginterrupt.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Resolves docs/dev/debt/libc.md: main's updated _Thrd entry, and siginterrupt stays documented in libSceLibcInternal.md.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Remove the four find-last placeholders from the recovered inventory.
The named provider is searched before the libc fallback, so throwing
placeholders would shadow the working implementation under review.
Keep the remaining declarations and definitions paired.
Update the technical debt count to match the remaining exports.
NIDs s2eGsgUF9vk (_ZnamSt11align_val_tRKSt9nothrow_t) and v09ZcAhZzSc
(_ZdaPvSt11align_val_t) forward to the libc exports of the same names
instead of throwing.
_Mtxinit makes a recursive mutex named SceLibcI_<name> (SceLibcI without
a name) and returns 0, or 1 when the attribute or the mutex cannot be
created. _Mtxlock, _Mtxunlock and _Mtxdst return 1 when the pthread call
fails and 0 otherwise. shadPS4 and fpPS4 agree on both.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The ps5-payload-sdk's fts_build calls __opendir2 with DTF_HIDEW,
DTF_NODUP and DTF_REWIND, and PS5 Bible Reader (PPSA99793) failed to
load on the unresolved import. In FreeBSD 11 those flags only change
reading a union mount, which AnyPS5 does not have, so the call opens
the directory as opendir does; other flags throw.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Brings in #10706's export headers. SignalList.cpp now takes GuestSigaction
and _sigaction_nid_postfix from libkernel/include/Api.hpp, the
siginterrupt_nid_postfix declaration moves from libc/include/Api.hpp to
libSceLibcInternal/include/Api.hpp, and GuestSignals.cpp includes that
header for its siginterrupt checks.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
fstatvfs kept the guest struct statvfs and the sfs2svfs conversion from
the kernel's statfs to itself. Both move to include/Statvfs.hpp so that
statvfs can convert a volume the same way without opening the path.
Nothing changes for fstatvfs.
XPSemu (PPSA97358) imports eleven posix_spawn calls from
libSceLibcInternal.prx, one reference each, and no call site is known.
Predicted stop (import order, not measured), behind isnanf (idx 296):
`FAIL: unresolved ELF import 44hlATrd47U from libSceLibcInternal.prx`
(posix_spawnattr_init, idx 347), followed by p--TkNVsXjA, LG6O0oW9bQU,
Sj7y+JO5PcM, Ud8CbISKRGM, Hq9-2AMG+ks, IUfBO5UIZNc, Heh4KJwyoX8 (348-355),
UV4m0bznVtU, Ani6e+T-y6Q and 3Nr9caNHhyg (379-381).
The nine object calls follow FreeBSD release/11.4.0 (8c639945a445)
lib/libc/gen/posix_spawn.c: posix_spawnattr_init allocates a zeroed
attribute object (ENOMEM on failure), _destroy frees it, _setflags and
_setsigdefault store the value; posix_spawn_file_actions_init allocates an
empty list (-1 on failure, as in 11.4), _destroy frees it with its
entries, and _addopen (path copied), _adddup2 and _addclose append in
order after returning EBADF for a negative descriptor. Null or
uninitialized objects, which FreeBSD dereferences, throw.
posix_spawn and posix_spawnp throw "process creation not implemented",
as execvp does: FreeBSD validates no argument before rfork/vfork, and no
child process can be created here. TechnicalDebt records them.
guest_posix_spawn covers the attribute round trips, the recorded action
sequence, the EBADF cases and the throws. NIDs computed with
tools/nid_names.py and present in aerolib.
Co-Authored-By: Claude Fable 5.1 <[email protected]>