summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common/kernel/threadmgr.h13
-rw-r--r--include/kernel/kernel/threadmgr.h8
-rw-r--r--include/user/kernel/threadmgr.h22
-rw-r--r--nids/360/SceLibKernel.yml1
4 files changed, 29 insertions, 15 deletions
diff --git a/include/common/kernel/threadmgr.h b/include/common/kernel/threadmgr.h
index 0077fc5..f8b2924 100644
--- a/include/common/kernel/threadmgr.h
+++ b/include/common/kernel/threadmgr.h
@@ -266,6 +266,19 @@ typedef SceInt32 (*SceKernelThreadEntry)(SceSize argSize, void *pArgBlock);
#define SCE_KERNEL_RW_LOCK_CANCEL_WITH_WRITE_LOCK (1)
+// Types
+
+typedef struct _SceKernelThreadOptParam {
+ /** Size of the ::SceKernelThreadOptParam structure. */
+ SceSize size;
+ SceUInt32 attr;
+ SceKernelMemBlockType memType1;
+ SceKernelMemBlockType memType2;
+ SceInt32 unk0x10;
+ SceInt32 unk0x14;
+ SceInt32 unk0x1C;
+} SceKernelThreadOptParam;
+
#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
}
#endif
diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h
index 445c806..edd690b 100644
--- a/include/kernel/kernel/threadmgr.h
+++ b/include/kernel/kernel/threadmgr.h
@@ -9,14 +9,6 @@ extern "C" {
/* Threads. */
-/** Additional options used when creating threads. */
-typedef struct SceKernelThreadOptParam {
- /** Size of the ::SceKernelThreadOptParam structure. */
- SceSize size;
- /** Attributes */
- SceUInt32 attr;
-} SceKernelThreadOptParam;
-
/** Structure to hold the status information for a thread
* @see sceKernelGetThreadInfo
*/
diff --git a/include/user/kernel/threadmgr.h b/include/user/kernel/threadmgr.h
index a1fa266..ccc44da 100644
--- a/include/user/kernel/threadmgr.h
+++ b/include/user/kernel/threadmgr.h
@@ -9,13 +9,6 @@ extern "C" {
/* Threads. */
-/** Additional options used when creating threads. */
-typedef struct _SceKernelThreadOptParam {
- /** Size of the ::SceKernelThreadOptParam structure. */
- SceSize size;
- SceUInt32 attr;
-} SceKernelThreadOptParam;
-
/** Structure to hold the status information for a thread
* @see sceKernelGetThreadInfo
*/
@@ -1582,6 +1575,21 @@ void *sceKernelGetThreadTLSAddr(SceUID thid, int key);
*/
void *sceKernelGetTLSAddr(int key);
+typedef enum _SceKernelThreadSpecificInfo {
+ SCE_THREAD_SPECIFIC_INFO_UNK_0,
+ SCE_THREAD_SPECIFIC_INFO_ID,
+ SCE_THREAD_SPECIFIC_INFO_STACK_START_ADDRESS,
+ SCE_THREAD_SPECIFIC_INFO_STACK_END_ADDRESS,
+ SCE_THREAD_SPECIFIC_INFO_VFP_EXCEPTION,
+ SCE_THREAD_SPECIFIC_INFO_LWMUTEX_STATUS,
+ SCE_THREAD_SPECIFIC_INFO_UNK_6,
+ SCE_THREAD_SPECIFIC_INFO_UNK_7,
+ SCE_THREAD_SPECIFIC_INFO_PRIORITY,
+ SCE_THREAD_SPECIFIC_INFO_AFFINITY,
+} SceKernelThreadSpecificInfo;
+
+SceUnion32 sceKernelGetThreadSpecificInfo(SceUID threadId, SceKernelThreadSpecificInfo info);
+
#ifdef __cplusplus
}
#endif
diff --git a/nids/360/SceLibKernel.yml b/nids/360/SceLibKernel.yml
index 5b48ce2..0316966 100644
--- a/nids/360/SceLibKernel.yml
+++ b/nids/360/SceLibKernel.yml
@@ -229,6 +229,7 @@ modules:
sceKernelGetThreadId: 0x0FB972F9
sceKernelGetThreadInfo: 0x8D9C5461
sceKernelGetThreadRunStatus: 0xD6B01013
+ sceKernelGetThreadSpecificInfo: 0x35D20E49
sceKernelGetTimerBase: 0x1F59E04D
sceKernelGetTimerEventRemainingTime: 0x75B1EB3E
sceKernelGetTimerInfo: 0x7E35E10A