Commit Graph
229 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
slopgobblercobbler 3640643f40 feat(libkernel_sys): implement scePthreadTimedjoin 2026-10-30 16:50:53 +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
Kikoarl 257b6ee53b fix(libkernel_sys): validate guest destination buffer in readlink and readlinkat 2026-10-30 12:43:45 +01:00
iAbdulrrahman 415654245b feat(libkernel_sys): implement _dup2 export 2026-10-30 13:04:19 +03: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
iAbdulrrahman a1080ca833 feat(libkernel_sys): implement __sys_nanosleep export 2026-10-30 12:10:17 +03: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
DeveshB-1 2e5658077f fix(libkernel_sys): return EFAULT from uuidgen for an unwritable store 2026-10-30 11:15:33 +05:30
iAbdulrrahman 5754b9cc58 fix(libkernel_sys): update debt documentation for compiled sdk version getters 2026-10-30 07:04:50 +03:00
iAbdulrrahman 8ca47b30ff fix(libkernel_sys): address review feedback for cpuset_getid 2026-10-30 07:02:39 +03:00
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
SimoneandClaude Opus 5.5 eea3c721a7 Merge branch 'main' into feat/libkernel_sys-switch-utrace-tcsetsid
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 22:56:43 +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
KernelPanicNT 602fc9c55a feat(libkernel): throw for a null pthread_condattr_getclock output
pthread_condattr_getclock reached NotImplemented_nid_no_patch for a null
output pointer with a valid attribute. Measured as a payload process on
a device, that call faults, as does scePthreadCondattrGetclock in the
same case, so both now throw std::invalid_argument. Every other measured
result of the condition attribute clock getters and setters already
matched. The test covers every invalid clock ID from -1 to 16.
2026-10-29 14:33:36 +00: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
Dean Galvin a2e7b248ae docs(libkernel_sys): list the reviewed __getcwd errno differences
Size 1, a too-short buffer of size 2 or more, and a null buffer with size 0 answer different errno values than FreeBSD's sys___getcwd; record them in the debt entry.
2026-10-30 00:20:39 +13:00
Daniele Giovane 79b02b3bdb fix(libkernel_sys): reconcile shared-memory tests and document offset gap 2026-10-29 11:03:23 +01:00