Commit Graph
5 Commits
Author SHA1 Message Date
orezraeyandClaude Opus 5.5 b46ae368c3 Merge main into fix/libkernel-mprotect-gaps-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 20:30:06 -03:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
orezraeyandClaude Opus 5.5 748b358355 fix(libkernel): protect past an unmapped start as a PS5 does
Measured on firmware 13.60: sceKernelMprotect, mprotect and
sceKernelMtypeprotect on direct memory change the mapped parts of a
range and return 0 also when the range starts in a gap or is wholly
unmapped; sceKernelMtypeprotect retypes only the mapped pages. The batch
map and memory pool protect operations keep their unmeasured EINVAL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 17:26:27 -03:00
milescovielloandClaude Opus 5.5 cbf006cb4b fix(libkernel): return 0 from sceKernelMprotect and sceKernelMtypeprotect for a zero length
mprotect already returns 0 for a zero length. The sceKernel entry
points passed it to DoMprotect, which throws for an empty range.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 06:26:57 +00:00
xXPBSXxandClaude Sonnet 5.5 05ffb45164 fix(libkernel): fail sceKernelMprotect over an unmapped range with EINVAL instead of aborting
The allocation tracker threw a runtime_error (a hole in the protected range) from inside
sceKernelMprotect, which terminated the title. mprotect already turned the exception into
EINVAL. sceKernelMprotect and sceKernelMtypeprotect now check that the range is registered
first and return EINVAL; the retype of direct mappings is skipped on failure.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 17:41:52 +02:00