diff options
author | Yifan Lu | 2017-05-13 13:53:51 -0700 |
---|---|---|
committer | Yifan Lu | 2017-05-13 13:53:51 -0700 |
commit | dcb38024c9984155685483be668284f477d8c454 (patch) | |
tree | 6dd016875353404712d2d67e9fcdacd8008b0b67 /include/kernel | |
parent | Fix code style of power.h (diff) | |
download | vds-libraries-dcb38024c9984155685483be668284f477d8c454.tar.gz |
Added sysmem uid object reference counting functions
Removed duplicate NID ksceSysrootUseExternalStorage == ksceSysrootIsManufacturingMode
Added headder for ksceSysrootIsManufacturingMode
Diffstat (limited to 'include/kernel')
-rw-r--r-- | include/kernel/kernel/sysmem.h | 38 |
1 files changed, 38 insertions, 0 deletions
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 |