Emanuele and mugurc
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à
589799aa53
Merge pull request #10889 from krishalivaibhav/fix/macos-mlock-prot-none
...
fix(libkernel): refuse mlock on PROT_NONE ranges on macOS
2026-10-27 07:58:57 +01:00
Dean
a8ff389dee
Merge pull request #11462 from xXPBSXx/test/usleep-behavior
...
test(libkernel): cover the return value and duration of usleep
2026-10-27 18:39:37 +13:00
Dean
741bf89739
Merge pull request #9782 from DavidSamir/test/libkernel-pthread-posix-calls
...
test(libkernel): cover the POSIX pthread attribute and thread calls
2026-10-27 18:21:20 +13: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à
22782795a9
Merge pull request #10853 from krishalivaibhav/fix/macos-open-create-directory
...
fix(libkernel): refuse O_CREAT on an existing directory with EISDIR on macOS
2026-10-27 06:18:28 +01: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
Adrià
0a570f617d
Merge pull request #10660 from imellag/build/libkernel-elf-fixture-options-not-apple
...
build(libkernel): keep the ELF-only module fixture options off Apple
2026-10-27 05:51:03 +01:00
Adrià
50a28679c4
Merge pull request #10528 from akkadbakkad89/fix/direct-remap-block-index
...
fix(libkernel): walk direct-memory physical ranges by block, not page
2026-10-27 05:35:38 +01: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à
60bb466419
Merge pull request #10505 from maximilianfv/fix/libkernel-macos-itimer-terminate
...
fix(libkernel): reach the guest terminate handler from an ITIMER_REAL expiry on macOS
2026-10-27 04:51:54 +01: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
1075c38f07
Merge pull request #10799 from EagleBearerYS/feat/libkernel-sys-ampr-command-writers
...
feat(libkernel_sys): write the AMM commands and wait for their completion
2026-10-27 15:00:11 +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
orezraey and Claude 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
Dean
f423468b43
Merge pull request #11339 from harisibrar1/fix/lseek-pipe-negative-espipe
...
fix(libkernel): fail lseek on a pipe with ESPIPE for a negative offset on Windows
2026-10-27 11:08:02 +13:00
Dean
d9c7bb5ffe
Merge pull request #11242 from parl0v/fix/epoll-kernel-sockets
...
fix(libSceNet): register libkernel sockets with sceNetEpollControl
2026-10-27 11:05:08 +13: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
0bad0fc46a
Merge pull request #11218 from Gruzzberry/fix/lutimes-enotdir
...
fix(libkernel): lutimes reports ENOTDIR for a path through a file
2026-10-27 11:03:44 +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
77d9056574
Merge pull request #10949 from AZLisme/feat/net-ipv6only
...
feat(libSceNet): support IPv6 dual-stack socket options
2026-10-27 10:57:32 +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
Dean
26bbcd1b48
Merge pull request #11288 from Gruzzberry/fix/fchmodat-follow-links
...
fix(libkernel_sys): fchmodat follows a symbolic link like chmod
2026-10-27 10:40:54 +13: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
2aecb7bf18
Merge pull request #10885 from imellag/test/libkernel-tls-get-addr-test-off-macos
...
test(libkernel): build the __tls_get_addr test only on Linux and Windows
2026-10-27 10:33:11 +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
Dean Galvin
139a99c558
Merge branch 'main' into test/libkernel-pthread-posix-calls
2026-10-27 09:46:25 +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
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