Commit Graph
148 Commits
Author SHA1 Message Date
BunnyFlandClaude Opus 5.5 069a2849fe Merge upstream main into feat/libkernel-amm-mapper-calls-1030
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 23:16:47 +01:00
Adrià 0399b0a2c9 Merge pull request #13487 from BunnyFl/feat/libkernel-amm-remaining
feat(libkernel_sys): add the remaining AMM command writers
2026-10-30 22:41:55 +01:00
Adrià ce7bc15837 Merge pull request #13428 from BunnyFl/feat/libkernel-is-module-loaded
feat(libkernel_sys): implement sceKernelIsModuleLoaded
2026-10-30 21:35:35 +01:00
Adrià 4ac53f763c Merge pull request #12658 from xdCloudy/feat/libkernel-sys-vm-map-timestamp
feat(libkernel_sys): implement VM map timestamp proxy
2026-10-30 21:23:50 +01:00
Adrià 0814d32375 Merge pull request #13351 from BunnyFl/feat/libkernel-title-workaround-limit
fix(libkernel_sys): accept all 128 title workaround bits and add the misspelled export
2026-10-30 19:52:35 +01:00
BunnyFlandClaude Opus 5.5 de453bd3c5 test(libkernel_sys): run waits recorded by the new writers
A buffer of a counter write, satisfied counter and address waits (one
with a negative compare) and an address write is submitted and must
complete with the write done. The debt file records that a compare
recorded as mode 7 throws when the runner here executes it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:08:56 +01:00
BunnyFlandClaude Opus 5.5 164e181b60 docs(libkernel_sys): record the mapper calls' remaining gaps
The fixed result of sceKernelCallIndirectBuffer2 is a silent stub, a
dword count of 2^30 or more throws, and the AMM range values are where
firmware libSceAmpr reads them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:46:54 +01:00
BunnyFlandClaude Opus 5.5 8794fec072 feat(libkernel_sys): add the AMM mapper calls
sceKernelCallIndirectBuffer, sceKernelCallIndirectBuffer2,
sceKernelCallIndirectBuffer3, sceKernelGiveDirectMemoryToMapper and
sceKernelMapperGetParam follow firmware 13.42's libkernel_sys: the
submit calls queue the buffer on the AMM queue, the direct memory call
keeps the library's 2 MiB checks and the parameter call copies the
size and the AMM address ranges. The kernel-side checks that are not
known throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:46:30 +01:00
BunnyFlandClaude Opus 5.5 3c022a3105 docs(libkernel_sys): keep the AMM writers entry under the length limit
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:20:21 +01:00
BunnyFlandClaude Opus 5.5 1f2b7a2b32 docs(libkernel_sys): shorten the AMM writers entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:19:23 +01:00
BunnyFlandClaude Opus 5.5 c2dbf83b1a test(libkernel_sys): pin the firmware's wrapping range check in the PRT writers
Firmware 13.42 accepts a PRT range whose end wraps past the top of the
address space and records only bits 14 to 40 of the size. The writers
here do the same; the test pins it and the debt entry records it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:18:48 +01:00
BunnyFlandClaude Opus 5.5 bf1a40404f docs(libkernel): correct what the firmware records for the AMM writers
The PRT remap's last argument is checked but not recorded by firmware
13.42, and the comparison covered the recorded fields, not the bytes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:06:54 +01:00
BunnyFlandClaude Opus 5.5 dd0bc0b781 feat(libkernel_sys): add the AMM writers for PRT maps, address and counter writes, waits and event queues
sceKernelWriteMapCommand2, sceKernelWriteUnmapToPrtCommand,
sceKernelWriteWriteAddressCommand, sceKernelWriteWriteCounterCommand,
sceKernelWriteWaitOnAddressCommand, sceKernelWriteWaitOnCounterCommand
and sceKernelWriteEventQueueOnCompletionCommand follow the checks of
firmware 13.42's libkernel and record this project's command layout.
Without the PRT flag, sceKernelWriteMapCommand2 is
sceKernelWriteMapCommand, as on the console. The debt files record where
the existing writers' checks differ from the firmware.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 17:45:00 +01:00
BunnyFlandClaude Opus 5.5 004b47eda7 fix(libkernel_sys): accept all 128 title workaround bits and add the misspelled export
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:41:32 +01:00
Adrià 7a5caa1370 docs(libkernel_sys): mark EFAULT for sceKernelGetCompiledSdkVersion as an unmeasured host-safety fallback 2026-10-30 15:37:36 +01:00
DeveshB-1 7b00701824 fix(libkernel_sys): return EFAULT from sceKernelGetCompiledSdkVersion for an unwritable store 2026-10-30 15:37:31 +01:00
BunnyFlandClaude Opus 5.5 d42d595b51 feat(libkernel_sys): implement sceKernelIsModuleLoaded
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:12:19 +01:00
Adrià 96ff704249 Merge pull request #12667 from xdCloudy/feat/libkernel-sys-pthread-attr-helpers
feat(libkernel_sys): implement mutex attribute generation helpers
2026-10-30 14:02:33 +01:00
Adrià 563d839a7a Merge pull request #12955 from JJenkx/windows/libkernel-sys-linkat-symlink-itself
fix(libkernel_sys): hard-link a symbolic link itself in linkat on Windows
2026-10-30 13:45:28 +01:00
xdCloudy aa9a999928 docs: clarify VM map timestamp proxy limits 2026-10-30 12:52:27 +01:00
xdCloudy c4e365d226 feat(libkernel_sys): implement VM map timestamp proxy 2026-10-30 12:52:16 +01:00
Dean 5e145816b1 Merge pull request #13259 from DeveshB-1/fix/get-authinfo-efault
fix(libkernel_sys): return EFAULT from get_authinfo for an unwritable store
2026-10-30 22:50:47 +13:00
Adrià b4cd3c0648 Merge pull request #12959 from zaryabzip/feat/kernel-get-upd-version
feat(libkernel_sys): forward sceKernelGetUpdVersion to sysKernelGetUpdVersion as firmware 13.42 does
2026-10-30 10:18:32 +01:00
JJenkxandClaude Opus 5.5 a11e2192e9 fix(libkernel_sys): hard-link a symbolic link itself in linkat on Windows
Without AT_SYMLINK_FOLLOW, linkat of a symbolic link threw on Windows.
CreateHardLinkW links the link's own reparse point rather than its target,
dangling or not, so it gives FreeBSD's behaviour. NTFS cannot hard-link a
directory, so a symbolic link or junction to a directory still throws there.

guest_kernel_sys now runs the symbolic link linkat checks on Windows too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 08:40:33 +01:00
Cloudy 802a8c2ce2 docs(libkernel_sys): record pthread attribute firmware offsets 2026-10-30 08:12:53 +01:00
Cloudy d833429467 feat(libkernel_sys): implement pthread attribute helpers 2026-10-30 08:12:52 +01:00
DeveshB-1 b00fb513e5 fix(libkernel_sys): return EFAULT from get_authinfo for an unwritable store 2026-10-30 11:42:01 +05:30
Adrià acf46d4ff8 Merge pull request #12577 from iAbdulrrahman/feat/libkernel-sys-is-ps4-process
feat(libkernel_sys): implement sceKernelIsPs4Process query
2026-10-30 03:03:26 +01:00
Adrià 365f857609 Merge pull request #12427 from simnJS/feat/kernel-is-neo-mode
feat(libkernel_sys): answer sceKernelIsNeoMode from the param.sfo Neo-mode attribute
2026-10-30 02:30:27 +01:00
Adrià d85a6745c2 Merge pull request #12368 from kyon-eth/feat/kernel-sys-1360-inventory
feat(libkernel_sys): declare 328 missing callable exports
2026-10-30 02:01:59 +01:00
Adrià c8bc4a20d7 Merge pull request #12606 from EagleBearerYS/feat/libkernel-sys-settimeofday
feat(libkernel_sys): implement sceKernelSettimeofday
2026-10-29 21:20:32 +01:00
zaryabzip 6c02d185dc feat(libkernel_sys): forward sceKernelGetUpdVersion to sysKernelGetUpdVersion as firmware 13.42 does
Firmware 13.42's sceKernelGetUpdVersion runs the same code as
sysKernelGetUpdVersion, which is already implemented.
2026-10-29 23:07:26 +05:00
Adrià 24bf164e4f docs(libkernel_sys): state that the CUSA mapping of sceKernelIsPs4Process is unmeasured 2026-10-29 16:18:39 +01:00
iAbdulrrahman 2281511a01 feat(libkernel_sys): identify PS4 compatibility process from CUSA title ID prefix 2026-10-29 16:18:34 +01:00
iAbdulrrahman 27b08df5c9 docs(libkernel_sys): condense console identity technical debt entry under 1000 characters 2026-10-29 16:18:34 +01:00
iAbdulrrahman 002e8f2c95 docs(libkernel_sys): cite source and document unmeasured PS4 process behavior for sceKernelIsPs4Process 2026-10-29 16:18:34 +01:00
iAbdulrrahman a59bf262a2 feat(libkernel_sys): implement sceKernelIsPs4Process query 2026-10-29 16:18:34 +01:00
Adrià cba260828e Merge pull request #11864 from ionut27001/fix/libkernel-get-app-info-layout
fix(libkernel): fill 0x58-byte sceKernelGetAppInfo record, throw for other pids
2026-10-29 14:33:12 +01:00
Dean 478b5f1a93 Merge pull request #12635 from Lindamea1/feat/libkernel-sys-internal-libc-mutex-init
feat(libkernel_sys): implement scePthreadMutexInitForInternalLibc and scePthreadMutexattrInitForInternalLibc
2026-10-30 02:26:47 +13:00
Lindamea1andClaude Opus 5.5 443fea643c feat(libkernel_sys): implement scePthreadMutexInitForInternalLibc and scePthreadMutexattrInitForInternalLibc
Both call libkernel's pthread_mutex_init and pthread_mutexattr_init and
return 0x80020000 | errno on error, as shadPS4 (ce74386) exports them as
ORBIS(posix_pthread_mutex_init) and ORBIS(posix_pthread_mutexattr_init)
and ChonkyStation4 (c101a23) maps them to its POSIX init functions. A
mutex made without attributes is error-checking. FreeBSD 11.4's
malloc-internal _pthread_mutex_init_calloc_cb makes a normal mutex
instead; the gap is recorded in the libkernel_sys debt file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 c85368d0b5 feat(libkernel_sys): implement kldstat
kldstat was a NotImplemented stub. It now follows FreeBSD 11.4's
sys_kldstat (sys/kern/kern_linker.c): only the version field is read
(EFAULT when that fails), and a version other than 1056
(struct kld_file_stat_1) or 2080 (struct kld_file_stat) is EINVAL.
No linker file is listed here, as for kldnext, so every file id then
gets ENOENT and the structure is never written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Yunus Shaikh 3e5441dd86 feat(libkernel_sys): implement sceKernelSettimeofday 2026-10-28 21:05:36 +00:00
Dean 93909fb801 Merge pull request #10695 from MarcZX10/marc/signatures-libkernel-sys
feat(libkernel_sys): declare eight Discovery stubs with the OpenOrbis signatures
2026-10-29 07:27:07 +13:00
Dean 1847b0bd00 Merge pull request #11754 from iAbdulrrahman/feat/libkernel-sys-console-identity
feat(libkernel_sys): implement genuine console and platform identity queries
2026-10-29 07:23:11 +13:00
ionut27001 7dc80f7f37 fix(libkernel): fill 0x58-byte sceKernelGetAppInfo record, throw for other pids 2026-10-28 20:16:32 +02:00
Kyon 064df039d4 fix(libkernel_sys): clarify export identities and verifiable membership 2026-10-28 13:54:00 +00:00
AdriàandClaude Sonnet 5.5 af7d8d38c1 docs(libkernel_sys): move the sceKernelIsNeoMode debt line off the end of Functional
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 14:27:20 +01:00
simnJS 215192dd37 feat(libkernel_sys): answer sceKernelIsNeoMode from the param.sfo Neo-mode attribute
A title with param.sfo gets bit 23 (0x00800000) of its ATTRIBUTE key,
the PS4 Pro (Neo) mode support flag, and 0 without the key, as shadPS4
answers on a Neo console; sceKernelHasNeoMode and sceKernelIsAuthenticNeo
already report one. A title with param.json still throws: what a PS5
application gets is unknown. The param.sfo parser now reads ATTRIBUTE and
libkernel exposes it to the other libraries.
2026-10-28 14:10:21 +01:00
Kyon facacb4684 fix(libkernel_sys): resolve known NID aliases and document identities 2026-10-28 12:40:14 +00:00
Dean 750cf6cf48 Merge pull request #11595 from alvaroelpob/fix/libkernel-sys-linkat-symlink-itself
fix(libkernel_sys): link a symbolic link itself in linkat without AT_SYMLINK_FOLLOW
2026-10-29 01:32:29 +13:00