Dean
efe844c653
Merge pull request #10308 from orezraey/fix/libkernel-socket-receive-measured-ps5
...
fix(libkernel): answer zero-length datagram receives and recvmsg flags as measured on a PS5
2026-10-24 20:46:44 +13:00
orezraey and Claude Opus 5.5
510b089120
Merge main into fix/libkernel-socket-address-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 04:39:32 -03:00
Dean
59052151d0
Merge pull request #8728 from orezraey/fix/libkernel-msync-measured-ps5
...
fix(libkernel): fail msync MS_INVALIDATE with EBUSY as measured on a PS5
2026-10-24 20:25:08 +13:00
Dean
ec3ea2f558
Merge pull request #6586 from JJenkx/fix/linux-runtime-module-start
...
fix(loader): defer Linux runtime module starts until requested
2026-10-24 19:54:29 +13:00
Emanuele
d93cdf402d
fix(libkernel): defer raises while a thread holds the address-wait lock on Linux and macOS
...
On Linux and macOS, sceKernelRaiseException runs the guest handler in
the target's SIGUSR1 handler wherever the thread was interrupted. A
thread interrupted while it held the address-wait lock of
sceKernelSyncOnAddressWait, sceKernelSyncOnAddressWake or _umtx_op ran
the handler with the lock held, so a handler that waits, as a
stop-the-world collector's does, blocked every other thread that waits
on or wakes an address. #5756 fixed this on Windows.
The address-wait lock is now taken under DeliveryDeferral on every
host. On POSIX the deferral is a count per thread: while it is raised
the SIGUSR1 handler only records the signal, and DeliverDeferred sends
it to the thread again once the lock is released. An address waiter
waits on its own semaphore (sem_t, a dispatch semaphore on macOS) with
the lock released and the deferral lifted, so a raise reaches a thread
that waits for an address without a timeout.
The address-lock phases of guest_raise_exception now run on every
host, with a new phase that raises at a thread in an unbounded address
wait.
2026-10-24 08:40:37 +02:00
orezraey and Claude Opus 5.5
11df317b82
docs(libkernel): list SO_ACCEPTFILTER, option 0x10000 and the timestamp options in the socket debt
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:49:38 -03:00
orezraey and Claude Opus 5.5
711171a505
Merge fix/libkernel-tcp-options-measured-ps5 into fix/libkernel-socket-flags-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:49:29 -03:00
orezraey and Claude Opus 5.5
8d4002884c
docs(libkernel): mark the unmeasured TCP_MAXSEG bound and the AF_INET6 default
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:47:23 -03:00
orezraey and Claude Opus 5.5
366c18439e
docs(libSceNet): move the sceNetRecv truncation note to the libSceNet debt file
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:43:13 -03:00
orezraey and Claude Opus 5.5
db9e8a846b
fix(libkernel): ignore the sendto address of a connected stream socket
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:33:20 -03:00
orezraey and Claude Opus 5.5
ee83082a10
docs(libkernel): mark the unmeasured zero-length receive cases and keep the libSceNet truncation note
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:27:12 -03:00
orezraey and Claude Opus 5.5
7902af7357
Merge main into fix/libkernel-socket-address-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 01:12:54 -03:00
orezraey and Claude Opus 5.5
144319f82e
Merge main into fix/libkernel-msync-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 01:10:30 -03:00
xXPBSXx and Claude Sonnet 5.5
33b6388820
docs(debt): record what a Windows UDP socket keeps after connect(AF_UNSPEC)
...
The connect-to-AF_UNSPEC debt entry only described Linux. On Windows a socket bound to an explicit address keeps it in the same way, getsockname reports the host address, and a sendto to a non-loopback address then fails with ENETUNREACH, where FreeBSD's udp_disconnect() resets the local address and the send succeeds.
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-24 05:59:34 +02:00
Dean
83a25ceb71
Merge pull request #9105 from Retr0G28/fix/connect-port0-connected-dgram
...
fix(libkernel): disconnect a connected datagram socket on connect to port 0
2026-10-24 16:54:25 +13:00
Dean
68871895d4
Merge pull request #9256 from Dom3005/fix/windows-fcntl-append
...
fix(libkernel): change O_APPEND on a Windows file through fcntl
2026-10-24 16:37:06 +13:00
Dean
379b1dca32
Merge pull request #9164 from MaxLikesCode/fix/kernel-sema-einval
...
fix(libkernel): return EINVAL for the semaphore arguments the console rejects
2026-10-24 15:28:17 +13:00
Dean
43d6937041
Merge pull request #10246 from orezraey/fix/libkernel-pthread-create-detach-measured-ps5
...
fix(libkernel): refuse long thread names and answer a detach after a join as measured on a PS5
2026-10-24 15:26:04 +13:00
Dean
6fc058f5cf
Merge pull request #10302 from orezraey/fix/libkernel-socket-buffers-measured-ps5
...
fix(libkernel): keep socket buffer sizes and SO_NBIO as measured on a PS5
2026-10-24 15:25:05 +13:00
Dom3005 and Claude Opus 5.5
dd6220698a
fix(libkernel): change O_APPEND on a Windows file through fcntl
...
fcntl(F_SETFL) threw when it changed O_APPEND on a Windows file. The
guest flag already chooses WriteAtEnd, but a descriptor opened with
O_APPEND also carries the CRT's append flag, so _write kept appending
after the guest cleared it. F_SETFL now replaces the CRT descriptor of
every descriptor sharing the open file's status with a duplicate handle
opened with or without _O_APPEND, as libc fdopen does for append mode.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 02:28:14 +02:00
Dean
d8b73e3644
Merge pull request #9273 from DavidSamir/feat/libkernel-sys-pselect
...
feat(libkernel): implement pselect over select
2026-10-24 12:53:12 +13:00
orezraey and Claude Opus 5.5
9402457fb7
Merge fix/libkernel-multicast-membership-measured-ps5 into fix/libkernel-socket-receive-flags-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 20:50:51 -03:00
Retr0
68db53d7a5
fix(libkernel): fail sendfile with EINVAL for a file that is not a regular file
2026-10-24 02:44:14 +03:00
Max and Claude Opus 5.5
3ddaa64707
fix(libkernel): return EINVAL for the semaphore arguments the console rejects
...
The prosper console oracle measured SCE_KERNEL_ERROR_EINVAL for creating
a semaphore with an initial count above the maximum, a maximum of 0, a
negative initial count or a null name, for polling 0 or more than the
maximum, and for signalling 0. These threw, or polled past the maximum
returned EBUSY, and signalling 0 succeeded.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-24 01:18:34 +02:00
orezraey and Claude Opus 5.5
60135e8855
Merge main into fix/libkernel-aio-limits-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 20:06:53 -03:00
Dean
ca7bf033c5
Merge pull request #9005 from JJenkx/fix/libkernel-sema-null-esrch
...
fix(libkernel): return ESRCH for a null semaphore handle
2026-10-24 11:58:20 +13:00
Dean
85f2f2d478
Merge pull request #8544 from Retr0G28/fix/fcntl-getfl-pipe-rdwr
...
fix(libkernel): report O_RDWR from F_GETFL on both ends of a pipe
2026-10-24 11:55:31 +13:00
slopggobblercobbler81
2f1cfdfa1a
fix(libkernel): enforce SESS_LEADER EPERM and negative pid ESRCH ordering in setpgid/setpgrp
2026-10-23 23:52:23 +02:00
slopggobblercobbler81
782637fce4
feat(libkernel): implement setpgid and setpgrp
2026-10-23 23:52:21 +02:00
Dean
313d905437
Merge pull request #9877 from orezraey/fix/libkernel-release-flexible-measured-ps5
...
fix(libkernel): keep the range sceKernelReleaseFlexibleMemory releases mapped as measured on a PS5
2026-10-24 10:37:09 +13:00
orezraey and Claude Opus 5.5
88d5f8483a
docs(libkernel): keep the unmodelled EBADF of sceKernelAvailableDirectMemorySize in the debt
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 17:49:06 -03:00
orezraey and Claude Opus 5.5
4dc6530ee0
fix(libkernel): refuse an ip_mreqn with a non-zero address and require the multicast host checks
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 17:45:18 -03:00
orezraey and Claude Opus 5.5
ad03c52f38
Merge main into fix/libkernel-socket-address-measured-ps5
...
Keep #9108 's long IPv4-mapped bind on a dual-stack datagram socket, now also for connect, on top of the measured exact-size checks; drop LongAddressError and the duplicate listening check.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 17:32:09 -03:00
orezraey and Claude Opus 5.5
aebed518a7
Merge main into fix/libkernel-aio-limits-measured-ps5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 17:27:35 -03:00
alnsx
64c6fd09c3
fix(libkernel): poll files on standard descriptors as vnodes
2026-10-23 16:26:17 -04:00
Dean Galvin
baa657a24b
Merge main into fix/libkernel-sema-null-esrch
2026-10-24 09:17:39 +13:00
Dean
7956a166c7
Merge pull request #9108 from Retr0G28/fix/socket-address-length-exact
...
fix(libkernel): reject socket addresses longer than sockaddr_in or sockaddr_in6 with EINVAL
2026-10-24 09:12:39 +13:00
Dean
fac234a47c
Merge pull request #9134 from orezraey/fix/libkernel-event-flag-measured-ps5
...
feat(libkernel): match event flags to PS5 and add shared flags
2026-10-24 09:12:14 +13:00
Dean Galvin
a2ee2958a5
Merge main into fix/fcntl-getfl-pipe-rdwr
2026-10-24 09:07:08 +13:00
Adrià
8cc82c85bf
Merge pull request #6469 from QRMOE/fix-low-guest-address-mappings
...
fix(memory): honor low guest mapping hints
2026-10-23 21:06:11 +02:00
orezraey and Claude Opus 5.5
dd27146c27
fix(libkernel): keep the TCP flag and IP receive options a PS5 accepts
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:45:11 -03:00
orezraey and Claude Opus 5.5
062dc00385
fix(libkernel): join and leave multicast groups as measured on a PS5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:38:52 -03:00
orezraey and Claude Opus 5.5
802bcc8d61
fix(libkernel): share a port between SO_REUSEPORT sockets on the host
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:38:45 -03:00
Adrià
606999f3ab
Merge pull request #7937 from DavidSamir/feat/libkernel-jit-shared-memory-macos
...
feat(libkernel): JIT shared memory on macOS hosts
2026-10-23 20:37:27 +02:00
orezraey and Claude Opus 5.5
1cf109240f
fix(libkernel): check a sendto address length before its family as measured on a PS5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:24:31 -03:00
orezraey and Claude Opus 5.5
122541c7a8
fix(libkernel): keep the SOL_SOCKET flags a PS5 accepts
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:20:17 -03:00
orezraey and Claude Opus 5.5
29f717c607
fix(libkernel): keep TCP_MAXSEG and the TCP keepalive options as measured on a PS5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:20:16 -03:00
orezraey and Claude Opus 5.5
b776394b4f
fix(libkernel): keep IP_TTL, IP_TOS and the multicast options as measured on a PS5
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:20:03 -03:00
orezraey and Claude Opus 5.5
d8d03c2839
fix(libkernel): give the host the requested socket buffer and test the inherited sizes
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:16:09 -03:00
orezraey and Claude Opus 5.5
9afaeff204
fix(libkernel): answer a zero-length recvmsg on an empty datagram socket
...
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-23 15:14:09 -03:00