summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/kernel/sysmem.h38
-rw-r--r--nids/360/SceSysmem.yml3
2 files changed, 40 insertions, 1 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
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