Commit Graph
72 Commits
Author SHA1 Message Date
Dean 5a2aa03726 Merge pull request #9195 from gazaret/feat/libkernel-sys-uuidgen
feat(libkernel_sys): implement uuidgen
2026-10-27 10:29:18 +13:00
Adrià 071552ef7f Merge pull request #10196 from orezraey/fix/libkernel-sys-pathconf-measured-ps5
fix(libkernel_sys): answer every pathconf name as the console's UFS mount does
2026-10-26 16:58:02 +01:00
Dean 8100e480f7 Merge pull request #11186 from camezaro-intc/feat/libkernel-sys-load-start-sysmodule
feat(libkernel_sys): forward sceKernelLoadStartModuleForSysmodule to sceKernelLoadStartModule
2026-10-26 22:09:58 +13:00
Nikolay Polukhin a05498c099 feat(libkernel_sys): implement uuidgen
Generate version 1 UUIDs as FreeBSD 11's kern_uuidgen does: consecutive
timestamps from the guest CLOCK_REALTIME, a 14-bit clock sequence that is
randomised on first use and incremented when the clock has not passed the
last batch, and a random multicast node. A count outside 1 to 2048 fails
with EINVAL and a null store with EFAULT.
2026-10-26 11:10:39 +05:00
Dean e5759e7ee6 Merge pull request #10524 from YossiYad/feat/kernel-sys-console-identity
feat(libkernel_sys): implement sceKernelIsCEX, sceKernelIsDevKit, get_authinfo and sceKernelGetOpenPsIdForSystem
2026-10-26 17:37:52 +13:00
camezaro-intc 1257830a26 feat(libkernel_sys): forward sceKernelLoadStartModuleForSysmodule to sceKernelLoadStartModule 2026-10-25 14:56:34 -06:00
Adrià aeff26bd97 Merge pull request #9573 from zaryabzip/feat/pthread-create-suspended
feat(libkernel_sys): create threads suspended and resume them
2026-10-25 20:21:07 +01:00
zaryabzip 0b60e97834 feat(libkernel_sys): create threads suspended and resume them
Implement pthread_attr_setcreatesuspend_np, pthread_resume_np,
pthread_resume_all_np and pthread_multi_np with the sce forms
scePthreadAttrSetcreatesuspend, scePthreadResume, scePthreadResumeAll
and scePthreadMulti, following FreeBSD 11.4 libthr and the firmware
13.42 libkernel_sys module. A thread created suspended waits before its
start routine, outside any cancellation point, until it is resumed.
sceKernelRaiseException throws on Windows for a thread still suspended
at creation.
2026-10-25 21:51:02 +05:00
Yossi Yadgar 866ab27a80 docs(debt): clarify unverified console identity behavior 2026-10-25 13:11:03 +02:00
Yossi Yadgar 803601ffa4 fix(libkernel_sys): publish identity types and reject null system IDs 2026-10-25 13:08:55 +02:00
Yossi Yadgar 0d851dd1f3 docs(debt): note the retail console identity in libkernel_sys 2026-10-25 13:06:28 +02:00
Dean 61fc572cee Merge pull request #10434 from Retr0G28/fix/linkat-directory-descriptor
fix(libkernel_sys): resolve linkat paths relative to a directory descriptor
2026-10-25 19:16:10 +13:00
orezraeyandClaude Opus 5.5 88bf509e20 Merge main into fix/libkernel-sys-pathconf-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:04:44 -03:00
Dean Galvin b0b291be0b Merge main into feat/libkernel-sys-underscore-openat 2026-10-24 21:42:59 +13:00
Retr0 d44d5685eb fix(libkernel_sys): resolve linkat paths relative to a directory descriptor 2026-10-24 02:58:00 +03:00
Dean c675a415f2 Merge pull request #9103 from HQasper/claude/project-thread-w0s18y-chown
feat(libkernel_sys): implement chown, lchown, fchownat and linkat
2026-10-24 11:56:40 +13:00
orezraeyandClaude Opus 5.5 f32fd62397 Merge main into fix/libkernel-sys-pathconf-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:14:25 -03:00
orezraeyandClaude Opus 5.5 9fc8d159bd fix(libkernel_sys): answer every pathconf name as the console's UFS mount does
Measured in a payload process on a PS5 (firmware 13.60) through libkernel_sys.sprx's pathconf: /system_data gives 65536 for the allocation, transfer and hole sizes, 16384 for the transfer alignment, 3 for _PC_ACL_PATH_MAX and 0 for the ACL and MAC flags, and EINVAL for _PC_MAX_CANON, _PC_MAX_INPUT, _PC_VDISABLE and _PC_ASYNC_IO, which used to throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 09:37:36 -03:00
xXPBSXxandClaude Sonnet 5.5 fba61c0da0 docs(debt): shorten the pathconf entry under the length limit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:01:12 +02:00
xXPBSXxandClaude Sonnet 5.5 01655d7219 fix(libkernel_sys): answer fpathconf for pipes and _PC_ASYNC_IO as FreeBSD does
kern_fpathconf answers _PC_ASYNC_IO with _POSIX_ASYNCHRONOUS_IO (200112) after the descriptor lookup, and a pipe or socket (no vnode) with PIPE_BUF for _PC_PIPE_BUF and EINVAL for every other name. Drop the unused File.hpp include and the duplicate KernelErrors.hpp include.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:44:46 +02:00
QuentinRemondandClaude Sonnet 5.5 07d3d6447a feat(libkernel_sys): implement fpathconf and _fpathconf
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:44:43 +02:00
Dean 58ceeb8ed5 Merge pull request #9040 from YossiYad/feat/kernel-sys-workaround-process-type
feat(libkernel_sys): implement sceKernelTitleWorkaroundIsEnabled and sceKernelGetProcessType
2026-10-24 00:33:16 +13:00
Dean 513ca7e558 Merge pull request #9141 from MarrasFederico/feat/kernel-sys-pthread-scope-atfork
feat(libkernel_sys): implement the scePthread scope, atfork and setconcurrency forms
2026-10-23 23:18:24 +13:00
Dean ff191e29d1 Merge pull request #9382 from MarcZX10/codex/libkernel-sys-sched-interval
feat(libkernel_sys): implement sched_rr_get_interval
2026-10-23 22:47:27 +13:00
Dean 1f1acb195e Merge pull request #9322 from zaryabzip/feat/kernel-sys-condattr-getclock
feat(libkernel_sys): implement scePthreadCondattrGetclock
2026-10-23 22:16:46 +13:00
Dean aef58d4674 Merge pull request #9355 from DavidSamir/feat/libkernel-sys-aio
feat(libkernel_sys): implement the POSIX aio calls
2026-10-23 21:28:48 +13:00
Yossi Yadgar 22823182ef docs(debt): note that sceKernelGetAppInfo leaves the workaround block unwritten 2026-10-23 11:12:23 +03:00
Yossi Yadgar fadfb4433d docs(debt): note where the workaround and process type rules come from 2026-10-23 11:12:23 +03:00
zaryabzip 6653dffe62 feat(libkernel_sys): implement scePthreadCondattrGetclock
Read the clock of a libkernel condition attribute, returning
SCE_KERNEL_ERROR_EINVAL for a null or destroyed attribute as
scePthreadCondattrSetclock does, after FreeBSD 11.4 libthr's
_pthread_condattr_getclock. A null clock pointer throws.
2026-10-23 12:17:02 +05:00
Claude 705f6e1580 feat(libkernel_sys): implement chown, lchown, fchownat and linkat
All four exports threw. The ownership calls follow fchown: owner and
group 0 and the unchanged value are accepted and any other value
throws. The path is looked up first with stat, lstat or fstatat, as
FreeBSD 11's kern_fchownat does, so a lookup error is returned before
the owner is checked. fchownat rejects flags other than
AT_SYMLINK_NOFOLLOW with EINVAL. linkat passes AT_FDCWD and absolute
paths to link and rejects flags other than AT_SYMLINK_FOLLOW with
EINVAL; a relative path with a directory descriptor and a symbolic
link source without AT_SYMLINK_FOLLOW throw. On Windows a symbolic
link source is detected with the file attributes, since libstdc++
there reports it as a regular file.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 06:34:32 +00:00
Dean 9af7d8d810 Merge pull request #8987 from simonbronk/feat/libkernel_sys-pthread-barrier
feat(libkernel_sys): implement the scePthreadBarrier, cpuclockid, concurrency and msync forms
2026-10-23 19:24:34 +13:00
MarcZX10 86f3f07012 merge upstream main into sched interval fix 2026-10-23 05:56:19 +00:00
Federico Marras f77f61ec7a Merge remote-tracking branch 'upstream/main' into tmp-9141 2026-10-23 07:12:32 +02:00
Federico Marras f73a4e8133 feat(libkernel_sys): implement the scePthread scope, atfork and setconcurrency forms 2026-10-23 07:12:32 +02:00
Dean 96481a6392 Merge pull request #9294 from YossiYad/feat/kernel-sys-module-internal
feat(libkernel_sys): implement sceKernelGetModuleInfoInternal and sceKernelGetModuleListInternal
2026-10-23 16:43:43 +13:00
Dean 3f257f2c4f Merge pull request #9214 from erickerxhalli/claude/anyps5-contribution-5p5n20
feat(libkernel_sys): implement sceKernelGetCompiledSdkVersion
2026-10-23 14:43:23 +13:00
Dean Galvin 0da892c52f Merge main into feat/kernel-sys-module-internal 2026-10-23 14:11:13 +13:00
Dean f1db096084 Merge pull request #9200 from KernelPanicNT/feat/libkernel-sys-lchmod
feat(libkernel_sys): implement lchmod
2026-10-23 12:53:19 +13:00
Dean 287d539503 Merge pull request #9336 from ycbuzi/fix/libkernel-sys-link-follow-windows
fix(libkernel_sys): follow a symbolic link in link on Windows
2026-10-23 11:02:54 +13:00
xXPBSXxandClaude Sonnet 5.5 e1605dda52 fix(libkernel_sys): fail fchdir on a pipe or socket with EINVAL
FreeBSD 11.4's sys_fchdir resolves the descriptor with getvnode, which fails with EINVAL for a descriptor that has no vnode; only a vnode that is not a directory gives ENOTDIR from change_dir. fchdir returned ENOTDIR for a pipe or socket. A descriptor that is neither a vnode nor a random device now gets EINVAL; the debt entry records the order of the three errors.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 20:15:26 +02:00
bluandClaude Opus 5.5 e9e345fbf3 docs(libkernel_sys): record that link follows longer link chains on Windows
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 07:54:59 -07:00
Yossi Yadgar 26893b36b9 docs(debt): record the sources of the internal module calls 2026-10-22 15:52:25 +03:00
SimoneandClaude Opus 5.5 106e73669d feat(libkernel_sys): implement the scePthreadBarrier, cpuclockid, concurrency and msync forms
Forward scePthreadBarrier*, scePthreadBarrierattr*, scePthreadGetcpuclockid,
scePthreadGetconcurrency and sceKernelMsync to libkernel's POSIX
implementations and return POSIX errors as SCE kernel errors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 10:01:06 +02:00
Dean d6eafa54d0 Merge pull request #9279 from YossiYad/feat/kernel-sys-thread-defaults
feat(libkernel_sys): implement pthread_set_defaultstacksize_np, scePthreadSetDefaultstacksize and scePthreadSetName
2026-10-22 19:16:30 +13:00
David 05b7d20aed Merge remote-tracking branch 'origin/main' into feat/libkernel-sys-aio
# Conflicts:
#	docs/dev/debt/libkernel_sys.md
2026-10-22 05:29:56 +01:00
erickerxhalliandClaude Opus 5.5 581905d997 docs(libkernel_sys): record which SDK field sceKernelGetCompiledSdkVersion reads
The PS5 payload SDK declares the process parameters with a 32-bit PS4
SDK version at offset 0x10 and a 32-bit PS5 SDK version at 0x14, not
one 64-bit field. The debt entry now states that the export returns the
field at 0x10, as libSceHmd2 and shadPS4 read it, and that which field
the console returns is unmeasured. The test puts different values at
0x10 and 0x14 instead of one 64-bit value with its upper half set.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WYjMwvLdPR8iX8EP8tQYWa
2026-10-22 04:20:28 +00:00
MarcZX10 76178efc32 feat(libkernel_sys): implement sched_rr_get_interval 2026-10-21 19:56:32 +00:00
David 478947f71f feat(libkernel_sys): implement the POSIX aio calls 2026-10-21 20:07:41 +01:00
Yossi Yadgar 5cca233e98 docs(debt): record where the libkernel_sys default stack size rule comes from 2026-10-21 20:24:13 +03:00
erickerxhalliandClaude Opus 5.5 deeea9d284 feat(libkernel_sys): implement sceKernelGetCompiledSdkVersion
Write the low 32 bits of the SDK version field at offset 0x10 of the
title's process parameters and return EINVAL (0x80020016) for a null
output, following shadPS4.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WYjMwvLdPR8iX8EP8tQYWa
2026-10-21 15:37:11 +00:00