Repository navigation
fix(libkernel): ignore unrecognised virtual memory mapping flags - #1392
authurtabo-byte wants to merge 1 commit into
Conversation
6639835
left a comment
There was a problem hiding this comment.
Reviewed three patches at cbf4c50. MapPlaced removes unknown-bit rejection while retaining FIXED handling/known constants. Tests map observed 0x8000 and separate 0x10000000 flags, unmap both and restore flexible memory. No defect found within this patch scope. Guest-memory tests/builds and console behavior were not verified; other flags depend on stated compatibility assumptions.
|
Please accept 0x8000 only and keep the throw for other unknown bits: add it to |
cbf4c50 to
d2de4ce
Compare
|
Done — rebased onto current
|
|
This looks like the same change as #957: both make |
|
Closing: #957, merged this morning, already accepts 0x8000 in |
What
sceKernelMapNamedFlexibleMemory(via_mapFlexible→DoMapAnon→MapPlaced) threwUnsupported memory mapping flagsfor flag bit0x8000, which the guest libc sets on its heap mappings, so titles aborted at startup.0x8000is not a documentedSCE_KERNEL_MAP_*flag: the flag set is taken from GPCS4 and fpPS4, and no console flag is defined at0x8000.MapPlacednow accepts0x8000alongside the flags that change behaviour (SCE_KERNEL_MAP_FIXED0x10,SCE_KERNEL_MAP_NO_OVERWRITE0x80,SCE_KERNEL_MAP_NO_COALESCE0x400000); any other unrecognised bit is still rejected. Recorded in technical debt, updating the existingsceKernelMapNamedFlexibleMemoryInternalentry.Tested
Windows 11, Pure Pool Pro (PPSA28502). Before: the title aborted in
MapPlacedon its first libc heap mapping. After: it maps its heap, opensOut.logand/app0/, allocates 1 GiB of direct memory and starts its engine thread pool.guest_memorypasses.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository