2925 Commits
Author SHA1 Message Date
Dean 4f41f4c375 Merge pull request #15210 from Danigamer05/feat/libc-sce-v2-filesystem-calls-20261102
feat(libc): export the std::__sce_v2 filesystem calls
2026-11-03 21:12:18 +13:00
Dean 206e72c90b Merge pull request #15137 from pushkarreddyy/feat/libkernel-sandbox-app0-alias
feat(libkernel): alias title sandbox app0 path to application directory
2026-11-03 21:11:30 +13:00
Dean 805ce107ba Merge pull request #15109 from imellag/fix/libkernel-condition-clock-atomic-ref
fix(libkernel): read the condition clock through a non-const atomic_ref
2026-11-03 21:11:20 +13:00
Dean 8b82678900 Merge pull request #10025 from mehmetbayoglu/fix/libkernel-amm-prt-zero-page
fix(libkernel): map unbacked AMM PRT pages to one read-only zero page on Windows
2026-11-03 21:09:48 +13:00
Dean 91ca312437 Merge pull request #9242 from DavidSamir/feat/libkernel-sys-tcgetsid
feat(libkernel): implement tcgetsid
2026-11-03 21:09:31 +13:00
Dean a74a4c370c Merge pull request #14310 from XatiX/fix/libkernel-net-socket-forwards
fix(libkernel): forward socket calls on sceNetSocket descriptors to libSceNet
2026-11-03 21:08:43 +13:00
Dean 8835460b5e Merge pull request #7532 from hugodearaujo/fix/linux-guest-main-stack
fix(linux): enter the guest entry on a main stack at the console's address
2026-11-03 21:07:51 +13:00
Dean a03cc0dde6 Merge pull request #14885 from oneandonlydean/carry-7135
fix(libkernel): follow kern_cpuset for the base cpuset, level checks and interrupt targets
2026-11-03 18:14:20 +13:00
Dean b955001c4d Merge pull request #15030 from Gruzzberry/fix/sysctl-overcommit-eperm
fix(libkernel): fail a vm.overcommit write with EPERM
2026-11-03 18:13:26 +13:00
Dean 5f96abbcba Merge pull request #14940 from BunnyFl/fix/prime-shared-mutexes
fix(agc,libkernel): prime the host shared mutexes left unprimed on Windows
2026-11-03 18:12:18 +13:00
Dean e41879d2b7 Merge pull request #14876 from roboterspinne/fix/libkernel-ipv6-unspecified-connect
fix(libkernel): connect an AF_INET6 socket to ::1 when the address is unspecified, as FreeBSD does
2026-11-03 18:11:16 +13:00
Dean 7a3d08c1c3 Merge pull request #14875 from roboterspinne/fix/libkernel-tcp-multicast-address
fix(libkernel): fail bind and connect of a stream socket to a multicast address with EAFNOSUPPORT
2026-11-03 18:11:11 +13:00
Dean 165d818a8f Merge pull request #14874 from roboterspinne/fix/libkernel-path-name-too-long-errors
fix(libkernel): fail sce path calls with ENAMETOOLONG for a path of 1024 bytes or more
2026-11-03 18:11:05 +13:00
Dean 79b49a50c6 Merge pull request #14710 from ahmadmuj/fix/anyps5-apr-guest-copyout
fix(libkernel): return EFAULT from APR file size and stat queries for an unwritable output
2026-11-03 18:09:40 +13:00
Dean 48dd279a37 Merge pull request #13950 from pushkarreddyy/fix/usercontext-efault
fix(libkernel): return EFAULT from context operations for invalid memory pointers
2026-11-03 18:09:35 +13:00
Dean 10921ef452 Merge pull request #12560 from Kikoarl/fix/win32-verbatim-path-dos-devices
fix(libkernel): preserve DOS device names and trailing dots or spaces on Windows
2026-11-03 18:09:19 +13:00
Dean Galvin df788026b6 fix(libkernel): refuse cpuset sizes the console rejects and record the EPERM difference
cpuset_getaffinity and cpuset_setaffinity return ERANGE from 24 bytes, as a PS5 payload process did (rooklz sweep, #7135 comment 6391606624: 8 to 16 accepted, below 8 and from 24 up ERANGE), and throw for the unmeasured 17 to 23, as pthread_getaffinity_np does. The tests that used 32 bytes use 16 and pin 7, 24, 32 and 64 to ERANGE. The setter entry records that the console answers EPERM for a CPU outside the process's set where this clips and returns 0.
2026-11-03 15:15:35 +13:00
Dean Galvin cc73f16c59 fix(libkernel): answer CPU_LEVEL_ROOT and test the cpuset sizes the console accepts
cpuset_getaffinity at CPU_LEVEL_ROOT returns 0xffff, as a PS5 payload process read it (rooklz, #7135 comment 6390891591), instead of throwing; the target is checked as at the other levels. The level 2 base-set test now passes 8 and 16 bytes, which the console accepts (it returns ERANGE from 24 bytes), instead of depending on the 32 bytes it rejects. The debt entry records the root measurement and that the title root set is unmeasured.
2026-11-03 15:11:23 +13:00
memob 37881a5da0 fix(libkernel): map unbacked AMM PRT pages to one read-only zero page on Windows
Unbacked PRT pages were private read-only commits, so every page that was
read took its own host page. They are now views of one pagefile-backed
section created read-only, so the range costs one page however large and
no view of it can be made writable. Host imports treat such views as
read-only memory instead of asking for a read-write alias.
2026-11-02 19:31:59 -05:00
Dean Galvin 843f35fa2a Merge commit '88bb16c20e757658078b3efce912c96b1b03502a' into HEAD
# Conflicts:
#	core/libs/prx/libkernel_sys/Export.Discovery.cpp
#	core/libs/prx/libkernel_sys/include/Api.hpp
2026-11-03 11:45:11 +13:00
Dean f806099805 Merge pull request #14618 from slopgobblercobbler/test/libkernel-clock-gettime-invalid-clock-bounds
test(libkernel): cover invalid clock ID in clock_gettime
2026-11-03 11:40:23 +13:00
Dean 4c1ceccd9b Merge pull request #14591 from ahmadmuj/fix/anyps5-sysctl-proc-name
fix(libkernel): resolve kern.proc.proc by name
2026-11-03 11:39:54 +13:00
Dean 798a8e8974 Merge pull request #14566 from slopgobblercobbler/test/libkernel-sem-getvalue-uninit-bounds
test(libkernel): cover null pointer in sem_getvalue
2026-11-03 11:39:28 +13:00
Dean 71ed5c29d5 Merge pull request #14466 from oneandonlydean/carry-7631
feat(libkernel): direct memory mappings on macOS hosts
2026-11-03 11:37:12 +13:00
Dean 3ade074e69 Merge pull request #14417 from roboterspinne/fix/libkernel-aio-efault
fix(libkernel): return EFAULT from AIO poll, cancel and delete for invalid memory
2026-11-03 11:36:00 +13:00
Dean 99e565963e Merge pull request #10319 from MarrasFederico/fix/open-create-trailing-slash
fix(libkernel): report lookup errors when creating through a trailing slash
2026-11-03 11:34:52 +13:00
Dean 9551c50ff7 Merge pull request #9713 from simonbronk/feat/libkernel_sys-switch-utrace-tcsetsid
feat(libkernel_sys): implement scePthreadMutexIsowned, utrace and tcsetsid
2026-11-03 11:34:44 +13:00
Danigamer05andClaude Opus 5.5 0f12fc9b7e feat(libc): export the std::__sce_v2 filesystem calls
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 21:36:17 +01:00
Kikoarl ae9a8b093d fix(libkernel): preserve DOS device names and trailing dots or spaces on Windows 2026-11-02 21:16:21 +01:00
Dean e35691b9a0 Merge pull request #14402 from roboterspinne/fix/libkernel-thread-description-utf8
fix(libkernel): convert guest thread names from UTF-8 for the Windows thread description
2026-11-03 08:49:38 +13:00
Dean 0679e4b01e Merge pull request #14272 from milescoviello/test/sanitizer-replace-tables
test(libkernel): cover the sanitizer replacement tables titles' libc reads
2026-11-03 08:47:47 +13:00
Dean 36896d8a7f Merge pull request #14206 from JJenkx/windows/libkernel-select-close-race
fix(libkernel): fail a select with EBADF when its pipe closes during the wait on Windows
2026-11-03 08:46:47 +13:00
Dean b0c4915518 Merge pull request #14039 from EagleBearerYS/fix/kernel-getaffinity-console-sizes
fix(libkernel): follow the console's set sizes in pthread_getaffinity_np
2026-11-03 08:45:45 +13:00
pushkarreddyy 6591d37219 feat(libkernel): alias title sandbox app0 path to application directory 2026-11-02 23:22:04 +05:30
Dean Galvin 73cebee9e1 Merge commit 'a4eca2a056bf3bbbec98ab42e9d28163e4ea9cb8' into HEAD
# Conflicts:
#	core/libs/prx/libkernel/Socket/src/Udp.cpp
2026-11-03 06:36:11 +13:00
XatiXandClaude Opus 5.5 7a4fa3865b fix(libkernel): keep the libkernel contract on forwarded socket calls
bind, getsockname, sendto and recvfrom validate as for a libkernel socket
before they reach libSceNet, so a forwarded descriptor reports the same
errors. recvfrom keeps its guest address handling and MSG_WAITALL, and a
zero-length datagram receive does not wait.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 17:33:10 +00:00
XatiXandClaude Opus 5.5 91311f1bf4 fix(libkernel): forward socket calls on sceNetSocket descriptors to libSceNet
A title can create a socket with sceNetSocket and then call bind, getsockname, sendto or recvfrom from libkernel, which does not hold that descriptor, so the call failed with EBADF. PPSA06866's RakNet does this, its local server fails to start and the load after difficulty selection never ends. libSceNet now registers these four calls with libkernel, as it does for setsockopt and getsockopt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 17:32:55 +00:00
Dean a4eca2a056 Merge pull request #13752 from Gruzzberry/fix/sockopt-efault
fix(libkernel): fail getsockopt and setsockopt with EFAULT on an unusable pointer
2026-11-03 06:31:52 +13:00
Dean bc12e15225 Merge pull request #13695 from Retr0G28/fix/ioctl-fioclex-socket
fix(libkernel): set and clear close-on-exec with FIOCLEX and FIONCLEX on a socket
2026-11-03 06:31:41 +13:00
Dean c05a68628b Merge pull request #10014 from xXPBSXx/fix/kqueue-descriptor-read-write-seek-sync
fix(libkernel): answer read, write, lseek, fsync and flock on a kqueue descriptor as FreeBSD does
2026-11-03 06:26:53 +13:00
Federico Marras d683cc901a Merge main into fix/open-create-trailing-slash 2026-11-02 18:25:10 +01:00
pushkarreddyy 1b2d0d2ace fix(libkernel): copy in UC_COPY_SIZE bytes in setcontext matching FreeBSD 2026-11-02 22:17:28 +05:30
pushkarreddyy a7fa0e3fad fix(libkernel): return EFAULT from context operations for invalid memory pointers 2026-11-02 22:17:28 +05:30
Emanuele a0ed11f545 fix(libkernel): read the condition clock through a non-const atomic_ref
ConditionDeadline read clockId through std::atomic_ref<const std::uint32_t>,
which libc++ does not support yet (atomic_ref of a const type is C++26), so
SyncOnAddress.cpp stopped compiling on macOS. Its only caller passes a
mutable UserCondition, so the parameter drops const and the read uses
std::atomic_ref<std::uint32_t> like the other fields in the file.
2026-11-02 17:21:18 +01:00
Dean 98efa281cc Merge pull request #12826 from Nixitov/feat/libkernel-dmem-for-app
feat(libkernel): export sceKernelAllocateDirectMemoryForApp and sceKernelProtectDirectMemoryForPID
2026-11-03 05:14:04 +13:00
Dean 3258c2f513 Merge pull request #12820 from JJenkx/windows/libkernel-unlink-dangling-dir-link
fix(libkernel): unlink a dangling Windows directory link
2026-11-03 05:13:40 +13:00
Dean 0b20efc578 Merge pull request #12741 from SHOnnay/feat-macos-kevent-edge-watch
feat(equeue): implement macOS edge watches
2026-11-03 02:39:21 +13:00
Dean e03931ca93 Merge pull request #12281 from fogydes/fix/ktimer-settime-invalid-flags
fix(libkernel): reject invalid flags in ktimer_settime
2026-11-03 02:36:43 +13:00
Dean 0278ca9831 Merge pull request #12202 from MarcZX10/fix/libkernel-argument-edge-cases
fix(libkernel): reject WaitSema above the semaphore maximum and msync lengths that wrap
2026-11-03 01:29:50 +13:00
Dean 2f7cbea542 Merge pull request #12078 from xXPBSXx/test/posix-pthread-exit
test(libkernel): cover pthread_exit
2026-11-03 01:29:21 +13:00