Commit Graph
990 Commits
Author SHA1 Message Date
Emanueleandmugurc 190ed6c8fb feat(libkernel): guest memory protection and VirtualQuery on macOS hosts
- mprotect: the guest rounds a range to its 16 KiB pages. A Mach-O image
  is loaded at a multiple of the host page size only (4 KiB under
  Rosetta), so the pages are counted from where the ELF address 0 of the
  image holding the range was loaded, and a rounded edge smaller than a
  guest page that lies in the gap between two segments, where no host page
  exists, is left out. The write watch is told the new protection.
- sceKernelVirtualQuery reads the region with mach_vm_region.
- sceKernelMunlockall unlocks the ranges libkernel locked, one by one:
  macOS has no munlockall, which fails there with ENOSYS and would
  overwrite errno.
- The stack protect test reads page protections with mach_vm_region.

This is mugurc's f66a4df741 from his macOS series, without the mlock
check that #10889 adds.

Co-authored-by: mugurc <[email protected]>
2026-10-27 08:16:35 +01:00
Dean 81267b2204 Merge pull request #8725 from orezraey/fix/libkernel-sync-on-address-measured-ps5
fix(libkernel): follow sceKernelSyncOnAddressWait and Wake as measured on a PS5
2026-10-27 20:03:20 +13:00
Adrià f1adec7eb1 Merge pull request #11230 from orezraey/docs/libkernel-sync-timeouts-eventflag-measured-ps5
docs(libkernel): record timed self-locks, event flag open and create, and the reltimed calls as measured on a PS5
2026-10-27 08:00:27 +01:00
Dean 5023cd5a25 Merge pull request #9263 from imellag/fix/libkernel-macos-guest-unwind-info
fix(libkernel): report unwind information for guest and host addresses on macOS
2026-10-27 18:19:28 +13:00
Adrià d093ea9ced Merge pull request #10767 from Ragbie/fix/recvmsg-after-shut-rd
fix(libkernel): drop the data a socket held before shutdown(SHUT_RD) in every receive path
2026-10-27 06:14:18 +01:00
orezraeyandClaude Opus 5.5 8f16195370 Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 01:08:10 -03:00
Adrià b986c11a34 Merge pull request #10543 from maximilianfv/fix/libkernel-macos-append-positioned-writes
fix(libkernel): append positioned writes on an O_APPEND descriptor on macOS
2026-10-27 04:52:27 +01:00
Adrià 244bc628fd Merge pull request #11116 from orezraey/docs/libkernel-version-boottime-socpower-measured-ps5
docs(libkernel): record the version stubs, kern.boottime and the SoC power block as measured on a PS5
2026-10-27 04:51:20 +01:00
Adrià 33d2affaa6 Merge pull request #10901 from EagleBearerYS/docs/debt-gaps-bf208
docs(debt): bring five libraries' debt files in line with the tree
2026-10-27 04:50:47 +01:00
Adrià c93ba3b5a3 Merge pull request #10848 from xXPBSXx/docs/debt-kernel-getoperationmode-title
docs(debt): note what a title does with the sceKernelGetOperationMode values
2026-10-27 04:50:35 +01:00
Adrià 02f66c4e97 Merge pull request #10826 from xXPBSXx/docs/debt-kernel-createeventflag-title
docs(debt): note how titles call sceKernelCreateEventFlag
2026-10-27 04:50:20 +01:00
orezraeyandClaude Opus 5.5 fc51fc0f6e Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 23:19:30 -03:00
Dean af2a996527 Merge pull request #11263 from orezraey/fix/libkernel-cond-signalto-measured-ps5
fix(libkernel): fail scePthreadCondSignalto for a null or non-waiting thread as measured on a PS5
2026-10-27 15:01:44 +13:00
Dean 4571f48bff Merge pull request #11173 from p3n1cillin/claude/mmap-excl-ignored
fix(libkernel): ignore MAP_EXCL in fixed anonymous mmap as measured on a PS5
2026-10-27 15:01:30 +13:00
Dean 169f3e3e73 Merge pull request #10666 from WallisSkill/fix/libkernel-raise-at-guest-return
fix(libkernel): deliver a raised exception at the guest return of a thread in host code
2026-10-27 14:59:25 +13:00
Dean 8056827ea8 Merge pull request #10133 from orezraey/fix/libkernel-posix-thread-attr-measured-ps5
fix(libkernel): follow the thread priority ranges and POSIX attribute errors measured on a PS5
2026-10-27 14:58:57 +13:00
Dean 6e98696398 Merge pull request #10061 from elieh999/fix/rwlockattr-destroyed-pshared
fix(libkernel): preserve destroyed rwlock attributes
2026-10-27 14:58:42 +13:00
Dean 86a38cdf6c Merge pull request #9187 from slider/feat/libkernel-sched-params
feat(libkernel): implement sched_getparam, sched_getscheduler and sched_setparam for the calling thread
2026-10-27 14:57:32 +13:00
orezraeyandClaude Opus 5.5 a09cef91b1 Merge main into fix/libkernel-sync-on-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:31:46 -03:00
orezraeyandClaude Opus 5.5 717bfa18c8 Merge main into docs/libkernel-version-boottime-socpower-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:31:21 -03:00
orezraeyandClaude Opus 5.5 b131fa34c6 Merge main into docs/libkernel-sync-timeouts-eventflag-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:12:16 -03:00
Evrim Cicek 3f67bbcd4e Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/recvmsg-after-shut-rd
# Conflicts:
#	core/libs/prx/libkernel/Socket/src/Udp.cpp
#	docs/dev/debt/libkernel.md
2026-10-27 01:04:45 +03:00
Dean 3ae0fb5601 Merge pull request #11224 from orezraey/fix/libkernel-module-list-null-count-measured-ps5
fix(libkernel): write the module handles before failing a null count as measured on a PS5
2026-10-27 11:04:12 +13:00
Dean 7401a472fe Merge pull request #11195 from orezraey/fix/libkernel-sema-invalid-arguments-measured-ps5
fix(libkernel): return EINVAL for the semaphore arguments a PS5 rejects
2026-10-27 11:02:54 +13:00
Dean 94d981d20b Merge pull request #11194 from orezraey/fix/libkernel-socket-address-length-first-measured-ps5
fix(libkernel): check the socket address length before its family as measured on a PS5
2026-10-27 11:02:40 +13:00
Dean 45b71b5074 Merge pull request #11190 from zaryabzip/feat/system-flexible-memory
feat(libkernel): implement sceKernelMapNamedSystemFlexibleMemory
2026-10-27 11:02:21 +13:00
Dean d018922066 Merge pull request #11141 from orezraey/fix/libkernel-recvmsg-timestamps-measured-ps5
fix(libkernel): report SCM_BINTIME and SCM_TIMESTAMP from recvmsg as measured on a PS5
2026-10-27 11:01:32 +13:00
Dean 5dd28e5682 Merge pull request #11135 from orezraey/fix/libkernel-dupfd-cloexec-measured-ps5
fix(libkernel): fail F_DUPFD_CLOEXEC and make F_DUP2FD_CLOEXEC ignore its target as measured on a PS5
2026-10-27 11:01:17 +13:00
Dean 8600cbc763 Merge pull request #11108 from orezraey/fix/libkernel-nice-stays-zero-measured-ps5
fix(libkernel): keep the nice value at 0 after setpriority as measured on a PS5
2026-10-27 11:00:52 +13:00
Dean 2da4d74cac Merge pull request #11025 from orezraey/fix/libkernel-sw-version-block-measured-ps5
fix(libkernel): accept any block size and a null block in the system software version getters as measured on a PS5
2026-10-27 10:59:21 +13:00
Dean be0bbc6518 Merge pull request #11006 from harisibrar1/fix/so-acceptfilter-einval
fix(libkernel): fail SO_ACCEPTFILTER with EINVAL on a socket that is not listening
2026-10-27 10:59:07 +13:00
Dean 3c4aab5acc Merge pull request #10830 from babyhuey/feat/libkernel-kern-proc-pid
feat(libkernel): answer kern.proc.pid for the calling process
2026-10-27 10:54:49 +13:00
Dean ad1caa840c Merge pull request #10385 from alvaroelpob/feat/libkernel-pthread-setname
feat(libkernel): implement pthread_mutex_setname_np, pthread_rwlock_setname_np and pthread_barrier_setname_np
2026-10-27 10:54:00 +13:00
orezraeyandClaude Opus 5.5 caba51779f Merge main into docs/libkernel-version-boottime-socpower-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 18:39:26 -03:00
Dean dd248b02ed Merge pull request #11201 from orezraey/fix/libkernel-pthread-create-long-name-handle-measured-ps5
fix(libkernel): clear the thread handle when scePthreadCreate rejects a long name as measured on a PS5
2026-10-27 10:39:25 +13:00
Dean 1ede81d911 Merge pull request #11078 from slopgobblercobbler/feat/libkernel-sysconf-limits
feat(libkernel): implement additional sysconf limits
2026-10-27 10:37:14 +13:00
Dean 29b9c07b6b Merge pull request #11040 from harisibrar1/fix/pipe-write-epipe-windows
fix(libkernel): fail a write to a pipe without a reader with EPIPE on Windows
2026-10-27 10:36:08 +13:00
Dean dd87687627 Merge pull request #10671 from pushkarreddyy/feat/libkernel-sys-kernel-queries
feat(libkernel): implement sysKernel update version and mode queries
2026-10-27 10:31:00 +13:00
Dean 9021e9b66e Merge pull request #10621 from Retr0G28/fix/socketpair-fstat-inode
fix(libkernel): report NODEV and a per-socket inode from fstat on a socketpair end
2026-10-27 10:30:31 +13:00
Dean fd75cc804d Merge pull request #9095 from mazen320/fix/unlinkat-windows-junction
fix(libkernel): treat Windows junctions in unlinkat like unlink and rmdir
2026-10-27 10:29:02 +13:00
Adrià e61a7c7e24 Merge pull request #9509 from 011010/fix/poll-guest-urgent
fix(libkernel): report urgent data in poll on macOS
2026-10-26 21:27:41 +01:00
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