summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/kernel/kernel/threadmgr.h14
-rw-r--r--nids/360/SceKernelThreadMgr.yml1
2 files changed, 15 insertions, 0 deletions
diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h
index 9f36da0..779da1e 100644
--- a/include/kernel/kernel/threadmgr.h
+++ b/include/kernel/kernel/threadmgr.h
@@ -908,6 +908,20 @@ typedef struct ThreadCpuRegisters
*/
int sceKernelGetThreadCpuRegisters(SceUID thid, ThreadCpuRegisters *registers);
+
+/**
+ * @brief Change the thread suspension status to another value.
+ *
+ * More research needs to be done to find out exactly what each status actually means. Some examples of useful scenarios:
+ * When handling an exception changing the status to 0x1002 (on a newly suspended thread) will stop the kernel rethrowing the same exception.
+ * When resuming a suspended thread changing the status to 2 will allow it to resume.
+ *
+ * @param[in] thid The thread to change.
+ * @param[in] status The new status for suspension.
+ * @return Zero on success, else < 0 on error.
+ */
+int sceKernelChangeThreadSuspendStatus(SceUID thid, int status);
+
#ifdef __cplusplus
}
#endif
diff --git a/nids/360/SceKernelThreadMgr.yml b/nids/360/SceKernelThreadMgr.yml
index fb25df9..1a34700 100644
--- a/nids/360/SceKernelThreadMgr.yml
+++ b/nids/360/SceKernelThreadMgr.yml
@@ -109,6 +109,7 @@ modules:
sceKernelCancelCallback: 0xC040EC1C
sceKernelCancelMutex: 0x7204B846
sceKernelChangeThreadPriority: 0x63DAB420
+ sceKernelChangeThreadSuspendStatus: 0x04C6764B
sceKernelCheckCallback: 0xE53E41F6
sceKernelCheckWaitableStatus: 0xD9BD74EB
sceKernelClearEvent: 0x9C335818