summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/kernel/kernel/modulemgr.h1
-rw-r--r--include/kernel/kernel/sysmem.h38
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