summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/kernel/kernel/modulemgr.h1
-rw-r--r--include/kernel/kernel/sysmem.h38
-rw-r--r--nids/360/SceKernelModulemgr.yml1
-rw-r--r--nids/360/SceSysmem.yml3
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