diff options
Diffstat (limited to '')
-rw-r--r-- | include/kernel/kernel/modulemgr.h | 1 | ||||
-rw-r--r-- | include/kernel/kernel/sysmem.h | 38 | ||||
-rw-r--r-- | nids/360/SceKernelModulemgr.yml | 1 | ||||
-rw-r--r-- | nids/360/SceSysmem.yml | 3 |
4 files changed, 42 insertions, 1 deletions
diff --git a/include/kernel/kernel/modulemgr.h b/include/kernel/kernel/modulemgr.h index 8e1aae7..a37f4d4 100644 --- a/include/kernel/kernel/modulemgr.h +++ b/include/kernel/kernel/modulemgr.h @@ -87,6 +87,7 @@ int sceKernelStopUnloadModule(SceUID modid, SceSize args, void *argp, int flags, SceUID sceKernelLoadStartSharedModuleForPid(SceUID pid, const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status); SceUID sceKernelLoadStartModuleForPid(SceUID pid, const char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status); +int sceKernelStartModuleForPid(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status); SceUID sceKernelLoadModuleForPid(SceUID pid, const char *path, int flags, SceKernelLMOption *option); SceUID sceKernelUnloadModuleForPid(SceUID pid, SceUID modid, int flags, SceKernelULMOption *option); int sceKernelStopModuleForPid(SceUID pid, SceUID modid, SceSize args, void *argp, int flags, SceKernelULMOption *option, int *status); diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index 9c5d0aa..6c5f461 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -141,7 +141,43 @@ typedef struct { SceUID sceKernelKernelUidForUserUid(SceUID pid, SceUID user_uid); SceUID sceKernelCreateUserUid(SceUID pid, SceUID kern_uid); SceUID sceKernelCreateUidObj(SceClass *cls, const char *name, SceCreateUidObjOpt *opt, SceObjectBase **obj); + +/** + * Gets an object from a UID. + * + * This retains the object internally! You must call `sceKernelUidRelease` + * after you are done using it. + * + * @param[in] uid The uid + * @param cls The class + * @param obj The object + * + * @return 0 on success, < 0 on error. + */ int sceKernelGetObjForUid(SceUID uid, SceClass *cls, SceObjectBase **obj); + +/** + * Retains an object referenced by the UID. + * + * This increases the internal reference count. + * + * @param[in] uid The uid + * + * @return 0 on success, < 0 on error. + */ +int sceKernelUidRetain(SceUID uid); + +/** + * Releases an object referenced by the UID. + * + * This decreases the internal reference count. + * + * @param[in] uid The uid + * + * @return 0 on success, < 0 on error. + */ +int sceKernelUidRelease(SceUID uid); + SceClass *sceKernelGetUidClass(void); typedef int (*SceClassCallback)(void *item); int sceKernelCreateClass(SceClass *cls, const char *name, void *uidclass, size_t itemsize, SceClassCallback create, SceClassCallback destroy); @@ -159,6 +195,8 @@ int sceKernelMapBlockUserVisible(SceUID uid); int sceKernelGetPaddr(void *addr, uintptr_t *paddr); +int sceSysrootIsManufacturingMode(void); + #ifdef __cplusplus } #endif diff --git a/nids/360/SceKernelModulemgr.yml b/nids/360/SceKernelModulemgr.yml index ce3705b..33be3a0 100644 --- a/nids/360/SceKernelModulemgr.yml +++ b/nids/360/SceKernelModulemgr.yml @@ -33,5 +33,6 @@ modules: sceKernelGetModuleInternal: 0xFE303863 sceKernelGetModuleList: 0x97CF7B4E sceKernelLoadModuleForPid: 0xFA21D8CB + sceKernelStartModuleForPid: 0x6DF745D5 sceKernelStopModuleForPid: 0x7BB4CE54 sceKernelUnloadModuleForPid: 0x5972E2CC diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml index e8ec2d6..d67fe2d 100644 --- a/nids/360/SceSysmem.yml +++ b/nids/360/SceSysmem.yml @@ -174,6 +174,8 @@ modules: sceKernelStrncpyUserToKernel: 0xDB3EC244 sceKernelStrnlenUserForPid: 0x9929EB07 sceKernelSwitchVmaForPid: 0x6F2ACDAE + sceKernelUidRelease: 0x149885C4 + sceKernelUidRetain: 0x0F5C84B7 sceKernelUnmapMemBlock: 0xFFCD9B60 SceSysmemForKernel: nid: 0x63A519E5 @@ -191,5 +193,4 @@ modules: sceSysrootIsSafeMode: 0x834439A7 sceSysrootIsUpdateMode: 0xB0E1FC67 sceSysrootIsUsbEnumWakeup: 0x79C9AE10 - sceSysrootUseExternalStorage: 0x55392965 sceSysrootUseInternalStorage: 0x50FE3B4D |