diff options
author | Reiko Asakura | 2021-01-19 20:35:29 -0500 |
---|---|---|
committer | Reiko Asakura | 2021-01-19 20:35:29 -0500 |
commit | 1fb507081a37e929f2535939473f29f9c034b95b (patch) | |
tree | 093b87475da65087876ad112d12a26d1b165c034 /include/common/kernel/threadmgr.h | |
parent | Remove dupe: sysmem related (diff) | |
download | vds-libraries-1fb507081a37e929f2535939473f29f9c034b95b.tar.gz |
Remove dupe: kernel/threadmgr.h
Diffstat (limited to 'include/common/kernel/threadmgr.h')
-rw-r--r-- | include/common/kernel/threadmgr.h | 275 |
1 files changed, 5 insertions, 270 deletions
diff --git a/include/common/kernel/threadmgr.h b/include/common/kernel/threadmgr.h index f10617a..a075c0f 100644 --- a/include/common/kernel/threadmgr.h +++ b/include/common/kernel/threadmgr.h @@ -1,274 +1,11 @@ #ifndef _DOLCESDK_PSP2COMMON_KERNEL_THREADMGR_H_ #define _DOLCESDK_PSP2COMMON_KERNEL_THREADMGR_H_ -#include <psp2common/kernel/constants.h> -#include <psp2common/kernel/cpu.h> -#include <psp2common/kernel/types.h> +#include_next <kernel/threadmgr.h> -#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) -extern "C" { -#endif - -// Thread priority - -#define SCE_KERNEL_HIGHEST_PRIORITY_USER (64) -#define SCE_KERNEL_LOWEST_PRIORITY_USER (191) - -#define SCE_KERNEL_INDIVIDUAL_QUEUE_HIGHEST_PRIORITY (64) -#define SCE_KERNEL_INDIVIDUAL_QUEUE_LOWEST_PRIORITY (127) -#define SCE_KERNEL_COMMON_QUEUE_HIGHEST_PRIORITY (128) -#define SCE_KERNEL_COMMON_QUEUE_LOWEST_PRIORITY (191) - -#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) -#define SCE_KERNEL_DEFAULT_PRIORITY (static_cast<SceInt32>(0x10000100)) -#else -#define SCE_KERNEL_DEFAULT_PRIORITY ((SceInt32)0x10000100) -#endif - -#define SCE_KERNEL_DEFAULT_PRIORITY_USER SCE_KERNEL_DEFAULT_PRIORITY - -#define SCE_KERNEL_CURRENT_THREAD_PRIORITY (0) - -// Thread stack size - -#define SCE_KERNEL_THREAD_STACK_SIZE_MAX SCE_KERNEL_32MiB -#define SCE_KERNEL_THREAD_STACK_SIZE_MIN SCE_KERNEL_4KiB - -#define SCE_KERNEL_THREAD_STACK_SIZE_DEFAULT SCE_KERNEL_THREAD_STACK_SIZE_MIN -#define SCE_KERNEL_THREAD_STACK_SIZE_DEFAULT_USER_MAIN SCE_KERNEL_256KiB - -#define SCE_KERNEL_STACK_SIZE_MAX SCE_KERNEL_1MiB -#define SCE_KERNEL_STACK_SIZE_MIN SCE_KERNEL_4KiB -#define SCE_KERNEL_STACK_SIZE_DEFAULT SCE_KERNEL_STACK_SIZE_MIN -#define SCE_KERNEL_STACK_SIZE_DEFAULT_USER_MAIN (0x00040000U) - -// Thread status - -#define SCE_KERNEL_THREAD_STATUS_RUNNING (0x00000001U) -#define SCE_KERNEL_THREAD_STATUS_READY (0x00000002U) -#define SCE_KERNEL_THREAD_STATUS_STANDBY (0x00000004U) -#define SCE_KERNEL_THREAD_STATUS_WAITING (0x00000008U) -#define SCE_KERNEL_THREAD_STATUS_DORMANT (0x00000010U) -#define SCE_KERNEL_THREAD_STATUS_DELETED (0x00000020U) -#define SCE_KERNEL_THREAD_STATUS_DEAD (0x00000040U) -#define SCE_KERNEL_THREAD_STATUS_STAGNANT (0x00000080U) -#define SCE_KERNEL_THREAD_STATUS_SUSPENDED (0x00000100U) - -#define SCE_KERNEL_THREAD_STATUS_MASK (0x0000ffffU) - -// Thread wait type - -#define SCE_KERNEL_WAITTYPE_DELAY (0x00000001U) -#define SCE_KERNEL_WAITTYPE_WAITTHEND (0x00000002U) -#define SCE_KERNEL_WAITTYPE_SIGNAL (0x00000004U) -#define SCE_KERNEL_WAITTYPE_WAITTHSUSPEND (0x00000008U) -#define SCE_KERNEL_WAITTYPE_EVENTFLAG (0x00000010U) -#define SCE_KERNEL_WAITTYPE_SEMAPHORE (0x00000020U) -#define SCE_KERNEL_WAITTYPE_MUTEX (0x00000040U) -#define SCE_KERNEL_WAITTYPE_RW_LOCK (0x00000080U) -#define SCE_KERNEL_WAITTYPE_COND_SIGNAL (0x00000100U) -#define SCE_KERNEL_WAITTYPE_COND_MUTEX (0x00000200U) -#define SCE_KERNEL_WAITTYPE_FAST_MUTEX (0x00001000U) -#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_SPIN (0x00002000U) -#define SCE_KERNEL_WAITTYPE_EVENT (0x00010000U) -#define SCE_KERNEL_WAITTYPE_MP_EVENTS (0x00020000U) -#define SCE_KERNEL_WAITTYPE_MSG_PIPE (0x00040000U) -#define SCE_KERNEL_WAITTYPE_LW_MUTEX (0x00100000U) -#define SCE_KERNEL_WAITTYPE_LW_COND_SIGNAL (0x00200000U) -#define SCE_KERNEL_WAITTYPE_LW_COND_LW_MUTEX (0x00400000U) - -#define SCE_KERNEL_WAITTYPE_DELAY_CB (0x80000001U) -#define SCE_KERNEL_WAITTYPE_WAITTHEND_CB (0x80000002U) -#define SCE_KERNEL_WAITTYPE_SIGNAL_CB (0x80000004U) -#define SCE_KERNEL_WAITTYPE_WAITTHSUSPEND_CB (0x80000008U) -#define SCE_KERNEL_WAITTYPE_EVENTFLAG_CB (0x80000010U) -#define SCE_KERNEL_WAITTYPE_SEMAPHORE_CB (0x80000020U) -#define SCE_KERNEL_WAITTYPE_MUTEX_CB (0x80000040U) -#define SCE_KERNEL_WAITTYPE_RW_LOCK_CB (0x80000080U) -#define SCE_KERNEL_WAITTYPE_COND_SIGNAL_CB (0x80000100U) -#define SCE_KERNEL_WAITTYPE_COND_MUTEX_CB (0x80000200U) -#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_CB (0x80001000U) -#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_SPIN_CB (0x80002000U) -#define SCE_KERNEL_WAITTYPE_EVENT_CB (0x80010000U) -#define SCE_KERNEL_WAITTYPE_MP_EVENTS_CB (0x80020000U) -#define SCE_KERNEL_WAITTYPE_MSG_PIPE_CB (0x80040000U) -#define SCE_KERNEL_WAITTYPE_LW_MUTEX_CB (0x80100000U) -#define SCE_KERNEL_WAITTYPE_LW_COND_SIGNAL_CB (0x80200000U) -#define SCE_KERNEL_WAITTYPE_LW_COND_LW_MUTEX_CB (0x80400000U) - -// Thread UID - -#define SCE_KERNEL_THREAD_ID_SELF (0) - -#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) -#define SCE_KERNEL_THREAD_ID_USER (static_cast<SceUID>(0xfffffff0)) -#else -#define SCE_KERNEL_THREAD_ID_USER ((SceUID)0xfffffff0) -#endif - -// Thread synchronisation object UID class - -#define SCE_KERNEL_THREADMGR_UID_CLASS_THREAD (1) -#define SCE_KERNEL_THREADMGR_UID_CLASS_SEMA (2) -#define SCE_KERNEL_THREADMGR_UID_CLASS_EVENT_FLAG (3) -#define SCE_KERNEL_THREADMGR_UID_CLASS_MUTEX (4) -#define SCE_KERNEL_THREADMGR_UID_CLASS_COND (5) -#define SCE_KERNEL_THREADMGR_UID_CLASS_TIMER (6) -#define SCE_KERNEL_THREADMGR_UID_CLASS_MSG_PIPE (7) -#define SCE_KERNEL_THREADMGR_UID_CLASS_CALLBACK (8) -#define SCE_KERNEL_THREADMGR_UID_CLASS_THREAD_EVENT (9) -#define SCE_KERNEL_THREADMGR_UID_CLASS_LW_MUTEX (10) -#define SCE_KERNEL_THREADMGR_UID_CLASS_LW_COND (11) -#define SCE_KERNEL_THREADMGR_UID_CLASS_RW_LOCK (12) -#define SCE_KERNEL_THREADMGR_UID_CLASS_SIMPLE_EVENT (13) - -// Thread CPU affinity - -#define SCE_KERNEL_THREAD_CPU_AFFINITY_MASK_DEFAULT (0) - -// Thread function type - -typedef SceInt32 (*SceKernelThreadEntry)(SceSize argSize, void *pArgBlock); - -// Thread VFP exception mask - -#define SCE_KERNEL_VFP_EXCEPTION_MASK_QCE (0x08000000U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_IDE (0x00000080U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_IXE (0x00000010U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_UFE (0x00000008U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_OFE (0x00000004U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_DZE (0x00000002U) -#define SCE_KERNEL_VFP_EXCEPTION_MASK_IOE (0x00000001U) - -#define SCE_KERNEL_VFP_EXCEPTION_MASK_ALL \ - (SCE_KERNEL_VFP_EXCEPTION_MASK_QCE | SCE_KERNEL_VFP_EXCEPTION_MASK_IDE | \ - SCE_KERNEL_VFP_EXCEPTION_MASK_IXE | SCE_KERNEL_VFP_EXCEPTION_MASK_UFE | \ - SCE_KERNEL_VFP_EXCEPTION_MASK_OFE | SCE_KERNEL_VFP_EXCEPTION_MASK_DZE | \ - SCE_KERNEL_VFP_EXCEPTION_MASK_IOE) - -// Thread synchronisation object attribute - -#define SCE_KERNEL_ATTR_SINGLE (0x00000000U) -#define SCE_KERNEL_ATTR_MULTI (0x00001000U) -#define SCE_KERNEL_ATTR_TH_FIFO (0x00000000U) -#define SCE_KERNEL_ATTR_TH_PRIO (0x00002000U) -#define SCE_KERNEL_ATTR_MS_FIFO (0x00000000U) // Unused -#define SCE_KERNEL_ATTR_MS_PRIO (0x00000000U) // Unused -#define SCE_KERNEL_ATTR_OPENABLE (0x00000080U) - -#define SCE_KERNEL_OPEN_LIMIT_MAX (127) - -// Thread event +SCE_CDECL_BEGIN -#define SCE_KERNEL_THREAD_EVENT_TYPE_START (0x04) -#define SCE_KERNEL_THREAD_EVENT_TYPE_EXIT (0x08) - -#define SCE_KERNEL_THREAD_EVENT_TYPE_ALL \ - (SCE_KERNEL_THREAD_EVENT_TYPE_START | SCE_KERNEL_THREAD_EVENT_TYPE_EXIT) - -#define SCE_KERNEL_EVENT_ATTR_MANUAL_RESET (0x00000000U) -#define SCE_KERNEL_EVENT_ATTR_AUTO_RESET (0x00000100U) - -#define SCE_KERNEL_ATTR_NOTIFY_CB_ALL (0x00000000U) -#define SCE_KERNEL_ATTR_NOTIFY_CB_WAKEUP_ONLY (0x00000800U) - -#define SCE_KERNEL_EVENT_IN (0x00000001U) -#define SCE_KERNEL_EVENT_OUT (0x00000002U) -#define SCE_KERNEL_EVENT_CREATE (0x00000004U) -#define SCE_KERNEL_EVENT_DELETE (0x00000008U) -#define SCE_KERNEL_EVENT_ERROR (0x00000010U) -#define SCE_KERNEL_EVENT_OPEN (0x00000100U) -#define SCE_KERNEL_EVENT_CLOSE (0x00000200U) -#define SCE_KERNEL_EVENT_TIMER (0x00008000U) -#define SCE_KERNEL_EVENT_DATA_EXIST (0x00010000U) - -#define SCE_KERNEL_EVENT_USER_DEFINED_MASK (0xff000000U) - -#define SCE_KERNEL_EVENT_WAIT_MODE_OR (0x00000001U) -#define SCE_KERNEL_EVENT_WAIT_MODE_AND (0x00000002U) - -// Thread timer - -#define SCE_KERNEL_TIMER_TYPE_SET_EVENT (0) -#define SCE_KERNEL_TIMER_TYPE_PULSE_EVENT (1) - -// Thread message pipe - -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_PRIO_S (0x00000001U) -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_PRIO_R (0x00000002U) -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_PRIO \ - (SCE_KERNEL_MSG_PIPE_ATTR_TH_PRIO_S | SCE_KERNEL_MSG_PIPE_ATTR_TH_PRIO_R) - -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_FIFO_S (0x00000004U) -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_FIFO_R (0x00000008U) -#define SCE_KERNEL_MSG_PIPE_ATTR_TH_FIFO \ - (SCE_KERNEL_MSG_PIPE_ATTR_TH_FIFO_S | SCE_KERNEL_MSG_PIPE_ATTR_TH_FIFO_R) - -#define SCE_KERNEL_MSG_PIPE_MODE_ASAP (0x00000000U) -#define SCE_KERNEL_MSG_PIPE_MODE_FULL (0x00000001U) - -#define SCE_KERNEL_MSG_PIPE_MODE_WAIT (0x00000000U) -#define SCE_KERNEL_MSG_PIPE_MODE_DONT_WAIT (0x00000010U) - -#define SCE_KERNEL_MSG_PIPE_MODE_DONT_REMOVE (0x00000100U) - -#define SCE_KERNEL_MSG_PIPE_TYPE_USER_MAIN (64) -#define SCE_KERNEL_MSG_PIPE_TYPE_USER_CDRAM (66) - -#define SCE_KERNEL_MSG_PIPE_OPT_ATTR_OPEN_LIMITATION (0x00000100U) - -// Thread event flag - -#define SCE_KERNEL_EVF_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_EVF_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO -#define SCE_KERNEL_EVF_ATTR_SINGLE SCE_KERNEL_ATTR_SINGLE -#define SCE_KERNEL_EVF_ATTR_MULTI SCE_KERNEL_ATTR_MULTI - -#define SCE_KERNEL_EVF_WAITMODE_AND (0x00000000U) -#define SCE_KERNEL_EVF_WAITMODE_OR (0x00000001U) -#define SCE_KERNEL_EVF_WAITMODE_CLEAR_ALL (0x00000002U) -#define SCE_KERNEL_EVF_WAITMODE_CLEAR_PAT (0x00000004U) - -// Thread semaphore - -#define SCE_KERNEL_SEMA_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_SEMA_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO - -// Thread mutex - -#define SCE_KERNEL_MUTEX_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_MUTEX_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO -#define SCE_KERNEL_MUTEX_ATTR_RECURSIVE (0x00000002U) -#define SCE_KERNEL_MUTEX_ATTR_CEILING (0x00000004U) - -// Thread condition - -#define SCE_KERNEL_COND_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_COND_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO - -// Thread lightweight mutex - -#define SCE_KERNEL_LW_MUTEX_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_LW_MUTEX_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO -#define SCE_KERNEL_LW_MUTEX_ATTR_RECURSIVE (0x00000002U) - -// Thread lightweight condition - -#define SCE_KERNEL_LW_COND_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_LW_COND_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO - -// Thread reader/writer lock - -#define SCE_KERNEL_RW_LOCK_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO -#define SCE_KERNEL_RW_LOCK_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO -#define SCE_KERNEL_RW_LOCK_ATTR_RECURSIVE (0x00000002U) -#define SCE_KERNEL_RW_LOCK_ATTR_CEILING (0x00000004U) - -#define SCE_KERNEL_RW_LOCK_CANCEL_WITH_WRITE_LOCK (1) - -// Types - -typedef struct _SceKernelThreadOptParam { +typedef struct _SceKernelThreadOptParamInternal { /** Size of the ::SceKernelThreadOptParam structure. */ SceSize size; SceUInt32 attr; @@ -277,10 +14,8 @@ typedef struct _SceKernelThreadOptParam { SceInt32 unk0x10; SceInt32 unk0x14; SceInt32 unk0x1C; -} SceKernelThreadOptParam; +} SceKernelThreadOptParamInternal; -#if defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus) -} -#endif +SCE_CDECL_END #endif |