D155 - Two names confirmed by hash, and the vocabulary extended to derive them
decided ยท 2026-08-20
The ordered tail (D154) ended with
libkernel::0x8434cc175396c635 and then a null write, two
calls after a successful allocation. That shape - allocate physical
memory, then ask where it can be reached - suggested a mapping call.
Proposing candidate names and letting the hash confirm or reject, which is the ordinary clean-room method and consults nothing, matched two:
| hash | name |
|---|---|
0x8434cc175396c635 |
sceKernelMapNamedDirectMemory |
0x366131779b0023bd |
sceKernelMprotect |
The first argument agreeing independently - a guest stack address, which is where a caller wants to be told an answer - is what makes it more than a hash collision on a lucky guess.
Main and Named were added to the object
vocabulary so crates/orbistoun-names/data/vendor.toml
derives both sceKernelAllocateMainDirectMemory and
sceKernelMapNamedDirectMemory from the repository's own
grammar. That is the part that matters for provenance:
a name confirmed in a session and not added to the vocabulary is a name
nobody can re-derive, which makes it an assertion again.
sceKernelMprotect is not derivable from the
current grammar and is recorded as outstanding. It points at a pattern
worth adding: the vendor wrapping a POSIX name as
sceKernel<name>, which would derive it and a family
of others from the FreeBSD list already harvested (D126). Not built here
- it needs a solver change rather than a data edit, and it should be
done deliberately rather than as a footnote to this.