Commit Graph
14017 Commits
Author SHA1 Message Date
Tripchipp e58fcc9c3b fix(tools): check doc links whose text is inline code 2026-10-20 21:05:11 +02:00
hamb3r 50a4d5bfb3 chore(libc): merge main into feat/libc-backtrace-windows 2026-10-20 22:04:09 +03:00
Dean 434e965d46 Merge pull request #8581 from xXPBSXx/fix/configure-seed-unreadable-cache
fix(tools): report an unreadable cache in configure_seed
2026-10-21 07:58:30 +13:00
Dean 40b4972295 Merge pull request #8248 from YossiYad/feat/ult-sync-objects
feat(libSceUlt): implement the reader-writer lock, sceUltMutexTryLock, the option initializers and ulthread self, yield and exit
2026-10-21 07:57:41 +13:00
Dean a9cfea22f7 Merge pull request #8594 from mantavisual/fix/libkernel-utimes-rejected-keeps-atime
fix(libkernel): leave a file's times untouched when Windows utimes refuses them
2026-10-21 07:56:52 +13:00
Dean b7596be595 Merge pull request #6658 from nicolasabosch/perf/gpu-wake-sleeps
perf(libkernel): end short sleeps when the GPU or a flip completes
2026-10-21 07:55:28 +13:00
Adrià 84870f8aad Merge pull request #8623 from adriadam10/fix/main-vnode-initial-deleted
fix(main): skip the parent watch of a vnode already deleted at registration
2026-10-20 20:50:04 +02:00
bfd1d5b568 fix(libc): compare the relinked module stem without the last extension only
The stem of a request and of a relinked module name was cut at the first dot,
so a request for Engine.Render.prx that missed could load Engine.Core.prx.guest.prx.
Only the last extension is removed now, as the review of the stem lookup asked,
and the variant-names test requests a dotted name that must not load the sibling
fixture module.

Co-Authored-By: lendinglibrary <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 20:50:03 +02:00
Adrià FranchandClaude Sonnet 5.5 c420b8d53d fix(main): skip the parent watch of a vnode already deleted at registration
Culprit: none in 892a4f1328..b85d972f42; race in the Windows vnode watch (50b06110b guarded only the loop). Run 39473930499, guest_kqueue: a watched file deleted before registration is snapshotted under $Extend\$Deleted, WatchParent got ERROR_ACCESS_DENIED and threw.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 20:49:45 +02:00
lendinglibrary a3c4cdcdbb fix(libc): find a relinked module by stem when the exact name misses
A title asks for a module by its console name and the relinker names the
converted module after the ELF it was built from: Unity IL2CPP titles load
Media/Modules/<name>.prx and Media/Plugins/<name>.prx while the dump holds
<name>.elf.guest.prx, so sceKernelLoadStartModule failed with 0x80020002
and the title stopped 3 s after start. After the exact and the
case-insensitive <name>.guest.prx lookups miss, take the sibling whose stem
matches the request and ends with .guest.prx, shortest name first.
2026-10-20 20:42:59 +02:00
MarcZX10 636a609902 test(libkernel): cover socket fcntl descriptor limits 2026-10-20 18:39:18 +00:00
altuuxandAntigravity a685523018 fix(libkernel_sys): fail readlink through a regular file with ENOTDIR on Windows
A path whose directory part is a regular file, such as file/child, failed
with ENOENT in readlink and readlinkat on Windows, where FreeBSD 11.4 fails
it with ENOTDIR (vfs_cache_lookup, sys/kern/vfs_cache.c). The not-found
error now checks whether the nearest existing ancestor is not a directory,
as was previously done for chmod, truncate, utimes, rename, remove, chdir,
opendir, and fopen.

Co-Authored-By: Antigravity <[email protected]>
2026-10-20 20:25:13 +02:00
Dean b85d972f42 Merge pull request #7897 from babyhuey/fix/libc-adopt-guest-heap-only-when-replaced
fix(libc): adopt the guest SDK allocator only when the title replaces the heap
2026-10-21 07:20:48 +13:00
Dean 78e398d6d0 Merge pull request #8467 from xXPBSXx/fix/raise-default-ignored-signals
fix(libkernel): let raise and kill return 0 for ignored signals
2026-10-21 07:18:46 +13:00
David 24c5c8ed5f test(relinker): convert a call before zero padding and a misread FS byte for Windows and macOS 2026-10-20 22:17:45 +04:00
David c978e4d4c4 test(relinker): keep falling through calls that end at a boundary or before non-zero bytes 2026-10-20 22:17:44 +04:00
David c139a3faf2 test(relinker): stop at zero padding after direct and indirect calls 2026-10-20 22:17:43 +04:00
David 95db1ab6e6 fix(relinker): stop the control-flow walk at zero padding after a call 2026-10-20 22:17:42 +04:00
Dean 352dbe751a Merge pull request #8583 from Ondra97/codex/fix-pthread-attr-policy
fix(libkernel): report current thread scheduling policy in attributes
2026-10-21 07:14:27 +13:00
Dean 86c1784b90 Merge pull request #8589 from xXPBSXx/fix/scenet-host-errno-table
fix(libSceNet): map every host socket error through the guest errno table
2026-10-21 07:13:22 +13:00
Dean 17e0f6e677 Merge pull request #8599 from javierUDP/fix/interp-outside-code-scan
fix(relinker): keep the interpreter path out of the scanned code
2026-10-21 07:12:32 +13:00
Dean GalvinandZenodeon 779edd3b2d Merge main into stk-resource-performance-pr
Co-authored-by: Zenodeon <[email protected]>
2026-10-21 07:09:19 +13:00
Dean 8727ddb29e Merge pull request #8579 from priyanshrv-netizen/feat/libc-feraise
feat(libc): implement _Feraise
2026-10-21 07:02:45 +13:00
Dean 2ea00aae40 Merge pull request #6436 from LeandroLP23/fix/agc-key-modules-by-gpl-mode
fix(agc): key shader modules by the pipeline library mode
2026-10-21 07:02:24 +13:00
xXPBSXxandClaude Sonnet 5.5 994fb42929 fix(libkernel_sys): check the readlink size before the path
FreeBSD 11.4 kern_readlinkat returns EINVAL for a count above IOSIZE_MAX
before namei looks at the path. readlink and readlinkat checked a NULL or
empty path first, so readlink(NULL, buf, SIZE_MAX) returned EFAULT and
readlink("", buf, SIZE_MAX) returned ENOENT where FreeBSD returns EINVAL.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 20:02:22 +02:00
Dean 2cdb06295c Merge pull request #6759 from Zenodeon/write-watch-page-restoration-main
fix(agc): restore write-watch coverage for remapped pages
2026-10-21 07:02:07 +13:00
milescovielloandClaude Opus 5.5 1196cb3823 test(agc): leave the template audit out of the lookup log test
The test builds a set over 1500 textures and expects its first proof on
the fast path. A ShaderResources object stamps its last full walk when it
is constructed, before that build, so when the build and the first proof
take more than the default 1000 ms template audit interval (as under
parallel test load) the audit turns the proof into a full walk and the
test fails. The test now sets APS5_TEMPLATE_AUDIT_MS to 0 unless it is
already set, as the sampled cache budget test pins it, so its checks see
only memory changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 18:01:55 +00:00
Dean eae6e0162f Merge pull request #8512 from oneandonlydean/fix/7652-host-raise-patience
fix(libkernel): bound the raise wait on host code to 50 ms
2026-10-21 07:00:13 +13:00
javierUDP 2775e72bf0 fix(relinker): trim only an interpreter path at the start of the segment
Trimming the end of any PT_INTERP inside an executable segment dropped
the code in front of one that follows it, so an image without an SCE
block whose interpreter sits after its code lost its entry points. The
trim now applies to an interpreter that starts the segment, and the SCE
path keeps taking any interpreter inside the scanned range, as before.
2026-10-20 14:56:41 -03:00
javierUDP cc69253830 fix(relinker): keep the interpreter path out of the scanned code
The code analysis trims an interpreter path from the start of an
executable segment only for images that have a PT_SCE_DYNLIBDATA block.
An executable without one keeps that path in the scanned range, so
/libexec/ld-elf.so.1 is walked as code: a RELATIVE relocation with
addend 0 roots the control flow graph at the first byte of the segment,
and the 0x64 of "ld-elf" decodes as an FS-prefixed instruction that the
Windows and macOS TLS rewriters refuse. The trim now runs for both
layouts, ending at the segment for an image without the block.
2026-10-20 14:56:20 -03:00
Ondra97 c7032e6acf fix(libSceNet): retire invalidated epoll registrations 2026-10-20 19:42:54 +02:00
MarcZX10 2e4e1a5113 test(libkernel): cover socket descriptor exhaustion 2026-10-20 17:41:40 +00:00
MarcZX10 2299284a69 fix(libkernel): keep socket descriptors within FD_SETSIZE 2026-10-20 17:41:40 +00:00
Dean Galvin 143ed02750 Merge branch 'main' into #7417
Resolve docs/dev/debt/libc.md: keep main's _Throw_Cpp_error entry and this branch's call tracing entry.
2026-10-21 06:33:59 +13:00
xXPBSXxandClaude Sonnet 5.5 eaadb2924b fix(libkernel): report the starting entry index in getdirentries basep on Windows
The Windows sceKernelGetdirentries stored 0 in *basep on every read, so a
guest looping on the cookie saw it stall (FreeBSD stores the directory
offset the read started at, kern_getdirentries: *basep = loff). Report the
index of the first entry of the read, the same unit lseek takes on these
descriptors, and run guest_directory_entries on Windows, where it was never
built.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 19:33:03 +02:00
Ethan Barr 084dcf8736 fix(libkernel): fire EVFILT_WRITE on a socket once free send space reaches NOTE_LOWAT
kevent threw NotImplemented for EVFILT_WRITE with NOTE_LOWAT above 1 on a socket, although the socket readiness check already reports free send-buffer space (SO_SNDBUF less SIOCOUTQ on Linux). The write event now fires once that space reaches the mark, as FreeBSD 11's filt_sowrite compares sbspace with kn_sdata, and stays silent while the space is below it. The debt entry no longer says a write mark is limited to 1. Reference: https://github.com/freebsd/freebsd-src/blob/release/11.0.0/sys/kern/uipc_socket.c
2026-10-20 13:32:17 -04:00
Dean 892a4f1328 Merge pull request #7993 from MarrasFederico/fix/relinker-windows-trampoline-builder-guards
fix(relinker): validate Windows trampoline section placement and sites
2026-10-21 06:30:55 +13:00
Dean b9731811ba Merge pull request #8001 from mopga/fix/relinker-amd-only-claimed-followers
fix(relinker): do not take instructions another AMD-only stub moved as a short instruction's followers
2026-10-21 06:30:39 +13:00
Nicolas Abosch f857616caa Merge remote-tracking branch 'origin/main' into perf/gpu-wake-sleeps
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Execution/src/Driver/EntryPoints.cpp
#	core/libs/prx/libSceAgcDriver/Graphics/include/Recorder.hpp
2026-10-20 14:29:10 -03:00
Sam fa379c0766 Merge remote-tracking branch 'origin/main' into feat/libc-wcstombs-s
# Conflicts:
#	core/libs/prx/libSceAmpr/Export.cpp
2026-10-20 19:28:46 +02:00
Braxton Atkinson 750299a617 test(libSceNpUniversalDataSystem): cover locale-independent describe output 2026-10-20 12:27:13 -05:00
Braxton Atkinson 941ca91d18 fix(libSceNpUniversalDataSystem): keep float text locale-independent 2026-10-20 12:27:12 -05:00
Dean 083a3be61c Merge pull request #8058 from HQasper/claude/project-thread-md0z38
feat(libSceFont): open the other script files of a system font set
2026-10-21 06:26:24 +13:00
Dean 542c65d74c Merge pull request #8023 from Ondra97/codex/fix-scaled-hyperbolic
fix(libc): avoid premature scaled hyperbolic overflow
2026-10-21 06:26:06 +13:00
Dean 3e7d1d297c Merge pull request #8138 from bl4nkTHEBUNKER/fix/pad-touchpad-resolution
fix(libScePad): report the DualSense touchpad resolution
2026-10-21 06:25:52 +13:00
Dean bdc33a556c Merge pull request #7995 from mpratsaki/fix/relinker-windows-file-identity
fix(relinker): compare Windows file identities by handle
2026-10-21 06:25:35 +13:00
xXPBSXxandClaude Sonnet 5.5 3fb021f9bb fix(libSceNet): map every host socket error through the guest errno table
sceNet translated only 21 host socket errors and reported every other one
as EIO. libkernel already owns the complete FreeBSD table in
GuestSockets::GuestErrorFromHost, so use it for net_error. The new check
makes a stream socket with the UDP protocol fail with EPROTONOSUPPORT (43)
instead of EIO (5).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 19:24:33 +02:00
tkcm01andClaude Opus 5.5 5092e19c64 fix(tools): preserve pad command ordering across clock resets
pad_timeline.py now takes its sequence from pad_input.next_sequence, and
pad_input.previous_sequence reads the sequence from an APS5_PAD_TIMELINE
header, so a pulse or timeline queued after a host reboot still exceeds
the sequence the runtime loaded from the existing command file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 13:23:42 -04:00
tkcm01andClaude Opus 5.5 39eea03e42 fix(tools): evaluate skip directories relative to scan root in env_reference
source_files compared every component of the absolute path against SKIP,
so a --root inside a directory named build or 3rdparty yielded no files.
Only components below the scan root are compared now.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 13:23:33 -04:00
Yuri Olive 43e7a4792e Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/gamelivestreaming-missing-exports
# Conflicts:
#	core/libs/prx/libSceGameLiveStreaming/Export.cpp
2026-10-20 14:23:27 -03:00