Commit Graph
1004 Commits
Author SHA1 Message Date
Retr0 ada29c700c docs(libkernel): state only the socketpair inode numbering as a gap from uipc_sense 2026-10-26 21:14:34 +02:00
Retr0 d99208fa84 Merge remote-tracking branch 'origin/main' into fix/socketpair-fstat-inode
# Conflicts:
#	core/libs/prx/libkernel/Socket/src/Udp.cpp
#	docs/dev/debt/libkernel.md
2026-10-26 21:09:20 +02:00
011010 9e23a9263c fix(libkernel): report urgent data in poll on macOS
XNU's poll never reports POLLPRI for out-of-band data, so a guest poll
that asks for it never sees the urgent byte: guest_poll aborts at the
OOB case and a title waiting on priority data would sleep to its
timeout.

On macOS the pending byte is read from SIOCATMARK, which reports it
without consuming it and has no descriptor limit, unlike the fd_set
probe this replaces. POLLRDBAND is set with POLLPRI as FreeBSD 11.4's
sopoll_generic does, and the wait takes the sliced path main already
uses for a kqueue wait, so it wakes on the next slice instead of at the
deadline.

recv(MSG_OOB | MSG_PEEK) was measured to consume the byte on macOS
27.0.1 and kevent with NOTE_OOB does not fire there, which is why the
probe is SIOCATMARK. The select and libSceNet poll paths still miss
urgent data on macOS and are recorded in the debt entry.
2026-10-26 13:00:51 -06:00
Adrià d891568dfc Merge pull request #10499 from frankea/fix/kernel-gettimezone-host-zone
fix(libkernel): report the host zone's standard offset and daylight saving amount from sceKernelGettimezone
2026-10-26 19:51:44 +01:00
Adrià aec3b38800 Merge pull request #8010 from Piyush-Sagar/codex/implement-condattr-getclock
feat(libkernel): implement pthread_condattr_getclock
2026-10-26 19:02:45 +01:00
orezraeyandClaude Opus 5.5 31d24c2160 Merge main into docs/libkernel-version-boottime-socpower-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 14:08:17 -03:00
orezraeyandClaude Opus 5.5 0e76fe2379 Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 14:07:49 -03:00
Dean ade9b32167 Merge pull request #11029 from orezraey/fix/libkernel-event-error-measured-ps5
fix(libkernel): add 0x80020000 to any event fflags in sceKernelGetEventError as measured on a PS5
2026-10-27 05:38:39 +13:00
frankea 02eb8256d3 Merge remote-tracking branch 'origin/main' into fix/kernel-gettimezone-host-zone 2026-10-26 12:33:18 -04:00
Adrià 570089a806 Merge pull request #10310 from orezraey/docs/libkernel-select-measured-ps5
docs(libkernel): record select limits as measured on a PS5
2026-10-26 17:19:30 +01:00
Piyush Sagar bf029fdf02 docs(libkernel): relocate condattr clock debt entry 2026-10-26 21:44:54 +05:30
Piyush Sagar 947e72e4d7 feat(libkernel): implement pthread_condattr_getclock 2026-10-26 21:44:53 +05:30
Adrià 518d36eaec Merge pull request #10305 from orezraey/docs/libkernel-flexible-flag-8000-measured-ps5
docs(libkernel): record flexible memory flag 0x8000 as measured on a PS5
2026-10-26 17:04:25 +01:00
orezraeyandClaude Opus 5.5 8bef063196 Merge main into fix/libkernel-posix-thread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:50:24 -03:00
orezraeyandClaude Opus 5.5 a5a384faa7 Merge main into docs/libkernel-select-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:49:55 -03:00
Adrià 5bdda3661e Merge pull request #10132 from orezraey/fix/libkernel-sysctl-system-measured-ps5
fix(libkernel): report the sysctl system strings and integers a PS5 reports
2026-10-26 16:48:57 +01:00
Adrià 84ffc1ae2d Merge pull request #10198 from orezraey/docs/libkernel-localtime-measured-ps5
docs(libkernel): record what the local time conversions write on a PS5
2026-10-26 16:37:12 +01:00
Adrià 39c801a13d Merge pull request #9669 from fogydes/feat/libkernel-exec-replacement
feat(libkernel): implement execv, execvp and execve process replacement
2026-10-26 16:36:56 +01:00
orezraeyandClaude Opus 5.5 da762ebf4b Merge main into fix/libkernel-posix-thread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:31:40 -03:00
hypermistandClaude Opus 5.5 d6f2d6501e docs(debt): cite firmware 13.60, not 12.00, for the decrypted modules
The modules these entries were read from record SDK 13.60 (0x13600007)
in their module-param segment, so they are firmware 13.60. Only the
version label changes; the behaviour described is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-26 16:17:50 +01:00
Adrià 716cb74e08 Merge pull request #10162 from xXPBSXx/docs/debt-kernel-inet-pton-title
docs(debt): note how titles call inet_pton
2026-10-26 16:09:54 +01:00
Adrià 1fd64318f3 Merge pull request #10105 from xXPBSXx/docs/debt-kernel-semtimedwait-title
docs(debt): note how a title calls sem_timedwait
2026-10-26 16:06:43 +01:00
Adrià 7903201bb4 Merge pull request #10130 from orezraey/fix/libkernel-pthread-attr-measured-ps5
fix(libkernel): report thread attribute inheritance and null-output errors as measured on a PS5
2026-10-26 15:45:11 +01:00
Alvaro cf2aa7c362 fix(libkernel): return EAGAIN when renaming a named mutex, rwlock or barrier 2026-10-26 15:39:49 +01:00
xXPBSXx 92b9a7f9cb Merge upstream/main into docs/debt-kernel-getoperationmode-title
# Conflicts:
#	docs/dev/debt/libkernel.md
2026-10-26 15:39:12 +01:00
Alvaro 5c30b97440 feat(libkernel): implement pthread_barrier_setname_np 2026-10-26 15:37:26 +01:00
Alvaro a27cecc950 feat(libkernel): implement pthread_rwlock_setname_np 2026-10-26 15:37:26 +01:00
Alvaro d100cdaf52 feat(libkernel): implement pthread_mutex_setname_np 2026-10-26 15:36:49 +01:00
xXPBSXxandClaude Sonnet 5.5 acea44527e docs(debt): note how a title calls sem_timedwait
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 15:29:31 +01:00
Adrià 85f8e11372 Merge pull request #10137 from orezraey/docs/libkernel-sem-timedwait-measured-ps5
docs(libkernel): record sem_timedwait timeouts as measured on a PS5
2026-10-26 15:27:46 +01:00
Adrià fa77c2b4e5 Merge pull request #10121 from xXPBSXx/docs/debt-kernel-ftruncate-title
docs(debt): note how a title calls sceKernelFtruncate
2026-10-26 15:21:22 +01:00
orezraeyandClaude Opus 5.5 60b9e7f43f Merge main into fix/libkernel-posix-thread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:07:59 -03:00
Adrià 32b7331c44 Merge pull request #10089 from xXPBSXx/docs/debt-coredump-getstopinfocpu-title
docs(debt): note how a title calls the sceCoredump stop-info, attach and user-data functions
2026-10-26 15:01:18 +01:00
Adrià 9656d366be Merge pull request #9962 from kallmek3nny/feat/libkernel-pthread-cond-setname-np
feat(libkernel): add pthread_cond_setname_np
2026-10-26 14:42:29 +01:00
Adrià 1061954c7e Merge pull request #8520 from qpavyros/codex/app-archive-directories
feat(libkernel): enumerate archived app directories
2026-10-26 14:23:39 +01:00
review 044e52a2f0 Merge commit 'refs/review/9669/head' into HEAD 2026-10-26 14:10:41 +01:00
orezraeyandClaude Opus 5.5 db07b6737d Merge main into fix/libkernel-sysctl-system-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:20:00 -03:00
Yunus Shaikh 33851346ad Merge main into docs/debt-gaps-bf208 2026-10-26 05:16:02 -07:00
WallisSkillandClaude Opus 5.5 540364a24f fix(libkernel): queue a raise's APC only for a thread in a libkernel wait
A target in host code got the delivery as an APC as well as through the
return breakpoint and the sampling. An APC runs in any alertable wait,
so host code that waits alertably while holding a lock would have run
the guest handler inside that wait with the lock held. The APC is now
queued only while the target is in a libkernel wait (Pthread waitCount),
the point where the handler already ran before; a target elsewhere in
host code takes the delivery when it returns into guest code.

guest_raise_leaves_host_code adds a target in an alertable
WaitForSingleObjectEx: each raise must return in under 500 ms and the
handler must run in the executable after the wait was released. The
earlier behaviour (an APC for every host-code target) fails it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:06:33 +07:00
WallisSkillandClaude Opus 5.5 1b9c5feb30 fix(libkernel): deliver a raised exception at the guest return of a thread in host code
RaiseOn suspended the target and, while it sat in host code, resampled
it until a 50 ms limit and then redirected it into the handler there.
A handler that waits, as Unity's GC thread-stop handler does, then held
whatever host lock the thread had: in Graveyard Keeper 2 a job worker
stopped inside shader specialization kept the shader registration lock,
another worker blocked on that lock never ran its own stop, and the
load froze with 39 of 40 threads acknowledged (about 1 in 15 loads).

A target in host code is never redirected now. The raise queues the
delivery as an APC (taken when the thread waits alertably), arms a
debug register 0 execute breakpoint at the frame's return address into
guest code (found with the image's own .pdata and RtlVirtualUnwind,
stopping at frames that push a machine frame, guarded against faults),
and hands the target to a host deliverer thread that keeps sampling it.
The first of the three to reach the thread delivers, through one taken
flag per delivery. A target in guest code is still redirected at once;
a target inside NtContinue still makes the raise throw after 1 s.

guest_raise_leaves_host_code checks that a handler never runs in host
code, for a target blocked in WaitForSingleObject and one busy in
MultiByteToWideChar, and that each raise of the blocked one returns in
under 500 ms.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:06:32 +07:00
Dean 7704178631 Merge pull request #11182 from orezraey/fix/libkernel-soc-sensor-order-measured-ps5
fix(libkernel): check the SoC sensor channel before the pointer and set errno as measured on a PS5
2026-10-27 01:02:19 +13:00
Dean 0a1496c148 Merge pull request #11170 from orezraey/fix/libkernel-sysctl-toplevel-measured-ps5
fix(libkernel): resolve sysctl top-level names and fail absent top-level MIBs with ENOENT as measured on a PS5
2026-10-27 01:01:03 +13:00
orezraeyandClaude Opus 5.5 65172ff414 Merge main into fix/libkernel-sw-version-block-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 08:56:51 -03:00
Adrià 7a01e6a494 Merge pull request #9693 from Gruzzberry/feat/setlogin
feat(libkernel_sys): implement setlogin
2026-10-26 12:46:59 +01:00
Adrià Franch 8676daa0fc merge: sync archive directories with main 2026-10-26 12:02:23 +01:00
Adrià b82c33ef65 Merge pull request #9732 from simonbronk/fix/libkernel-vector-io-argument-order
fix(libkernel): check vector I/O lengths and descriptors before offsets
2026-10-26 11:54:15 +01:00
fogydes 719701a68e fix(libkernel): follow the measured exec lookup and image checks 2026-10-26 16:19:46 +05:30
xXPBSXxandClaude Sonnet 5.5 89424904f8 docs(debt): shorten the sceCoredumpAttach title note below the entry length limit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:19 +01:00
xXPBSXxandClaude Sonnet 5.5 233ad28ae6 docs(debt): note how a title calls the sceCoredump stop-info, attach and user-data functions
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:17 +01:00
orezraeyandClaude Opus 5.5 45082e0614 Merge main into docs/libkernel-module-process-info-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 07:25:38 -03:00