HLE: 6.60 kernel NIDs for module loading, memset and strnlen

The firmware's POPS manager imports these by their 6.60 NIDs:
sceKernelLoadModuleForKernel and sceKernelStartModule from ModuleMgrForKernel,
SysMem's sceKernelMemset and sceKernelGetUIDcontrolBlock, Sysclib's strnlen,
and sceKernelExtendKernelStack, which runs the callback like
sceKernelExtendThreadStack does.

sceKernelGetUIDcontrolBlock reports no such UID: the manager uses it to make
a descriptor it opened in kernel mode usable from user mode, and ours aren't
access-checked.
This commit is contained in:
Francisco José García García authored and Henrik Rydgård committed 2026-10-20 21:49:42 +02:00
1 parent 47c97b92aa
commit e9515d0f8a
4 files changed
+34 -1

No files matched your search

+3
View File
@@ -3703,6 +3703,9 @@ const HLEFunction ModuleMgrForKernel[] = {
{0x329C89DB, &WrapU_CUU<sceKernelLoadModuleVSH>, "sceKernelLoadModuleVSH", 'x', "sxx", HLE_KERNEL_SYSCALL },
{0x8909A807, &WrapU_CUU<sceKernelLoadModuleVSH>, "sceKernelLoadModuleVSH", 'x', "sxx", HLE_KERNEL_SYSCALL },
{0xBDFEEC4F, &WrapU_CUU<sceKernelLoadModuleVSH>, "sceKernelLoadModuleVSH", 'x', "sxx", HLE_KERNEL_SYSCALL },
// 6.60 NIDs.
{0x939E4270, &WrapU_CUU<sceKernelLoadModule>, "sceKernelLoadModuleForKernel", 'x', "sxx", HLE_KERNEL_SYSCALL },
{0x3FF74DF1, &WrapU_UUUUU<sceKernelStartModule>, "sceKernelStartModule", 'v', "xxxxx", HLE_NOT_IN_INTERRUPT | HLE_NOT_DISPATCH_SUSPENDED | HLE_KERNEL_SYSCALL },
};
void Register_ModuleMgrForUser() {