summaryrefslogtreecommitdiff
path: root/include/common/kernel/threadmgr.h
diff options
context:
space:
mode:
authorReiko Asakura2021-01-19 20:35:29 -0500
committerReiko Asakura2021-01-19 20:35:29 -0500
commit1fb507081a37e929f2535939473f29f9c034b95b (patch)
tree093b87475da65087876ad112d12a26d1b165c034 /include/common/kernel/threadmgr.h
parentRemove dupe: sysmem related (diff)
downloadvds-libraries-1fb507081a37e929f2535939473f29f9c034b95b.tar.gz
Remove dupe: kernel/threadmgr.h
Diffstat (limited to 'include/common/kernel/threadmgr.h')
-rw-r--r--include/common/kernel/threadmgr.h275
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