//Subroutine LoadCoreForKernel_001B57BB - Address 0x00006E38 s32 sceKernelDeleteModule(SceModule *mod) { s32 status; u32 intrState; intrState = loadCoreCpuSuspendIntr(); //0x00006E48 status = sceKernelDeleteUID(mod->modId); //0x00006E54 loadCoreCpuResumeIntr(intrState); //0x00006E60 return status; }
//5e98 int sceKernelDeleteMbx(SceUID mbxid) { SET_K1_SRL16; if(sceKernelIsIntrContext()) { RESET_K1; return SCE_KERNEL_ERROR_ILLEGAL_CONTEXT; } int intr = sceKernelCpuSuspendIntr(); uidControlBlock *cb; if(sceKernelGetUIDcontrolBlockWithType(mbxid, uidMboxType, &cb) != 0) { sceKernelCpuResumeIntr(intr); RESET_K1; return SCE_KERNEL_ERROR_UNKNOWN_MBXID; } if(IS_USER_MODE && !(cb->attr & 0x10)) { sceKernelCpuResumeIntr(intr); RESET_K1; return SCE_KERNEL_ERROR_ILLEGAL_PERM; } THREADMAN_TRACE(0x48, 1, mbxid); ASSERT(sceKernelDeleteUID(mbxid) <= 0); sceKernelCpuResumeIntr(intr); RESET_K1; return 0; }
//Subroutine LoadCoreForKernel_84D5C971 - Address 0x00006E80 SceModule *sceKernelCreateAssignModule(SceLoadCoreExecFileInfo *execFileInfo) { u32 intrState; u32 intrState2; SceModule *mod = NULL; intrState = loadCoreCpuSuspendIntr(); //0x00006E94 mod = sceKernelCreateModule(); //0x00006E9C if (mod != NULL) { //0x00006EAC if (sceKernelAssignModule(mod, execFileInfo) < SCE_ERROR_OK) { //0x00006EB4 - 0x00006EC0 intrState2 = loadCoreCpuSuspendIntr(); //0x00006EE8 sceKernelDeleteUID(mod->modId); //0x00006EF8 mod = NULL; //0x00006EFC loadCoreCpuResumeIntr(intrState2); //0x00006F00 } } loadCoreCpuResumeIntr(intrState); //0x00006EC4 return mod; //0x00006ECC }