WallisSkill and Claude 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
WallisSkill and Claude 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
orezraey and Claude 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
xXPBSXx and Claude 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
xXPBSXx and Claude 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
orezraey and Claude 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
Adrià
e796ed4e5e
Merge pull request #9632 from EagleBearerYS/feat/libkernel-sys-libthr-names
...
feat(libkernel): add pthread_rwlockattr_settype_np and scePthreadMutexattrSetkind
2026-10-26 11:20:50 +01:00
Adrià Franch and Claude Sonnet 5.5
654eadd7f5
merge: sync archive directories with main
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-26 10:50:37 +01:00
Simone and Claude Opus 5.5
88e86a7de1
fix(libkernel): check vector I/O lengths and descriptors before offsets
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 10:45:00 +01:00
fogydes
23dc69a2e3
fix(libkernel): return EBADF for an exec null path as measured on the console
2026-10-26 15:06:01 +05:30
Gruzzberry and Claude Opus 5.5
d49b9b6f25
feat(libkernel_sys): implement setlogin
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 09:26:45 +00:00
fogydes
cc46172855
fix(libkernel): keep the host runtime variables in the exec replacement environment
2026-10-26 14:51:38 +05:30
fogydes
d53bb5a1fa
fix(libkernel): align the exec arguments with FreeBSD 11.4
2026-10-26 14:51:38 +05:30
fogydes
f53346a288
feat(libkernel): implement execv, execvp and execve process replacement
2026-10-26 14:51:38 +05:30
Dean
9ab54a34b8
Merge pull request #11251 from orezraey/fix/libkernel-tcp-maxseg-measured-ps5
...
fix(libkernel): refuse TCP_MAXSEG before a connection and raise it to 216 as measured on a PS5
2026-10-26 22:11:42 +13:00
zaryabzip
b8ab1b1a5c
feat(libkernel): implement sceKernelMapNamedSystemFlexibleMemory
2026-10-26 13:59:25 +05:00
orezraey and Claude Opus 5.5
5afe14de63
Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 05:38:49 -03:00
Dean
4c752cafc9
Merge pull request #10177 from orezraey/fix/libkernel-cond-destroyed-measured-ps5
...
fix(libkernel): mark a destroyed condition variable with 1 and accept destroying a null one, as measured on a PS5
2026-10-26 21:29:48 +13:00
xXPBSXx
d8f584fcce
Merge main ( 204c6747d0) into docs/debt-kernel-ftruncate-title
2026-10-26 08:58:43 +01:00
Dean
27c2794a66
Merge pull request #8726 from ArjenS-LA/fix/windows-directory-link-types
...
fix(libkernel): classify Windows directory links by app0 scope
2026-10-26 20:36:06 +13:00
orezraey and Claude Opus 5.5
59d248674f
Merge main into docs/libkernel-select-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 02:55:33 -03:00
Dean
a0c85ea99b
Merge pull request #10501 from harisibrar1/fix/pselect-pending-signal-eintr
...
fix(libkernel): return EINTR from pselect when its mask unblocks a pending signal
2026-10-26 18:26:20 +13:00
elieh999
e6a11ba6de
fix(libkernel): preserve destroyed rwlock attributes
2026-10-26 07:20:28 +02:00
orezraey and Claude Opus 5.5
3a2638ada6
docs(libkernel): note that pthread_create_name_np shares the long-name handle path
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 00:37:49 -03:00
Dean
0ce4b82c2d
Merge pull request #10243 from orezraey/fix/libkernel-rtld-thread-atexit-measured-ps5
...
fix(libkernel): answer the thread atexit references as measured on a PS5
2026-10-26 16:23:13 +13:00
orezraey and Claude Opus 5.5
053ca30db4
docs(libkernel): shorten the socket option bits debt entry under 1000 characters
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 23:40:28 -03:00
orezraey and Claude Opus 5.5
85a1bf2b31
Merge main into fix/libkernel-dupfd-cloexec-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 23:27:02 -03:00
orezraey and Claude Opus 5.5
0850552608
Merge main into docs/libkernel-flexible-flag-8000-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 23:25:51 -03:00
harisibrar1
7746b7a6f9
Merge remote-tracking branch 'origin/main' into fix/so-acceptfilter-einval
2026-10-25 21:44:28 -04:00
Dean
853ffe0f69
Merge pull request #10794 from slopgobblercobbler/feat/kernel-sys-sce-pthread-main
...
feat(libkernel_sys): implement scePthreadMain through pthread_main_np
2026-10-26 14:27:16 +13:00
Adrià
3b252b44fe
Merge pull request #9561 from DavidSamir/feat/libkernel-fcntl-osync
...
feat(libkernel): sync each write on a file whose O_FSYNC flag is set
2026-10-26 02:26:06 +01:00
p3nicillin and Claude Opus 5.5
2387f0ece7
test(libkernel): check that MAP_EXCL replacement leaves neighbouring pages alone
...
Also word the debt entry as Prospero Win's report, not a measurement here.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-26 01:24:42 +00:00
kenny solo and Claude Opus 5.5
aea49c62ad
docs(libkernel): end the pthread_cond_setname_np debt entry with a period
...
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-10-25 20:41:35 -04:00
kenny solo and Claude Opus 5.5
15ed96d647
fix(libkernel): stop storing the pthread_cond_setname_np name
...
scePthreadCondInit ignores its name and nothing reads a condition variable name back, so pthread_cond_setname_np now only validates the condition variable and the name. Drops the stale libkernel_sys declaration and moves the debt entry to Silent stubs, citing shadPS4.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-10-25 20:41:35 -04:00
kenny solo and Claude Opus 5.5
70557b2e16
feat(libkernel): add pthread_cond_setname_np
...
Store the name on the condition variable, creating a statically initialized one first, and return EINVAL for a destroyed one. A null cond or a null name throws, recorded in the libkernel debt file.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-10-25 20:41:35 -04:00
frankea
4db6ed7635
Merge remote-tracking branch 'origin/main' into fix/kernel-gettimezone-host-zone
...
# Conflicts:
# core/libs/tests/GuestFreebsdClocks.cpp
2026-10-25 20:22:45 -04:00
frankea
b5c6010f80
Merge remote-tracking branch 'origin/main' into fix/direct-memory-12gib
2026-10-25 20:21:28 -04:00
orezraey and Claude Opus 5.5
19566dbee8
fix(libkernel): set MSG_CTRUNC for an empty recvmsg control buffer as FreeBSD 11.4 does
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 21:05:10 -03:00
qpavyros
9b2dd8dce9
merge: sync archive follow-up with main
2026-10-26 01:53:02 +02:00
orezraey and Claude Opus 5.5
d06b45fba5
test(libkernel): repeat scePthreadCondSignalto from a mutex-holding thread on normal and recursive mutexes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 20:38:09 -03:00
harisibrar1
7784604b0b
Merge remote-tracking branch 'origin/main' into fix/pselect-pending-signal-eintr
...
# Conflicts:
# core/libs/prx/libkernel/System/src/Signals.cpp
2026-10-25 19:35:03 -04:00
orezraey and Claude Opus 5.5
f853f07ae3
docs(libkernel): limit the measured accept inheritance of the SO_ bits to the options the probe set
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-25 20:16:25 -03:00
qpavyros
6105be4431
merge: sync archive directories with main
2026-10-26 01:10:12 +02:00
Dean
380ffe3a3a
Merge pull request #10456 from alnsx/codex/fix-select-redirected-input
...
fix(libkernel): poll files on standard descriptors as vnodes
2026-10-26 12:09:32 +13:00