Adrià
686299faa7
Merge pull request #13598 from MarcZX10/docs/debt-D14-1
...
docs(libkernel): sysctlnametomib returns ENOENT for four unanswered sysctl names
2026-10-31 07:42:21 +01:00
Adrià
0835ec8bdc
Merge pull request #13576 from pushkarreddyy/fix/direct-memory-queries-efault
...
fix(libkernel): return EFAULT from direct memory queries for invalid memory pointers
2026-10-31 05:15:50 +01:00
Adrià
696215b704
Merge pull request #13556 from pushkarreddyy/fix/flexible-memory-queries-efault
...
fix(libkernel): return EFAULT from flexible memory queries and PRT aperture for invalid memory
2026-10-31 05:14:45 +01:00
Adrià
d4627bad7b
Merge pull request #13552 from pushkarreddyy/fix/system-version-efault
...
fix(libkernel): return EFAULT from system version queries for invalid memory
2026-10-31 05:10:40 +01:00
Adrià
69c43dd403
Merge pull request #13577 from pushkarreddyy/fix/login-efault
...
fix(libkernel): return EFAULT from getlogin_r and SetLogin for invalid memory pointers
2026-10-31 05:08:35 +01:00
pushkarreddyy
7923458a2b
docs(libkernel): clarify signal wait debt contract per libthr and kernel
2026-10-31 08:16:23 +05:30
pushkarreddyy
76c0194553
docs(libkernel): record signal wait memory validation contract
2026-10-31 08:16:23 +05:30
pushkarreddyy
9c2a80ad0e
docs(libkernel): record sequential write behavior in sceKernelGetPrtAperture
2026-10-31 08:15:41 +05:30
pushkarreddyy
1d14e08e6d
docs(libkernel): record flexible memory queries and PRT aperture memory validation contract
2026-10-31 08:15:41 +05:30
pushkarreddyy
f0879516b8
docs(libkernel): document direct memory query destination copyout fallbacks
2026-10-31 08:14:53 +05:30
pushkarreddyy
c4236a6594
docs(libkernel): clarify getlogin_r and setlogin debt notes
2026-10-31 08:14:25 +05:30
pushkarreddyy
5649f9ec92
docs(libkernel): document getlogin_r and setlogin pointer fault behavior
2026-10-31 08:14:24 +05:30
pushkarreddyy
05735027f8
docs(libkernel): keep system version queries debt entries within limit
2026-10-31 07:58:08 +05:30
Adrià and Claude Sonnet 5.5
5c0646737d
fix(libkernel): write only the version fields and keep errno in system version queries
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-31 07:55:32 +05:30
pushkarreddyy
4a9bb50ff0
docs(libkernel): record system version queries memory validation contract
2026-10-31 07:55:08 +05:30
Adrià
9eca75175e
Merge pull request #13545 from pushkarreddyy/fix/page-table-stats-efault
...
fix(libkernel): return EFAULT from page table and trace memory stats for invalid memory
2026-10-31 03:16:52 +01:00
Adrià
4b7af94e1d
Merge pull request #13537 from pushkarreddyy/fix/sendfile-efault
...
fix(libkernel): return EFAULT from sendfile for invalid memory pointers
2026-10-31 03:00:47 +01:00
Adrià
41d0d902cc
Merge pull request #13532 from relativespace2K/feat/libkernel-kern-proc-proc
...
feat(libkernel): answer kern.proc.proc with the calling process
2026-10-31 02:57:46 +01:00
Adrià
da88f4489a
Merge pull request #13544 from cocoa55/fix/mutex-spin-yield-loops
...
fix(libkernel): spin and yield by the mutex spin and yield loop counts
2026-10-31 02:57:38 +01:00
Adrià and Claude Sonnet 5.5
4f34341268
docs(libkernel): say the trace memory stats EFAULT is a host answer, not the firmware's
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-31 02:24:41 +01:00
pushkarreddyy
ba2ac8c20e
docs(libkernel): record page table and trace memory stats memory validation contract
2026-10-31 02:24:36 +01:00
Adrià
a46b04dfe1
fix(libkernel): ignore unwritable sbytes in sendfile and bound iovec allocation
2026-10-31 02:16:45 +01:00
pushkarreddyy
2c0987cea3
docs(libkernel): record sendfile memory validation contract
2026-10-31 02:16:33 +01:00
Adrià
9605300f29
Merge pull request #13503 from Oscar45397/fix/libkernel-map-unallocated-direct-memory
...
fix(libkernel): return ENOMEM when mapping unallocated direct memory
2026-10-30 22:56:33 +01:00
Adrià
48773cf610
Merge pull request #13443 from DeveshB-1/fix/write-throttling-efault
...
fix(libkernel): return EFAULT from sceKernelWriteThrottlingStatus for an unwritable store
2026-10-30 22:48:12 +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à
db8f5671ab
Merge pull request #13444 from DeveshB-1/fix/thermal-sensors-efault
...
fix(libkernel): return EFAULT from thermal sensor queries for unwritable stores
2026-10-30 22:18:45 +01:00
mrph28
3b379b4435
feat(libkernel): answer kern.proc.proc with the calling process
...
MihawkOS (PPSA99170) reads sysctl {1, 14, 8, 0} while it starts and the
runtime throws on the unsupported MIB, which aborts the title.
KERN_PROC_PROC takes no pid, so the node lists the one guest process the
runtime hosts, as the same kinfo_proc kern.proc.pid already builds.
AI-assisted: yes
2026-10-30 18:06:58 -03:00
Adrià
7ad4f3bb9f
Merge pull request #12986 from Oscar45397/test/libkernel-virtual-range-name
...
fix(libkernel): return EFAULT for a null virtual range name
2026-10-30 21:23:57 +01:00
Adrià
c0fb4a6aad
Merge pull request #13411 from DeveshB-1/fix/uuid-create-efault
...
fix(libkernel): return EFAULT from sceKernelUuidCreate and sceKernelCreateUuidV4 for unwritable stores
2026-10-30 21:14:40 +01:00
Adrià and Claude Sonnet 5.5
a667bc4a7a
fix(libkernel): keep unwritable-output checks to hosts with a sensor, restore measured debt detail
...
Co-Authored-By: Claude Sonnet 5.5 <[email protected] >
2026-10-30 20:51:20 +01:00
DeveshB-1
84e493242f
fix(libkernel): return EFAULT from thermal sensor queries for unwritable stores
2026-10-30 20:51:08 +01:00
MarcZX10
03a4bd851e
docs(libkernel): sysctlnametomib returns ENOENT for kern.smp.maxcpus, kern.stackprot, kern.sched.name and kern.timecounter.hardware
...
Old claim (entry 155 of docs/dev/debt/libkernel.md, second half): sysctlnametomib still throws for these four names.
What the code does: these names are only in IsUnansweredName, which the read path of sysctl uses. sysctlnametomib does not match them in TopLevelNode, its known-name table or its SystemStrings and SystemIntegers tables, so it reaches the final fall-through, sets errno to 2 (ENOENT) and returns -1 without throwing.
Permalinks at 50843f45d9 :
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L755 (sysctlnametomib)
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L808-L809 (fall-through, ENOENT)
- https://github.com/boykopovar/AnyPS5/blob/50843f45d95b60e5772f4396431f9a39b8709d72/core/libs/prx/libkernel/System/src/SystemConfiguration.cpp#L272-L274 (names in the unanswered list)
2026-10-30 18:52:29 +00:00
cocoa55 and Claude Opus 5.5
9a7acb3677
fix(libkernel): spin and yield by the mutex spin and yield loop counts
...
Lock and timed lock now try the mutex up to the spin count with a pause
between tries, then up to the yield count with a yield before each try,
before they block, as FreeBSD 11.4's mutex_lock_sleep does. Trylock and
a lock the thread already holds do not spin. A uniprocessor host skips
the spins and keeps the yields.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 13:56:31 -04:00
BunnyFl and Claude 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
Oscar45397 and Claude Opus 5.5
06b7a58b1b
fix(libkernel): return ENOMEM when mapping unallocated direct memory
...
Mapping a direct memory range that includes an unallocated physical
page threw std::invalid_argument and ended the process. It now returns
ENOMEM before anything is mapped, as shadPS4's MemoryManager::MapMemory
does.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 18:06:45 +01:00
Oscar45397 and Claude Opus 5.5
287f43e004
fix(libkernel): return EFAULT for a null virtual range name
...
KytyPS5 and shadPS4 return EFAULT for a null name. The test keeps that
and the rename and clear checks, and drops the null address, zero length
and past-the-end cases that no reference covers; the debt entry records
them as unknown, with the 32-byte name limit.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 17:47:22 +01:00
BunnyFl and Claude 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
DeveshB-1
5553cbd447
fix(libkernel): return EFAULT from sceKernelWriteThrottlingStatus for an unwritable store
2026-10-30 20:14:03 +05:30
DeveshB-1
32c4ce6484
docs(libkernel): record unwritable store fallback for sceKernelUuidCreate and sceKernelCreateUuidV4
2026-10-30 20:10:52 +05:30
Oscar45397 and Claude Opus 5.5
03722a1570
fix(libkernel): deliver raises at the spin that ends a sleep on Windows
...
On Windows a sleep shorter than TimedWait's 0.5 ms lead, and the last 0.5 ms of a longer one, is a YieldProcessor spin in host code with no wait counted. A raise that found the target there could only be delivered through the return-address breakpoint or sampling, so sceKernelRaiseException at a thread looping on such sleeps was lost: a thread looping on sceKernelUsleep(200) lost the first raise in 5 of 5 runs.
The spins in SleepUntil and SleepNanosUnlessChanged now run under a DeliveryDeferral and drain APCs afterwards, as BeginPark and Unpark already do. A raise that finds the target spinning is queued as an APC and runs when the sleep ends.
GuestRaiseShortSleep raises 100 times each at a thread sleeping 100, 200 and 400 us in a loop, with sleep wakes on (SleepNanosUnlessChanged) and with APS5_NO_SLEEP_WAKE (SleepUntil). Both fail on main at the first or second raise.
AI-assisted (Claude Code).
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-30 13:26:59 +01:00
Dean
5c0ee1bbf4
Merge pull request #11827 from oneandonlydean/carry/7268-cert-paths
...
feat(libkernel): provide system and common certificate list paths
2026-10-31 01:18:08 +13:00
Adrià
8304ccaedb
Merge pull request #11341 from SteelCrab/review/emscripten-libraries
...
build(libs): support Emscripten memory64 compilation
2026-10-30 12:49:20 +01:00
Dean Galvin
462c4ec0aa
Merge main into PR #11827
2026-10-30 23:07:47 +13:00
Dean Galvin
f2b4437f74
docs(libkernel): mark the system and common certificate paths as unverified
2026-10-30 23:07:14 +13:00
DeveshB-1
9e5683dd8b
fix(libkernel): return EFAULT from sched_getparam and sched_setparam for invalid memory
2026-10-30 15:05:54 +05:30
Adrià
bcee950a9c
Merge pull request #12467 from Buraddomoon/fix/udp-disconnect-local-address
...
fix(libkernel): clear reported local address after UDP disconnect
2026-10-30 10:18:49 +01:00
Adrià
e4f5516fd6
Merge pull request #12974 from MarcZX10/feat/host-game-mode
...
feat(libkernel): opt-in host game mode request (APS5_GAME_MODE)
2026-10-30 06:36:04 +01:00
Adrià
5ba6b2b917
Merge pull request #12963 from JJenkx/windows/libkernel-raise-pending-until-resume
...
fix(libkernel): keep sceKernelRaiseException pending on a suspended thread on Windows
2026-10-30 06:32:05 +01:00
Adrià
ad9001f9d2
Merge pull request #12865 from heditrigui/feat/libkernel-posix-madvise
...
feat(libkernel): implement posix_madvise
2026-10-30 05:52:23 +01:00