diff options
Diffstat (limited to '')
-rw-r--r-- | include/kernel/kernel/modulemgr.h | 1 | ||||
-rw-r--r-- | include/kernel/kernel/sysmem.h | 38 |
2 files changed, 39 insertions, 0 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 |