PSVita supports multi-threading in the non-secure kernel but not the secure kernel. There is no user/POSIX threads; all threads are implemented as kernel threads and processes are the functionally the same as threads. Threads can be specified to run on a specific core with the CPU affinity mask option when creating the thread and by default, threads can run on any core. The kernel process can also run on any core. Additionally, the secure kernel can also run on any core.
Module
This module exists only in non-secure world. The SELF can be found in os0:kd/threadmgr.skprx
.
Known NIDs
Version |
Name |
World |
Privilege |
NID
|
1.69 |
SceKernelThreadMgr |
Non-secure |
Kernel |
0xA09CFA5C
|
3.57 |
SceKernelThreadMgr |
Non-secure |
Kernel |
0x21530BE9
|
3.60 |
SceKernelThreadMgr |
Non-secure |
Kernel |
0xF46ED7B2
|
3.65 |
SceKernelThreadMgr |
Non-secure |
Kernel |
0x23A1B482
|
Libraries
This module is accessible by usermode.
Known NIDs
Types
/** @name Basic thread functions
*/
/*@{*/
/**
* @defgroup Thread attributes
* Defining thread attributes
* Specified in attr argument of sceKernelCreateThread ()
*/
/*@{*/
#define SCE_KERNEL_THREAD_ATTR_NOUSE_VFP (0x01000000U) /**< Do not use VFP */
/*@}*/
/**
* @defgroup Thread priority
* Defining thread priorities
*/
/*@{*/
#define SCE_KERNEL_HIGHEST_PRIORITY_USER (64) /**< Highest priority */
#define SCE_KERNEL_LOWEST_PRIORITY_USER (191) /**< Lowest priority */
#define SCE_KERNEL_DEFAULT_PRIORITY ((SceInt32)0x10000100) /**< Default priority (whole system) */
/**
* Default priority (for users)
* The default priority for game applications is converted to 160 internally.
* You can also specify the default value ± offset (SCE_KERNEL_DEFAULT_PRIORITY_USER-10).
*/
#define SCE_KERNEL_DEFAULT_PRIORITY_USER SCE_KERNEL_DEFAULT_PRIORITY
#define SCE_KERNEL_CURRENT_THREAD_PRIORITY (0) /**< The priority of the currently executing thread */
/*@}*/
/**
* @defgroup Thread stack size
* Defining thread stack size
*/
/*@{*/
#define SCE_KERNEL_STACK_SIZE_MAX SCE_KERNEL_1MiB /**< Maximum stack size */
#define SCE_KERNEL_STACK_SIZE_MIN SCE_KERNEL_4KiB /**< Minimum stack size */
#define SCE_KERNEL_STACK_SIZE_DEFAULT SCE_KERNEL_STACK_SIZE_MIN /**< Default stack size */
#define SCE_KERNEL_STACK_SIZE_DEFAULT_USER_MAIN (0x00040000) /**< Default stack size of user main thread (byte) */
/*@}*/
/**
* @defgroup Thread state
* Defining thread state
*/
/*@{*/
#define SCE_KERNEL_THREAD_STATUS_RUNNING (0x00000001) /**< RUNNING status */
#define SCE_KERNEL_THREAD_STATUS_READY (0x00000002) /**< READY status */
#define SCE_KERNEL_THREAD_STATUS_STANDBY (0x00000004) /**< STANDBY status */
#define SCE_KERNEL_THREAD_STATUS_WAITING (0x00000008) /**< WAITING status */
#define SCE_KERNEL_THREAD_STATUS_DORMANT (0x00000010) /**< DORMANT status */
#define SCE_KERNEL_THREAD_STATUS_DELETED (0x00000020) /**< DELETED status */
#define SCE_KERNEL_THREAD_STATUS_DEAD (0x00000040) /**< DEAD status */
#define SCE_KERNEL_THREAD_STATUS_STAGNANT (0x00000080) /**< STAGNANT status */
#define SCE_KERNEL_THREAD_STATUS_SUSPENDED (0x00000100) /**< SUSPENDED status */
#define SCE_KERNEL_THREAD_STATUS_MASK (0x0000ffff) /**< Valid thread state mask */
/*@}*/
/**
* @defgroup Thread wait type
* Defining thread wait types
*/
/*@{*/
#define SCE_KERNEL_WAITTYPE_DELAY (0x00000001) /**< Thread delay */
#define SCE_KERNEL_WAITTYPE_WAITTHEND (0x00000002) /**< End of thread */
#define SCE_KERNEL_WAITTYPE_EVENTFLAG (0x00000004) /**< Event flag */
#define SCE_KERNEL_WAITTYPE_MUTEX (0x00000008) /**< Mutex */
#define SCE_KERNEL_WAITTYPE_FAST_MUTEX (0x00000010) /**< Fast mutex */
#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_SPIN (0x00000020) /**< High-speed mutex (spin) */
#define SCE_KERNEL_WAITTYPE_SEMAPHORE (0x00000040) /**< Semaphore */
#define SCE_KERNEL_WAITTYPE_EVENT (0x00000080) /**< Single event */
#define SCE_KERNEL_WAITTYPE_COND (0x00000100) /**< Condition variable */
#define SCE_KERNEL_WAITTYPE_MSG_PIPE (0x00000200) /**< Message pipe */
#define SCE_KERNEL_WAITTYPE_RW_LOCK (0x00000400) /**< Reader / writer lock */
#define SCE_KERNEL_WAITTYPE_SIGNAL (0x00000800) /**< Signal */
#define SCE_KERNEL_WAITTYPE_LW_MUTEX (0x00001000) /**< Lightweight mutex */
#define SCE_KERNEL_WAITTYPE_LW_COND (0x00002000) /**< Lightweight condition variable */
#define SCE_KERNEL_WAITTYPE_MP_EVENTS (0x00008000) /**< Event multiplexing */
#define SCE_KERNEL_WAITTYPE_DELAY_CB (0x00010001) /**< With thread delay and callback check */
#define SCE_KERNEL_WAITTYPE_WAITTHEND_CB (0x00010002) /**< With thread termination and callback check */
#define SCE_KERNEL_WAITTYPE_EVENTFLAG_CB (0x00010004) /**< With event flag and callback check */
#define SCE_KERNEL_WAITTYPE_MUTEX_CB (0x00010008) /**< With mutex callback check */
#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_CB (0x00010010) /**< With fast mutex callback check */
#define SCE_KERNEL_WAITTYPE_FAST_MUTEX_SPIN_CB (0x00010020) /**< High-speed mutex (spin) with callback check */
#define SCE_KERNEL_WAITTYPE_SEMAPHORE_CB (0x00010040) /**< With semaphore callback check */
#define SCE_KERNEL_WAITTYPE_EVENT_CB (0x00010080) /**< With single event and callback check */
#define SCE_KERNEL_WAITTYPE_COND_CB (0x00010100) /**< With condition variable and callback check */
#define SCE_KERNEL_WAITTYPE_MSG_PIPE_CB (0x00010200) /**< With message pipe callback check */
#define SCE_KERNEL_WAITTYPE_RW_LOCK_CB (0x00010400) /**< With reader / writer lock and callback check */
#define SCE_KERNEL_WAITTYPE_SIGNAL_CB (0x00010800) /**< With signal callback check */
#define SCE_KERNEL_WAITTYPE_LW_MUTEX_CB (0x00011000) /**< With lightweight mutex callback check */
#define SCE_KERNEL_WAITTYPE_LW_COND_CB (0x00012000) /**< With lightweight condition variable and callback check */
#define SCE_KERNEL_WAITTYPE_MP_EVENTS_CB (0x00018000) /**< With event multiplexing and callback check */
/*@}*/
/**
* @defgroup UID
* Thread ID definition
*/
/*@{*/
#define SCE_KERNEL_THREAD_ID_SELF (0) /**< UID representing own thread */
/*@}*/
/**
* @defgroup UID class
* Class definition of UID managed by thread manager (for User)
*/
/*@{*/
#define SCE_KERNEL_THREADMGR_UID_CLASS_THREAD (1) /**< Thread class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_SEMA (2) /**< Semaphore class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_EVENT_FLAG (3) /**< Event flag class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_MUTEX (4) /**< Mutex class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_COND (5) /**< Condition variable class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_TIMER (6) /**< Timer class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_MSG_PIPE (7) /**< Message pipe class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_CALLBACK (8) /**< Callback class */
#define SCE_KERNEL_THREADMGR_UID_CLASS_THREAD_EVENT (9) /**< Thread event class */
/*@}*/
/**
* @defgroup CPU affinity mask
* CPU affinity mask definition
*/
/*@{*/
/**
* @brief Default CPU affinity mask
*
* If the default CPU affinity mask is specified for a thread,
* the CPU affinity mask specified for the process to which it belongs is inherited.
*/
#define SCE_KERNEL_THREAD_CPU_AFFINITY_MASK_DEFAULT (0)
/*@}*/
/**
* @brief Thread entry type
*
* Thread entry function type. Specify to sceKernelCreateThread().
* The argument block of the thread given by the argument of sceKernelStartThread() is copied onto the
* stack of the started thread, and is received from the started thread through the argument of the entry function.
*
* When a thread entry function is terminated with return, the thread terminates,
* and the return value of the entry function becomes the termination status of that thread.
* The thread exit status can be obtained with sceKernelWaitThreadEnd() or
* sceKernelGetThreadExitStatus() if the thread is not deleted.
*
* @param argSize The argument size given by sceKernelStartThread() is passed.
* @param pArgBlock The address on the stack where the argument block given by sceKernelStartThread() is copied is passed.
* @return Thread exit status
*/
typedef SceInt32 (*SceKernelThreadEntry)(SceSize argSize, void *pArgBlock);
/**
* @brief Thread additional data
*
* This structure is used to store additional data given when creating a thread with sceKernelCreateThread().
*
* Provided for future expansion.
*
*/
typedef struct _SceKernelThreadOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelThreadOptParam)) */
SceUInt32 attr; /**< A bit pattern that specifies valid members in a structure */
} SceKernelThreadOptParam;
/**
* @brief Thread information structure
*
* A structure used to store thread information with sceKernelGetThreadInfo().
*/
typedef struct _SceKernelThreadInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelThreadInfo)) */
SceUID processId; /**< Process ID to which the thread belongs */
char name[SCE_UID_NAMELEN+1]; /**< Thread name */
SceUInt32 attr; /**< Thread attributes */
SceUInt32 status; /**< Thread state */
SceKernelThreadEntry entry; /**< Thread entry function address */
void *pStack; /**< Thread stack address (bottom) */
SceSize stackSize; /**< Thread stack size */
SceInt32 initPriority; /**< Thread initial priority */
SceInt32 currentPriority; /**< Thread current priority */
SceInt32 initCpuAffinityMask; /**< Thread initial CPU affinity mask */
SceInt32 currentCpuAffinityMask; /**< Thread current CPU affinity mask */
SceInt32 currentCpuId; /**< CPU number to which the thread currently belongs */
SceInt32 lastExecutedCpuId; /**< CPU number to which the thread was last executed */
SceUInt32 waitType; /**< Type when the thread is waiting */
SceUID waitId; /**< UID of the target synchronization object when the thread is waiting */
SceInt32 exitStatus; /**< Thread exit status */
SceKernelSysClock runClocks; /**< Time (in microseconds) executed since the thread was created */
SceUInt32 intrPreemptCount; /**< Number of times the thread was preempted by interrupt handling */
SceUInt32 threadPreemptCount; /**< Number of times the thread has been preempted by other thread operations */
SceUInt32 threadReleaseCount; /**< Number of times the thread has relinquished execution */
SceInt32 changeCpuCount; /**< Number of CPUs to which the thread is moved */
SceInt32 fNotifyCallback; /**< A flag indicating whether the thread is notified of the callback */
SceInt32 reserved; /**< Reserved area */
} SceKernelThreadInfo;
/**
* @brief Thread operating status on each CPU
*
* This structure is used by sceKernelGetThreadRunStatus() to obtain the operating status of threads on each CPU.
*
*/
typedef struct _SceKernelThreadRunStatus {
SceSize size; /**< Size of this structure (sizeof(SceKernelThreadRunStatus)) */
struct {
SceUID processId; /**< Process ID to which the running thread belongs */
SceUID threadId; /**< Thread ID being executed */
SceInt32 priority; /**< Priority of the running thread */
} cpuInfo[SCE_KERNEL_MAX_CPU]; /**< Information about individual CPUs */
} SceKernelThreadRunStatus;
/**
* @brief System state
*
* This structure is used to get the system status with sceKernelGetSystemInfo().
*
*/
typedef struct _SceKernelSystemInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelSystemInfo)) */
SceUInt32 activeCpuMask; /**< Currently available CPU mask */
struct {
SceKernelSysClock idleClock; /**< Time when there was no thread to execute */
SceUInt32 comesOutOfIdleCount; /**< Number of transitions from a state where there is no thread to execute to another state */
SceUInt32 threadSwitchCount; /**< Number of context switches that occurred */
} cpuInfo[SCE_KERNEL_MAX_CPU]; /**< Information about individual CPUs */
} SceKernelSystemInfo;
/*@}*//* Basic thread functions */
/** @name VFP exception
*/
/*@{*/
/**
* @defgroup Defining VFP exceptions
* Bit pattern that specifies a VFP exception
*/
/*@{*/
#define SCE_KERNEL_VFP_EXCEPTION_MASK_QCE (0x08000000U) /**< QCE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_IDE (0x00000080U) /**< IDE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_IXE (0x00000010U) /**< IXE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_UFE (0x00000008U) /**< UFE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_OFE (0x00000004U) /**< OFE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_DZE (0x00000002U) /**< DZE flag interrupt enable */
#define SCE_KERNEL_VFP_EXCEPTION_MASK_IOE (0x00000001U) /**< IOE flag interrupt enable */
/**
* Valid VFP exception mask
*/
#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)
/*@}*/
/*@}*//* VFP exception */
/** @name Common to synchronization
*/
/*@{*/
/**
* @defgroup Synchronization object common attributes
* Attributes that can be set in common with synchronization objects
*/
/*@{*/
#define SCE_KERNEL_ATTR_SINGLE (0x00000000) /**< Multiple threads cannot wait simultaneously (event flags only) */
#define SCE_KERNEL_ATTR_MULTI (0x00001000) /**< Multiple threads can wait at the same time (event flags only) */
#define SCE_KERNEL_ATTR_TH_FIFO (0x00000000) /**< Waiting thread queuing is FIFO */
#define SCE_KERNEL_ATTR_TH_PRIO (0x00002000) /**< Queues for waiting threads are ordered by thread priority */
#define SCE_KERNEL_ATTR_MS_FIFO (0x00000000) /**< Unused */
#define SCE_KERNEL_ATTR_MS_PRIO (0x00004000) /**< Unused */
/*@}*/
/*@}*//* Common to synchronization */
/** @name Callback
*/
/*@{*/
/**
* @brief Callback function type
*
* After the callback function is notified by sceKernelNotifyCallback(), the callback function
* confirms the notification by sceKernelCheckCallback() or executes a waiting function with a
* function to check for notifications such as sceKernelWaitSemaCB().
* It is possible to delete your own registration by returning a value other than 0 as the return value of the callback function.
*
* Note
* - The callback function is called as the context of the thread that generated the callback.
* In other words, the callback function can be called only by the callback generated by the own thread by the explicit callback
* check by sceKernelCheckCallback() or the wait function with callback check such as sceKernelWaitSemaCB(). is. To receive
* the callback notification, the thread that generated the callback must use sceKernelCheckCallback(), sceKernelWaitSemaCB(), etc.
* - The sceKernelCheckCallback () and sceKernelDeleteCallback () functions cannot be used inside the callback function.
* In addition, if you call a wait function with CB such as sceKernelWaitSemaCB() function in the callback function, nesting occurs, causing a stack overflow.
* Avoid processing that waits for more callbacks in the callback function.
*
* @param notifyId When a callback is notified from an event that registered a callback with sceKernelRegisterCallbackToEvent(),
* the identifier of the notification source event is passed.
* If not notified from the event, SCE_UID_INVALID_UID is passed.
* @param notifyCount Number of callback notifications until this callback function is executed is passed.
* @param notifyArg Argument given by sceKernelNotifyCallback() is passed.
* @param pCommon Argument given by sceKernelCreateCallback() is passed.
* @retval 0 Normal
* @retval Non-zero value Remove this callback
*/
typedef SceInt32 (*SceKernelCallbackFunction)(SceUID notifyId, SceInt32 notifyCount, SceInt32 notifyArg, void *pCommon);
/**
* @brief Callback state
*
* This structure is used to get the callback status with sceKernelGetCallbackInfo().
*/
typedef struct _SceKernelCallbackInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelCallbackInfo) */
SceUID callbackId; /**< Callback identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the callback specified with sceKernelCreateCallback() */
SceUInt32 attr; /**< Callback attribute specified by sceKernelCreateCallback() */
SceUID threadId; /**< Identifier of the thread to which the callback belongs */
SceKernelCallbackFunction callbackFunc; /**< Callback function registered with sceKernelCreateCallback() */
SceUID notifyId; /**< Caller notification source identifier */
SceInt32 notifyCount; /**< Number of times sceKernelNotifyCallback() has been executed for this callback that is still delayed without the callback function being called */
SceInt32 notifyArg; /**< Argument given by sceKernelNotifyCallback() for this callback */
void *pCommon; /**< pCommon argument registered with sceKernelCreateCallback() */
} SceKernelCallbackInfo;
/*@}*//* Callback */
/** @name Thread event
*/
/*@{*/
/**
* @defgroup Thread event handler type
* Defining thread events that trigger thread event handlers
*/
/*@{*/
#define SCE_KERNEL_THREAD_EVENT_TYPE_START (0x04) /**< Thread start event */
#define SCE_KERNEL_THREAD_EVENT_TYPE_EXIT (0x08) /**< Thread end event */
/**
* Valid thread event mask
*/
#define SCE_KERNEL_THREAD_EVENT_TYPE_ALL (SCE_KERNEL_THREAD_EVENT_TYPE_START | SCE_KERNEL_THREAD_EVENT_TYPE_EXIT)
/*@}*/
/**
* @defgroup Thread specification for thread event handler
* Thread specification macro in sceKernelRegisterThreadEventHandler()
*/
/*@{*/
#define SCE_KERNEL_THREAD_ID_USER ((SceUID)0xfffffff0) /**< Specify all user threads */
/*@}*/
/**
* @brief Thread event handler type
*
* Thread event handler type.
* @param type The thread event handler call cause is passed.
* - SCE_KERNEL_THREAD_EVENT_TYPE_START: thread started
* - SCE_KERNEL_THREAD_EVENT_TYPE_EXIT : thread terminated
* @param threadId Identifier of the thread that caused the thread event handler to be called is passed.
* @param arg Argument when calling the thread event handler is passed.
* @param pCommon pCommon specified in sceKernelRegisterThreadEventHandler() is passed as it is.
* @retval SCE_OK Success
* @retval Negative value Failure
*/
typedef SceInt32 (*SceKernelThreadEventHandler)(SceInt32 type, SceUID threadId, SceInt32 arg, void *pCommon);
/*@}*//* Thread event */
/** @name An event
*/
/*@{*/
/**
* @defgroup Event object attributes
* Definition of attributes to be specified when creating an event object
*/
/*@{*/
#define SCE_KERNEL_EVENT_ATTR_MANUAL_RESET (0x0000) /**< Each bit of the event remains in the event notification state until it is manually transitioned to the event non notification state. */
#define SCE_KERNEL_EVENT_ATTR_AUTO_RESET (0x0100) /**< Each event bit automatically returns to the event non-notification state when one waiting thread is awakened. */
#define SCE_KERNEL_ATTR_NOTIFY_CB_ALL (0x0000) /**< At the time of event notification, only the callback of the thread that is waiting for the event and wakes up among the callbacks registered in the event object is notified. */
#define SCE_KERNEL_ATTR_NOTIFY_CB_WAKEUP_ONLY (0x0800) /**< When an event is notified, the callbacks of all threads waiting for the event among the callbacks registered in the event object. */
/*@}*/
/**
* @defgroup Event type
* Definition of event to be notified
*/
/*@{*/
#define SCE_KERNEL_EVENT_IN (0x00000001) /* Input event */
#define SCE_KERNEL_EVENT_OUT (0x00000002) /* Output event */
#define SCE_KERNEL_EVENT_CREATE (0x00000004) /* Generate event */
#define SCE_KERNEL_EVENT_DELETE (0x00000008) /* Delete event */
#define SCE_KERNEL_EVENT_TIMER (0x00008000) /* Timer event */
#define SCE_KERNEL_EVENT_ERROR (0x00000010) /* Error event */
/*@}*/
/**
* @brief Event object state
*
* This structure is used to acquire the event object status with sceKernelGetEventInfo().
*/
typedef struct _SceKernelEventInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelEventInfo)) */
SceUID eventId; /**< Event object identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the event specified when creating the event object */
SceUInt32 attr; /**< Event attributes specified when creating the event object */
SceUInt32 eventPattern; /**< Bit pattern of the current event */
SceUInt64 userData; /**< User data added to the last notified event */
SceUInt32 numWaitThreads; /**< Number of threads waiting for the event object */
SceInt32 reserved[1]; /**< Reserved area */
} SceKernelEventInfo;
/**
* @defgroup Standby mode for event object multiple standby
* Definition of standby mode specified in sceKernelWaitMultipleEvents()
*/
/*@{*/
#define SCE_KERNEL_EVENT_WAIT_MODE_OR (0x00000001) /**< Wait until one of the waits specified in the event wait condition list is met */
#define SCE_KERNEL_EVENT_WAIT_MODE_AND (0x00000002) /**< Wait until all waits specified in the event wait condition list are satisfied */
/*@}*/
/**
* @brief Structure for event wait condition list
*
* Structure for event waiting condition list passed to sceKernelWaitMultipleEvents().
*/
typedef struct _SceKernelWaitEvent {
SceUID eventId; /**< Event object identifier */
SceUInt32 eventPattern; /**< Pattern of events to wait */
} SceKernelWaitEvent;
/**
* @brief Structure for event waiting result acquisition list
*
* Structure for event waiting result acquisition list to be passed to sceKernelWaitMultipleEvents().
*/
typedef struct _SceKernelResultEvent {
SceUID eventId; /**< Event object identifier */
SceInt32 result; /**< Wait result (equivalent to return value of sceKernelWaitEvent()) */
SceUInt32 resultPattern; /**< Event pattern when waiting completes */
SceInt32 reserved[1]; /**< Reserved area */
SceUInt64 userData; /**< User data received when waiting completed */
} SceKernelResultEvent;
/*@}*//* An event */
/**
* @name Event flag
*/
/*@{*/
/**
* @defgroup Event flag attributes
* Definition of attributes to be specified when generating eventflags
*/
/*@{*/
#define SCE_KERNEL_EVF_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO /**< Event flag waiting thread queuing is FIFO */
#define SCE_KERNEL_EVF_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO /**< Event flag waiting threads are queued in order of thread priority. */
#define SCE_KERNEL_EVF_ATTR_SINGLE SCE_KERNEL_ATTR_SINGLE /**< Multiple threads cannot wait at the same time */
#define SCE_KERNEL_EVF_ATTR_MULTI SCE_KERNEL_ATTR_MULTI /**< Multiple threads can wait at the same time */
/*@}*/
/**
* @defgroup Event flag wait mode
* Definition of standby mode specified for eventflag standby
*/
/*@{*/
#define SCE_KERNEL_EVF_WAITMODE_AND (0x00000000) /**< Waiting for AND */
#define SCE_KERNEL_EVF_WAITMODE_OR (0x00000001) /**< Waiting for OR */
#define SCE_KERNEL_EVF_WAITMODE_CLEAR_ALL (0x00000002) /**< Clear all bits after waiting */
#define SCE_KERNEL_EVF_WAITMODE_CLEAR_PAT (0x00000004) /**< After waiting, clear the bit specified in bitPattern */
/*@}*/
/**
* @brief Additional data for event flag
*
* This structure is used to store additional data to be given when creating an event flag with sceKernelCreateEventFlag().
*
* 将来の拡張のために用意されています。
*
*/
typedef struct _SceKernelEventFlagOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelEventFlagOptParam)) */
} SceKernelEventFlagOptParam;
/**
* @brief Event flag status
*
* This structure is used to acquire the event flag status with sceKernelGetEventFlagInfo().
*
*/
typedef struct _SceKernelEventFlagInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelEventFlagInfo)) */
SceUID evfId; /**< Event flag identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the eventflag specified by sceKernelCreateEventFlag() */
SceUInt32 attr; /**< Event flag attribute specified by sceKernelCreateEventFlag() */
SceUInt32 initPattern; /**< Initial bit pattern of event flag */
SceUInt32 currentPattern; /**< Current bit pattern of event flag */
SceInt32 numWaitThreads; /**< Number of threads waiting for an event */
} SceKernelEventFlagInfo;
/*@}*//* Event flag */
/**
* @name Mutex
*/
/*@{*/
/**
* @defgroup Mutex attribute
* Definition of attributes to be specified when creating a mutex
*/
/*@{*/
#define SCE_KERNEL_MUTEX_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO /**< Mutex wait thread queuing is FIFO */
#define SCE_KERNEL_MUTEX_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO /**< Mutes waiting threads are queued in order of thread priority */
#define SCE_KERNEL_MUTEX_ATTR_RECURSIVE (0x00000002) /**< Mutex can be recursively locked */
#define SCE_KERNEL_MUTEX_ATTR_CEILING (0x00000004) /**< Use the mutex priority sealing function */
/*@}*/
/**
* @brief Mutex additional data
*
* This structure is used to store additional data given when creating mutexes with sceKernelCreateMutex().
*
* Provided for future expansion.
*
*/
typedef struct _SceKernelMutexOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelMutexOptParam)) */
SceInt32 ceilingPriority; /**< Priority ceiling priority */
} SceKernelMutexOptParam;
/**
* @brief Mutex state
*
* This structure is used to get the mutex status with sceKernelGetMutexInfo().
*
*/
typedef struct _SceKernelMutexInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelMutexInfo)) */
SceUID mutexId; /**< Mutex identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the mutex specified by sceKernelCreateMutex() */
SceUInt32 attr; /**< Mutex attributes specified with sceKernelCreateMutex() */
SceInt32 initCount; /**< Initial lock count of mutex specified by sceKernelCreateMutex() */
SceInt32 currentCount; /**< Current number of mutex locks */
SceUID currentOwnerId; /**< Identifier of the thread that currently owns the mutex */
SceInt32 numWaitThreads; /**< Number of threads waiting for the mutex */
} SceKernelMutexInfo;
/*@}*//* Mutex */
/**
* @name Lightweight mutex
*/
/*@{*/
/**
* @defgroup Lightweight mutex attribute
* Definition of attributes to be specified when creating a lightweight mutex
*/
/*@{*/
#define SCE_KERNEL_LW_MUTEX_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO /**< Lightweight mutex wait thread queuing is FIFO */
#define SCE_KERNEL_LW_MUTEX_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO /**< Queues for lightweight mutex wait threads are ordered by thread priority */
#define SCE_KERNEL_LW_MUTEX_ATTR_RECURSIVE (0x00000002) /**< Lightweight mutex can be recursively locked */
/*@}*/
/**
* @brief Light mutex work area
*
* A structure used to store work areas used by lightweight mutexes.
* The lightweight mutex work area must be reserved in the user memory space.
* All operations on the lightweight mutex are performed via the SceKernelLwMutexWork structure.
*
* Since the SceKernelLwMutexWork structure is used as a work area by the kernel, after creating
* a lightweight mutex with sceKernelCreateLwMutex(), the user program must not directly
* reference / manage the contents until it is deleted with sceKernelDeleteLwMutex(). The address cannot be moved.
*
* The SceKernelLwMutexWork structure must be arranged with 8-byte alignment on the memory.
*
*/
typedef struct _SceKernelLwMutexWork {
SceInt64 data[4]; /**< Light mutex work area */
} SceKernelLwMutexWork;
/**
* @brief Additional data for lightweight mutex
*
* This structure is used to store additional data given when creating a lightweight mutex with sceKernelCreateLwMutex().
*
* Provided for future expansion.
*
*/
typedef struct _SceKernelLwMutexOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelLwMutexOptParam)) */
} SceKernelLwMutexOptParam;
/**
* @brief Light mutex state
*
* A structure used to obtain the status of a lightweight mutex with sceKernelGetLwMutexInfo().
*
*/
typedef struct _SceKernelLwMutexInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelLwMutexInfo)) */
SceUID uid; /**< Lightweight mutex identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the mutex specified by sceKernelCreateLwMutex() */
SceUInt32 attr; /**< Mutex attributes specified with sceKernelCreateLwMutex() */
SceKernelLwMutexWork *pWork; /**< Mutex work area specified by sceKernelCreateLwMutex() */
SceInt32 initCount; /**< Initial number of lw mutex locks specified by sceKernelCreateLwMutex() */
SceInt32 currentCount; /**< Current lock count of lightweight mutex */
SceUID currentOwnerId; /**< Identifier of the thread that currently owns the lightweight mutex */
SceInt32 numWaitThreads; /**< Number of threads waiting for the lightweight mutex */
} SceKernelLwMutexInfo;
/*@}*//* Lightweight mutex */
/** @name Condition variable
*/
/*@{*/
/**
* @defgroup Condition variable attributes
* Defining attributes to be specified when creating a condition variable
*/
/*@{*/
#define SCE_KERNEL_COND_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO /**< Condition variable wait thread queuing is FIFO */
#define SCE_KERNEL_COND_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO /**< Condition variable wait thread queuing is in order of thread priority */
/*@}*/
/**
* @brief Additional data for condition variables
*
* This structure is used to store additional data given when creating a condition variable with sceKernelCreateCond().
*
* Provided for future expansion.
*
*/
typedef struct _SceKernelCondOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelMutexOptParam)) */
} SceKernelCondOptParam;
/**
* @brief Condition variable state
*
* This structure is used to acquire the condition variable status with sceKernelGetCondInfo().
*
*/
typedef struct _SceKernelCondInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelCondInfo)) */
SceUID condId; /**< Condition variable identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Condition variable name specified in sceKernelCreateCond() */
SceUInt32 attr; /**< Condition variable attribute specified in sceKernelCreateCond() */
SceUID mutexId; /**< Mutex associated with the condition variable specified by sceKernelCreateCond() */
SceUInt32 numWaitThreads; /**< Number of threads waiting for the condition variable */
} SceKernelCondInfo;
/*@}*//* Condition variable */
/** @name Lightweight condition variable
*/
/*@{*/
/**
* @defgroup Lightweight condition variable attributes
* Definition of attributes to be specified when creating lightweight condition variables
*/
/*@{*/
#define SCE_KERNEL_LW_COND_ATTR_TH_FIFO SCE_KERNEL_ATTR_TH_FIFO /**< Lightweight condition variable waiting thread queuing is FIFO */
#define SCE_KERNEL_LW_COND_ATTR_TH_PRIO SCE_KERNEL_ATTR_TH_PRIO /**< Lightweight condition variable waiting thread queuing is ordered by thread priority */
/*@}*/
/**
* @brief Lightweight condition variable work area
*
* A structure used to store the work area used by the lightweight condition variable.
* The work area for lightweight condition variables must be allocated in the user memory space.
* All operations on lightweight condition variables are done via the SceKernelLwCondWork structure.
*
* Since the SceKernelLwCondWork structure is used as a work area by the kernel, once a
* lightweight condition variable is created with sceKernelCreateLwCond (), the contents must not be directly
* referenced / operated by the user program until it is deleted with sceKernelDeleteLwCond(). The address cannot be moved.
*/
typedef struct _SceKernelLwCondWork {
SceInt32 data[4]; /**< Lightweight condition variable work area */
} SceKernelLwCondWork;
/**
* @brief Additional data for lightweight condition variables
*
* This structure is used to store additional data given when creating a lightweight condition variable with sceKernelCreateLwCond().
*
* Provided for future expansion.
*
*/
typedef struct _SceKernelLwCondOptParam {
SceSize size; /**< Size of this structure (sizeof(SceKernelLwCondOptParam)) */
} SceKernelLwCondOptParam;
/**
* @brief Lightweight condition variable state
*
* sceKernelGetLwCondInfo() is a structure used to obtain the status of a lightweight condition variable.
*
*/
typedef struct _SceKernelLwCondInfo {
SceSize size; /**< Size of this structure (sizeof(SceKernelLwCondInfo)) */
SceUID uid; /**< Lightweight condition variable identifier */
char name[SCE_UID_NAMELEN + 1]; /**< Name of the lightweight condition variable specified with sceKernelCreateLwCond() */
SceUInt32 attr; /**< Attributes of lightweight condition variable specified by sceKernelCreateLwCond() */
SceKernelLwCondWork *pWork; /**< Work area of lightweight condition variable specified by sceKernelCreateLwCond() */
SceKernelLwMutexWork *pLwMutex; /**< Lightweight mutex work area associated with the lightweight condition variable specified by sceKernelCreateLwCond() */
SceUInt32 numWaitThreads; /**< Number of threads waiting for lightweight condition variables */
} SceKernelLwCondInfo;
/*@}*//* Lightweight condition variable */
Possible function names according to SceTestBridge
sceTestBridgeThreadMgrCallCoredumpHandler -> ??
sceTestBridgeThreadMgrClearThreadMgrTestMode -> ??
sceTestBridgeThreadMgrDeleteStopThreadEvf -> ??
sceTestBridgeThreadMgrExitDeleteThreadInSyscall -> sceKernelExitDeleteThread
sceTestBridgeThreadMgrFastMutexLockUnlock -> ??
sceTestBridgeThreadMgrFastMutexShowStat -> ??
sceTestBridgeThreadMgrFastMutexStart -> ??
sceTestBridgeThreadMgrFastMutexStop -> ??
sceTestBridgeThreadMgrGetLwMutexInfoAll -> looks like _sceKernelGetLwMutexInfoById
sceTestBridgeThreadMgrIsCoredumpHandlerRegistered
sceTestBridgeThreadMgrRegisterCoredumpHandler -> sceCoredumpRegisterCoredumpHandler
sceTestBridgeThreadMgrResumeThread -> sceKernelResumeThreadForVM
sceTestBridgeThreadMgrRunningInSyscall -> ??
sceTestBridgeThreadMgrSetAndDeleteSuspendThreadEvf -> ??
sceTestBridgeThreadMgrSetThreadMgrTestMode -> ??
sceTestBridgeThreadMgrSpawnPriorityThread -> ??
sceTestBridgeThreadMgrStopThread -> sceKernelStopThreadForKernel
sceTestBridgeThreadMgrSuspendThread -> sceKernelSuspendThreadForVM
sceTestBridgeThreadMgrUnregisterCoredumpHandler -> sceCoredumpUnregisterCoredumpHandler
sceTestBridgeThreadMgrWaitInSyscall -> ??
sceTestBridgeThreadMgrWaitInSyscall2 -> ??
sceTestbridgeApi -> ??
SceThreadmgrForDriver
sceKernelWaitThreadEndCBForDriver
Version |
NID
|
3.60 |
0x9EF4F62C
|
sceKernelWaitThreadEndForDriver
Version |
NID
|
3.60 |
0x3E20216F
|
sceKernelWaitEventFlagCBForDriver
Version |
NID
|
3.60 |
0x8A35F714
|
sceKernelWaitEventFlagForDriver
Version |
NID
|
3.60 |
0x0C1D3F20
|
sceKernelWaitEventCBForDriver
Version |
NID
|
3.60 |
0x360C655C
|
sceKernelWaitEventForDriver
Version |
NID
|
3.60 |
0xC529EA32
|
sceKernelUnregisterThreadEventHandlerForDriver
Version |
NID
|
3.60 |
0x2C8ED6F0
|
sceKernelUnregisterCallbackFromEventAllForDriver
Version |
NID
|
3.60 |
0x8DADBD16
|
sceKernelUnregisterCallbackFromEventForDriver
Version |
NID
|
3.60 |
0x2E48D81C
|
sceKernelUnlockWriteRWLockForDriver
Version |
NID
|
3.60 |
0x94A73797
|
sceKernelUnlockReadRWLockForDriver
Version |
NID
|
3.60 |
0xDE1B9EEE
|
sceKernelTryLockWriteRWLockForDriver
Version |
NID
|
3.60 |
0xA96F2E5A
|
sceKernelTryLockReadRWLockForDriver
Version |
NID
|
3.60 |
0xFC2B5A50
|
sceKernelStopTimerForDriver
Version |
NID
|
3.60 |
0x474F214B
|
sceKernelStartTimerForDriver
Version |
NID
|
3.60 |
0x84C4CE4D
|
sceKernelSignalSemaForDriver
Version |
NID
|
3.60 |
0xD270498B
|
sceKernelSignalCondAllForDriver
Version |
NID
|
3.60 |
0x6EC78CD0
|
sceKernelSetTimerTimeWideForDriver
Version |
NID
|
3.60 |
0x85195A16
|
sceKernelSetEventFlagForDriver
Version |
NID
|
3.60 |
0xD4780C3E
|
sceKernelSetEventForDriver
Version |
NID
|
3.60 |
0x9EA3A45C
|
sceKernelRunWithStackForDriver
Version |
NID
|
3.60 |
0xE54FD746
|
This takes a function and runs it exclusively on the current core on its own stack.
// stack_size should be 0x2000
int sceKernelRunWithStackForDriver(int stack_size, void *func, void *args);
sceKernelRunWithStack2ForDriver
Version |
NID
|
3.60 |
0xA2C801A5
|
// stack_size should be 0x2000
int sceKernelRunWithStack2ForDriver(int stack_size, void *func, void *args);
sceKernelRegisterCallbackToEventForDriver
Version |
NID
|
3.60 |
0x832A7E0C
|
sceKernelPulseEventWithNotifyCallbackForDriver
Version |
NID
|
3.60 |
0x714A107A
|
sceKernelPulseEventForDriver
Version |
NID
|
3.60 |
0x2427C81B
|
sceKernelPollSemaForDriver
Version |
NID
|
3.60 |
0x4FDDFE24
|
sceKernelPollEventFlagForDriver
Version |
NID
|
3.60 |
0x76C6555B
|
sceKernelNotifyCallbackForDriver
Version |
NID
|
3.60 |
0xC3E00919
|
sceKernelGetTimerTimeWideForDriver
Version |
NID
|
3.60 |
0xC1286004
|
sceKernelGetTimerBaseWideForDriver
Version |
NID
|
3.60 |
0xA6D11DD3
|
sceKernelGetThreadmgrUIDClassForDriver
Version |
NID
|
3.60 |
0x0A20775A
|
sceKernelGetThreadTLSAddrForDriver
Version |
NID
|
3.60 |
0x66EEA46A
|
sceKernelGetThreadStackFreeSizeForDriver
Version |
NID
|
3.60 |
0x7B278A0B
|
sceKernelGetThreadCpuAffinityMaskForDriver
Version |
NID
|
3.60 |
0x83DC703D
|
sceKernelGetCallbackCountForDriver
Version |
NID
|
3.60 |
0x0892D8DF
|
sceKernelEnqueueWorkQueueForDriver
Version |
NID
|
3.60 |
0xE50E1185
|
sceKernelDeleteThreadForDriver
Version |
NID
|
3.60 |
0xAC834F3F
|
sceKernelDeleteSemaForDriver
Version |
NID
|
3.60 |
0x16A35E58
|
sceKernelDeleteMutexForDriver
Version |
NID
|
3.60 |
0x0A912340
|
int sceKernelDeleteMutexForDriver(SceUID mutexid);
sceKernelDeleteEventFlagForDriver
Version |
NID
|
3.60 |
0x71ECB352
|
sceKernelCreateThreadForDriver
Version |
NID
|
3.60 |
0xC6674E7D
|
sceKernelCreateSimpleEventForDriver
Version |
NID
|
3.60 |
0x357A8177
|
sceKernelCreateMutexForDriver
Version |
NID
|
3.60 |
0xFBAA026E
|
SceUID sceKernelCreateMutexForDriver(const char *pName, SceUInt attr, int initCount, const SceKernelMutexOptParam *pOptParam);
sceKernelCreateEventFlagForDriver
Version |
NID
|
3.60 |
0x4336BAA4
|
sceKernelClearEventFlagForDriver
Version |
NID
|
3.60 |
0x4F1DA3BE
|
sceKernelClearEventForDriver
Version |
NID
|
3.60 |
0x9C335818
|
sceKernelChangeThreadPriorityForDriver
Version |
NID
|
3.60 |
0x63DAB420
|
sceKernelCancelCallbackForDriver
Version |
NID
|
3.60 |
0xC040EC1C
|
sceKernelCancelMsgPipeForDriver
Version |
NID
|
3.60 |
0x9D6A2311
|
sceKernelCreateMsgPipeForDriver
Version |
NID
|
3.60 |
0xBF631145
|
sceKernelDeleteMsgPipeForDriver
Version |
NID
|
3.60 |
0xB3453F88
|
sceKernelSendMsgPipeVectorForDriver
Version |
NID
|
3.60 |
0x67DD3BAD
|
sceKernelTryReceiveMsgPipeVectorForDriver
Version |
NID
|
3.60 |
0xCE09221A
|
sceKernelTrySendMsgPipeVectorForDriver
Version |
NID
|
3.60 |
0x4CF1BE58
|
sceKernelIsThreadDebugSuspendedForDriver
Version |
NID
|
0.990-3.60 |
0xA0B1AB21
|
It seems to be used to get the cause state at the time of process crash.
used By SceCoredump.
/**
* @param[in] thid thread id (kernel uid)
* @return suspend state, else < 0 on error.
*/
int sceKernelIsThreadDebugSuspendedForDriver(SceUID thid);
sceKernelDebugResumeThreadForDriver
Version |
NID
|
0.990-3.60 |
0xEC8343DF
|
sceKernelResumeThreadForDriver
Version |
NID
|
0.990-3.60 |
0xE3CE20AA
|
sceKernelCreateRemoteThreadForDriver
Version |
NID
|
0.990-3.60 |
0xC8E57BB4
|
sceKernelGetThreadIdListForDriver
Version |
NID
|
3.60 |
0xEA7B8AEF
|
This function is used to query and obtain the number of thread within a process.
/**
* @brief Retreive a list of all threads belonging to a process.
* @param[in] pid The process to query.
* @param[out] ids The list of thread ids. Can be NULL if output is not required.
* @param[in] n The max number of thread ids to copy out.
* @param[out] copy_count The number of thread ids copied.
* @return The number of threads within the process, else < 0 on error.
*/
int sceKernelGetThreadIdListForDriver(SceUID pid, SceUID *ids, int n, int *copy_count);
sceKernelGetThreadCpuRegistersForDriver
Version |
NID
|
3.60 |
0x5022689D
|
This function is used to get the state of the registers for a SUSPENDED thread. It returns the registers in a two part structure. It's uncertian what the difference is between the two parts. It seems like its a user/kernel separation, but it's uncertain. It could also be a current/exception difference, but it is unconvincing. In normal usage on a suspended thread it seems to be the user aspect that contains valid values. When you query a suspended thread that has no had the opportunity to start yet, the kernel side is filled.
/** Structure representing all ARM registers */
typedef struct ArmCpuRegisters
{
uint32_t r0;
uint32_t r1;
uint32_t r2;
uint32_t r3;
uint32_t r4;
uint32_t r5;
uint32_t r6;
uint32_t r7;
uint32_t r8;
uint32_t r9;
uint32_t r10;
uint32_t r11;
uint32_t r12;
uint32_t sp;
uint32_t lr;
uint32_t pc;
uint32_t cpsr;
uint32_t unk;
} ArmCpuRegisters;
/** Structure containing a threads register states. */
typedef struct ThreadCpuRegisters
{
/** Set of registers used for user mode. */
ArmCpuRegisters user;
/** Set of registers used for kernel mode. */
ArmCpuRegisters kernel;
} ThreadCpuRegisters;
/**
* @brief Query the state of the registers for a suspended thread.
*
* The registers returned are the user/kernel set for the requested thread.
* It's not certain that user/kernel is correct representation, instead it could be current/exception.
* The thread provided must be suspended for this function to succeed.
*
* @param[in] thid The thread to query.
* @param[out] registers The set of registers belonging to the thread.
* @return Zero on success, else < 0 on error.
*/
int sceKernelGetThreadCpuRegistersForDriver(SceUID thid, ThreadCpuRegisters *registers);
sceKernelChangeThreadSuspendStatusForDriver
Version |
NID
|
3.60 |
0x04C6764B
|
This function allows you to change the status of a suspended thread. Most of the valid suspend bits are unknown, but some can be used to prevent the kernel rethrowing exceptions or pull threads into the running/ready state.
/**
* @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 sceKernelChangeThreadSuspendStatusForDriver(SceUID thid, int status);
sceKernelChangeActiveCpuMaskForDriver
Version |
NID
|
1.69-3.60 |
0x001173F8
|
sceKernelGetThreadCurrentPriorityForDriver
Version |
NID
|
1.69-3.60 |
0x01414F0B
|
sceKernelCreateCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x1C41614C
|
sceKernelWaitThreadEndCB_089ForDriver
Version |
NID
|
1.69 |
0x0373C5E3
|
3.60 |
not present
|
sceKernelDeleteCallbackForDriver
Version |
NID
|
1.69-3.60 |
0x3A7E17F6
|
sceKernelExitThreadForDriver
Version |
NID
|
1.69-3.60 |
0x0C8A38E1
|
sceKernelLockMutex_089ForDriver
Version |
NID
|
1.69-3.60 |
0x16AC80C5
|
int sceKernelLockMutex_089ForDriver(SceUID mutex_id, int unk1, int unk2);
sceKernelExitDeleteThreadForDriver
Version |
NID
|
1.69-3.60 |
0x1D17DECF
|
sceKernelUnlockMutex_089ForDriver
Version |
NID
|
1.69-3.60 |
0x1E82E5D0
|
int sceKernelUnlockMutex_089ForDriver(SceUID mutex_id, int unk1);
sceKernelStartThread_089ForDriver
Version |
NID
|
1.69-3.60 |
0x21F5419B
|
sceKernelTryLockMutex_089ForDriver
Version |
NID
|
1.69-3.60 |
0x270993A6
|
sceKernelGetSystemTimeLowForDriver
Version |
NID
|
1.69-3.60 |
0x47F6DE49
|
sceKernelDelayThreadForDriver
Version |
NID
|
1.69-3.60 |
0x4B675D05
|
sceKernelGetMutexInfo_089ForDriver
Version |
NID
|
1.69-3.60 |
0x69B78A12
|
int sceKernelGetMutexInfo_089ForDriver(SceUID mutexid, SceKernelMutexInfo *info);
sceKernelCancelMutex_089ForDriver
Version |
NID
|
1.69-3.60 |
0x7204B846
|
sceKernelChangeCurrentThreadAttrForDriver
Version |
NID
|
1.69-3.60 |
0x751C9B7A
|
sceKernelDelayThreadCBForDriver
Version |
NID
|
1.69-3.60 |
0x9C0180E1
|
sceKernelLockMutexCB_089ForDriver
Version |
NID
|
1.69-3.60 |
0xD06F2886
|
sceKernelCheckWaitableStatusForDriver
Version |
NID
|
1.69-3.60 |
0xD9BD74EB
|
sceKernelCheckCallbackForDriver
Version |
NID
|
1.69-3.60 |
0xE53E41F6
|
sceKernelWaitThreadEnd_089ForDriver
Version |
NID
|
1.69 |
0xF3489EF4
|
3.60 |
not present
|
sceKernelGetSystemTimeWideForDriver
Version |
NID
|
1.69-3.60 |
0xF4EE4FA9
|
sceKernelGetThreadInfoForDriver
Version |
NID
|
0.990-3.60 |
0x283807E2
|
int sceKernelGetThreadInfoForDriver(SceUID thid, SceKernelThreadInfo *info)
sceKernelInitializeFastMutexForDriver
Version |
NID
|
1.69-3.60 |
0xAF8E1266
|
int sceKernelInitializeFastMutexForDriver(void* mutex, const char* name, int unk0, int unk1)
sceKernelLockFastMutexForDriver
Version |
NID
|
1.69-3.60 |
0x70627F3A
|
int sceKernelLockFastMutexForDriver(void* mutex)
sceKernelUnlockFastMutexForDriver
Version |
NID
|
1.69-3.60 |
0xDB395782
|
int sceKernelUnlockFastMutexForDriver(void* mutex)
sceKernelDeleteFastMutexForDriver
Version |
NID
|
1.69-3.60 |
0x11FE84A1
|
int sceKernelDeleteFastMutexForDriver(void* mutex)
sceKernelSignalCondToForDriver
Version |
NID
|
1.69-3.60 |
0x61533DA9
|
int sceKernelSignalCondToForDriver(SceUID condId, SceUID threadId)
sceKernelCreateCondForDriver
Version |
NID
|
1.69-3.60 |
0xDB6CD34A
|
SceUID sceKernelCreateCondForDriver(const char *name, SceUInt attr, SceUID mutexId, const SceKernelCondOptParam *option)
sceKernelWaitCondForDriver
Version |
NID
|
1.69-3.60 |
0xCC7E027D
|
int sceKernelWaitCondForDriver(SceUID condId, unsigned int *timeout)
sceKernelReceiveMsgPipeVectorForDriver
Version |
NID
|
1.69-3.60 |
0xDA1F256B
|
sceKernelReceiveMsgPipeVectorCBForDriver
Version |
NID
|
1.69-3.60 |
0xDA5C9AC6
|
sceKernelGetThreadIdForDriver
Version |
NID
|
1.69-3.60 |
0x59D06540
|
SceUID sceKernelGetThreadIdForDriver(void);
sceKernelDeleteCondForDriver
Version |
NID
|
1.69-3.60 |
0xAEE0D27C
|
int sceKernelDeleteCondForDriver(SceUID cid);
sceKernelCreateSemaForDriver
Version |
NID
|
1.69-3.60 |
0x30E93C31
|
/**
* Creates a new semaphore
*
* @par Example:
* @code
* int semaid;
* semaid = sceKernelCreateSemaForDriver("MySema", 0, 1, 1, 0);
* @endcode
*
* @param name - Specifies the name of the sema
* @param attr - Sema attribute flags (normally set to 0)
* @param initVal - Sema initial value
* @param maxVal - Sema maximum value
* @param option - Sema options (normally set to 0)
* @return A semaphore id
*/
SceUID sceKernelCreateSemaForDriver(const char *name, SceUInt attr, int initVal, int maxVal, SceKernelSemaOptParam *option);
sceKernelWaitSemaCBForDriver
Version |
NID
|
1.69-3.60 |
0xF55E4D86
|
/**
* Lock a semaphore
*
* @par Example:
* @code
* sceKernelWaitSemaCBForDriver(sema_id, 1, 0);
* @endcode
*
* @param sema_id - The sema id returned from ::sceKernelCreateSemaForDriver
* @param signal - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1)
* @param timeout - Timeout in microseconds (assumed).
*
* @return < 0 on error.
*/
int sceKernelWaitSemaCBForDriver(SceUID sema_id, int signal, SceUInt *timeout);
sceKernelWaitSemaForDriver
Version |
NID
|
1.69-3.60 |
0x3C8B55A9
|
/**
* Lock a semaphore
*
* @par Example:
* @code
* sceKernelWaitSemaForDriver(sema_id, 1, 0);
* @endcode
*
* @param sema_id - The sema id returned from ::sceKernelCreateSemaForDriver
* @param signal - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1)
* @param timeout - Timeout in microseconds (assumed).
*
* @return < 0 on error.
*/
int sceKernelWaitSemaForDriver(SceUID sema_id, int signal, SceUInt *timeout);
sceKernelSignalCondForDriver
Version |
NID
|
1.69-3.60 |
0xAC616150
|
int sceKernelSignalCondForDriver(SceUID condId);
sceKernelChangeThreadCpuAffinityMaskForDriver
Version |
NID
|
1.69-3.60 |
0x6D0733A8
|
derived from sceKernelChangeThreadCpuAffinityMask
// uid - thread uid
int sceKernelChangeThreadCpuAffinityMaskForDriver(SceUID uid, int mask);
sceKernelSetPermissionForDriver
Version |
NID
|
1.69-3.60 |
0x02EEDF17
|
// return value is previous value
int sceKernelSetPermissionForDriver(int value);
sceKernelGetProcessIdForDriver
Version |
NID
|
1.69-3.60 |
0x9DCB4B7A
|
Returns the process ID.
SceUID sceKernelGetProcessIdForDriver(void);
sceKernelSetProcessIdToTLSForDriver
Version |
NID
|
1.69-3.60 |
0x0486F239
|
Sets given pid into TLS.
// return value is previous value
SceUID sceKernelSetProcessIdToTLSForDriver(SceUID pid);
sceKernelGetProcessIdFromTLSForDriver
Version |
NID
|
1.69-3.60 |
0xFA54D49A
|
Gets pid from TLS.
// return value is previous value
SceUID sceKernelGetProcessIdFromTLSForDriver();
sceKernelRegisterTimerForDriver
Version |
NID
|
3.60 |
0xC58DF384
|
// seen: unk = 2 so maybe UDCD bus
int sceKernelRegisterTimerForDriver(char *name, void *function, int unk);
SceThreadmgrForKernel
sceKernelLockMutex_089ForKernel
Version |
NID
|
1.69-3.60 |
0x16AC80C5
|
int sceKernelLockMutex_089ForKernel(SceUID mutex_id, int unk1, int unk2);
sceKernelUnlockMutex_089ForKernel
Version |
NID
|
1.69-3.60 |
0x1E82E5D0
|
int sceKernelUnlockMutex_089ForKernel(SceUID mutex_id, int unk1);
sceKernelLockMutexCB_089ForKernel
Version |
NID
|
1.69 |
0xD06F2886
|
3.60 |
not present, but exists in ForDriver
|
sceKernelTryLockMutex_089ForKernel
Version |
NID
|
1.69 |
0x270993A6
|
3.60 |
not present, but exists in ForDriver
|
sceKernelCreateMutexForKernel
Version |
NID
|
1.69-3.60 |
0xFBAA026E
|
SceUID sceKernelCreateMutexForKernel(const char *pName, SceUInt attr, int initCount, const SceKernelMutexOptParam *pOptParam);
sceKernelDeleteMutexForKernel
Version |
NID
|
1.69-3.60 |
0x0A912340
|
int sceKernelDeleteMutexForKernel(SceUID mutexid);
sceKernelGetMutexInfo_089ForKernel
Version |
NID
|
1.69 |
0x69B78A12
|
3.60 |
not present, but exists in ForDriver
|
int sceKernelGetMutexInfo_089ForKernel(SceUID mutexid, SceKernelMutexInfo *info);
sceKernelCancelMutex_089ForKernel
Version |
NID
|
1.69 |
0x7204B846
|
3.60 |
not present, but exists in ForDriver
|
sceKernelSetPermissionForKernel
Version |
NID
|
3.60 |
0x02EEDF17
|
// return value is previous value
int sceKernelSetPermissionForKernel(int value);
sceKernelCreateSemaForKernel
Version |
NID
|
3.60 |
0x30E93C31
|
/**
* Creates a new semaphore
*
* @par Example:
* @code
* int semaid;
* semaid = sceKernelCreateSemaForKernel("MySema", 0, 1, 1, 0);
* @endcode
*
* @param name - Specifies the name of the sema
* @param attr - Sema attribute flags (normally set to 0)
* @param initVal - Sema initial value
* @param maxVal - Sema maximum value
* @param option - Sema options (normally set to 0)
* @return A semaphore id
*/
SceUID sceKernelCreateSemaForKernel(const char *name, SceUInt attr, int initVal, int maxVal, SceKernelSemaOptParam *option);
sceKernelSignalSemaForKernel
Version |
NID
|
3.60 |
0xD270498B
|
sceKernelWaitSemaForKernel
Version |
NID
|
3.60 |
0x3C8B55A9
|
/**
* Lock a semaphore
*
* @par Example:
* @code
* sceKernelWaitSemaForKernel(sema_id, 1, 0);
* @endcode
*
* @param sema_id - The sema id returned from ::sceKernelCreateSemaForKernel
* @param signal - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1)
* @param timeout - Timeout in microseconds (assumed).
*
* @return < 0 on error.
*/
int sceKernelWaitSemaForKernel(SceUID sema_id, int signal, SceUInt *timeout);
sceKernelDeleteSemaForKernel
Version |
NID
|
0.990-3.60 |
0x16A35E58
|
sceKernelStartThread_089ForKernel
Version |
NID
|
1.69 |
0x21F5419B
|
3.60 |
not present, but exists in ForDriver
|
sceKernelWaitThreadEnd_089ForKernel
Version |
NID
|
1.69 |
0xF3489EF4
|
3.60 |
not present
|
sceKernelDelayThreadForKernel
Version |
NID
|
1.69 |
0x4B675D05
|
3.60 |
not present, but exists in ForDriver
|
sceKernelStopThreadForKernel
Version |
NID
|
0.990-3.60 |
0x150AEF74
|
sceKernelSuspendThreadForKernel
Version |
NID
|
0.990-3.60 |
0xAEEE955F
|
sceKernelWaitThreadEndCB_089ForKernel
Version |
NID
|
1.69 |
0x0373C5E3
|
3.60 |
not present
|
sceKernelExitThreadForKernel
Version |
NID
|
1.69 |
0x0C8A38E1
|
3.60 |
not present, but exists in ForDriver
|
sceKernelExitDeleteThreadForKernel
Version |
NID
|
1.69 |
0x1D17DECF
|
3.60 |
not present, but exists in ForDriver
|
sceKernelDelayThreadCBForKernel
Version |
NID
|
1.69 |
0x9C0180E1
|
3.60 |
not present, but exists in ForDriver
|
sceKernelGetThreadCurrentPriorityForKernel
Version |
NID
|
1.69 |
0x01414F0B
|
3.60 |
not present, but exists in ForDriver
|
sceKernelChangeCurrentThreadAttrForKernel
Version |
NID
|
1.69 |
0x751C9B7A
|
3.60 |
not present, but exists in ForDriver
|
sceKernelCpuScanThreadForProcessmgrForKernel
Version |
NID
|
0.990-3.60 |
0x3B4B8293
|
sceKernelGetProcessIdForKernel
Version |
NID
|
1.69 |
0x9DCB4B7A
|
3.60 |
not present, but exists in ForDriver
|
Returns the process ID.
SceUID sceKernelGetProcessIdForKernel(void);
sceKernelChangeActiveCpuMaskForKernel
Version |
NID
|
1.69 |
0x001173F8
|
3.60 |
not present, but exists in ForDriver
|
sceKernelCheckWaitableStatusForKernel
Version |
NID
|
1.69 |
0xD9BD74EB
|
3.60 |
not present, but exists in ForDriver
|
sceKernelCheckCallbackForKernel
Version |
NID
|
1.69 |
0xE53E41F6
|
3.60 |
not present, but exists in ForDriver
|
sceKernelRunWithStackForKernel
Version |
NID
|
1.69-3.60 |
0xE54FD746
|
This takes a function and runs it exclusively on the current core on its own stack.
// stack_size should be 0x2000
int sceKernelRunWithStackForKernel(int stack_size, void *func, void *args);
sceKernelRunWithStack2ForKernel
Version |
NID
|
1.69 |
0xA2C801A5
|
3.60 |
not present, but exists in ForDriver
|
// stack_size should be 0x2000
int sceKernelRunWithStack2ForKernel(int stack_size, void *func, void *args);
sceKernelGetFaultingProcessForKernel
Version |
NID
|
3.60 |
0xD8B9AC8D
|
3.65-3.67 |
0x6C1F092F
|
sceKernelDeleteEventFlagForKernel
Version |
NID
|
0.990 |
0x71ECB352
|
3.60 |
not present but exists in ForDriver
|
SceThreadmgrForKernel_E0833C77
Version |
NID
|
3.57 |
not present, added on 3.60
|
3.60 |
0xE0833C77
|
SceThreadmgr
_sceKernelCloseTimer
Version |
NID
|
1.69 |
0x22605E63
|
3.60 |
not present
|
_sceKernelCloseMutex
Version |
NID
|
1.69 |
0x21716C81
|
3.60 |
not present
|
_sceKernelPollSema
Version |
NID
|
1.69 |
0x20AF286A
|
3.60 |
not present
|
_sceKernelCancelCallback
Version |
NID
|
1.69 |
0x19A0C1B6
|
3.60 |
not present
|
_sceKernelOpenMsgPipe
Version |
NID
|
1.69 |
0x16EC5B7C
|
3.60 |
not present
|
_sceKernelDeleteEventFlag
Version |
NID
|
1.69 |
0x16C93704
|
3.60 |
not present
|
_sceKernelDeleteThread
Version |
NID
|
1.69 |
0x151E0020
|
3.60 |
not present
|
_sceKernelUnlockMutex
Version |
NID
|
1.69 |
0x12948A63
|
3.60 |
not present
|
sceKernelGetActiveCpuMask
Version |
NID
|
1.69 |
0x0C3CBB8B
|
3.60 |
not present
|
_sceKernelSignalCondAll
Version |
NID
|
1.69 |
0x0F11545D
|
3.60 |
not present
|
sceKernelUnregisterThreadEventHandler
Version |
NID
|
3.60 |
0x2C8ED6F0
|
sceKernelChangeActiveCpuMask
Version |
NID
|
1.69-3.60 |
0x001173F8
|
sceKernelGetThreadCurrentPriority
Version |
NID
|
1.69-3.60 |
0x01414F0B
|
sceKernelWaitThreadEndCB_089
Version |
NID
|
1.69-3.60 |
0x0373C5E3
|
sceKernelGetCallbackCount
Version |
NID
|
1.69-3.60 |
0x038644D5
|
_sceKernelTryReceiveMsgPipeVector
Version |
NID
|
1.69-3.60 |
0x03CFCF00
|
sceKernelCloseMutex
Version |
NID
|
1.69-3.60 |
0x03E23AF6
|
_sceKernelGetSemaInfo
Version |
NID
|
1.69-3.60 |
0x0402C633
|
_sceKernelWaitCond
Version |
NID
|
1.69-3.60 |
0x040795C7
|
_sceKernelWaitMultipleEventsCB
Version |
NID
|
1.69-3.60 |
0x0558B7C1
|
_sceKernelGetCondInfo
Version |
NID
|
1.69-3.60 |
0x05C51CE1
|
_sceKernelSignalLwCondAll
Version |
NID
|
1.69-3.60 |
0x07D2584A
|
sceKernelExitThread
Version |
NID
|
1.69-3.60 |
0x0C8A38E1
|
_sceKernelCreateSema
Version |
NID
|
1.69-3.60 |
0x0D76458E
|
sceKernelOpenMsgPipe
Version |
NID
|
1.69-3.60 |
0x0E1CB9F6
|
_sceKernelGetEventFlagInfo
Version |
NID
|
1.69-3.60 |
0x106C216F
|
_sceKernelSetEventWithNotifyCallback
Version |
NID
|
1.69-3.60 |
0x118F646E
|
sceKernelSignalCondTo
Version |
NID
|
1.69-3.60 |
0x1269F4EC
|
sceKernelCloseMsgPipe
Version |
NID
|
1.69-3.60 |
0x1305A065
|
_sceKernelCancelTimer
Version |
NID
|
1.69-3.60 |
0x13117B21
|
sceKernelChangeThreadCpuAffinityMask
Version |
NID
|
1.69-3.60 |
0x15129174
|
sceKernelCloseCond
Version |
NID
|
1.69-3.60 |
0x15C690E0
|
sceKernelLockMutex_089
Version |
NID
|
1.69-3.60 |
0x16AC80C5
|
int sceKernelLockMutex_089(SceUID mutex_id, int unk1, int unk2);
sceKernelUnregisterCallbackFromEvent
Version |
NID
|
1.69-3.60 |
0x18462B11
|
_sceKernelWaitLwCond
Version |
NID
|
1.69-3.60 |
0x18C65756
|
sceKernelUnlockMutex
Version |
NID
|
1.69-3.60 |
0x1A372EC8
|
_sceKernelCancelMutex
Version |
NID
|
1.69-3.60 |
0x1B74CB89
|
sceKernelDeleteThread
Version |
NID
|
1.69-3.60 |
0x1BBDE3D9
|
_sceKernelCancelSema
Version |
NID
|
1.69-3.60 |
0x1CAF805D
|
sceKernelExitDeleteThread
Version |
NID
|
1.69-3.60 |
0x1D17DECF
|
sceKernelUnlockMutex_089
Version |
NID
|
1.69-3.60 |
0x1E82E5D0
|
int sceKernelUnlockMutex_089(SceUID mutex_id, int unk1);
_sceKernelWaitMultipleEvents
Version |
NID
|
1.69-3.60 |
0x200CC503
|
sceKernelTryLockWriteRWLock
Version |
NID
|
1.69-3.60 |
0x206CBB66
|
sceKernelDeleteSimpleEvent
Version |
NID
|
1.69-3.60 |
0x208CFE28
|
_sceKernelGetThreadCpuAffinityMask
Version |
NID
|
1.69-3.60 |
0x212E6C35
|
_sceKernelGetTimerEventRemainingTime
Version |
NID
|
1.69-3.60 |
0x215FD24D
|
_sceKernelPollEvent
Version |
NID
|
1.69-3.60 |
0x21C7913E
|
sceKernelStartThread_089
Version |
NID
|
1.69-3.60 |
0x21F5419B
|
_sceKernelExitCallback
Version |
NID
|
1.69 |
0x2682E6ED
|
sceKernelTryLockMutex_089
Version |
NID
|
1.69-3.60 |
0x270993A6
|
sceKernelSetTimerTimeWide
Version |
NID
|
1.69 |
0x273B4A4D
|
_sceKernelOpenCond
Version |
NID
|
1.69 |
0x27DD11EA
|
_sceKernelGetThreadmgrUIDClass
Version |
NID
|
1.69 |
0x27EE191B
|
sceKernelOpenMutex_089
Version |
NID
|
1.69 |
0x2928D2EC
|
_sceKernelCancelEvent
Version |
NID
|
1.69 |
0x29483405
|
_sceKernelCreateMsgPipeWithLR
Version |
NID
|
1.69 |
0x2AAC8BFD
|
_sceKernelUnlockLwMutex
Version |
NID
|
1.69 |
0x2ABC41DF
|
_sceKernelGetMsgPipeCreatorId
Version |
NID
|
1.69 |
0x2B751F95
|
sceKernelCancelCallback
Version |
NID
|
1.69 |
0x30741EF2
|
sceKernelSetEvent
Version |
NID
|
1.69 |
0x324218CD
|
_sceKernelGetTimerBaseWide
Version |
NID
|
1.69 |
0x370E147B
|
_sceKernelGetThreadContextForVM
Version |
NID
|
1.69 |
0x377094D5
|
_sceKernelCreateEventFlag
Version |
NID
|
1.69 |
0x38AA5E8E
|
_sceKernelSetTimerTimeWide
Version |
NID
|
1.69 |
0x39364623
|
_sceKernelWaitThreadEndCB_0910
Version |
NID
|
1.69 |
0x394BCCF2
|
_sceKernelSignalCondTo
Version |
NID
|
1.69 |
0x3C00071F
|
_sceKernelReceiveMsgPipeVector
Version |
NID
|
1.69 |
0x3DD9E4AB
|
_sceKernelPulseEventWithNotifyCallback
Version |
NID
|
1.69 |
0x3E49D3F1
|
sceKernelUnlockReadRWLock
Version |
NID
|
1.69 |
0x3EF91145
|
sceKernelGetTimerTimeWide
Version |
NID
|
1.69 |
0x3EFD3165
|
_sceKernelCreateCallback
Version |
NID
|
1.69 |
0x3F42E175
|
_sceKernelWaitEventFlagCB
Version |
NID
|
1.69 |
0x401E0C68
|
_sceKernelSetEventFlag
Version |
NID
|
1.69 |
0x438917E4
|
_sceKernelWaitCondCB
Version |
NID
|
1.69 |
0x452B0AB3
|
_sceKernelWaitSema
Version |
NID
|
1.69 |
0x45389B6B
|
sceKernelGetSystemTimeLow
Version |
NID
|
1.69-3.60 |
0x47F6DE49
|
sceKernelStartTimer
Version |
NID
|
1.69 |
0x48091E0C
|
sceKernelDelayThread
Version |
NID
|
1.69-3.60 |
0x4B675D05
|
_sceKernelClearEvent
Version |
NID
|
1.69 |
0x4B7F47DC
|
__sceKernelCreateLwMutex
Version |
NID
|
1.69-3.60 |
0x4BB3154A
|
typedef struct sceKernelCreateLwMutex_opt //size is 0x10
{
int initCount;
const SceKernelLwMutexOptParam* pOptParam;
uint32_t unk_8;
uint32_t unk_C;
} sceKernelCreateLwMutex_opt;
int __sceKernelCreateLwMutex(SceKernelLwMutexWork *pWork, const char *pName, unsigned int attr, sceKernelCreateLwMutex_opt* opt);
sceKernelClearEventFlag
Version |
NID
|
1.69 |
0x4CB87CA7
|
_sceKernelReceiveMsgPipeVectorCB
Version |
NID
|
1.69 |
0x4DBF648E
|
_sceKernelNotifyCallback
Version |
NID
|
1.69 |
0x4DF8B624
|
_sceKernelWaitEvent
Version |
NID
|
1.69 |
0x4E0EA70D
|
sceKernelOpenSimpleEvent
Version |
NID
|
1.69 |
0x4E1E4DF8
|
sceKernelGetThreadStackFreeSize
Version |
NID
|
1.69 |
0x4F8A3DA0
|
_sceKernelWaitSignal
Version |
NID
|
1.69 |
0x50407BF4
|
_sceKernelTryLockWriteRWLock
Version |
NID
|
1.69 |
0x52DD3322
|
sceKernelOpenMutex
Version |
NID
|
1.69 |
0x52E17182
|
sceKernelDeleteEventFlag
Version |
NID
|
1.69 |
0x5840162C
|
_sceKernelUnregisterCallbackFromEventAll
Version |
NID
|
1.69 |
0x5B5650C7
|
_sceKernelUnlockWriteRWLock
Version |
NID
|
1.69 |
0x5B746A69
|
_sceKernelGetCallbackCount
Version |
NID
|
1.69 |
0x5D06FF09
|
_sceKernelLockReadRWLockCB
Version |
NID
|
1.69 |
0x5D86D763
|
sceKernelGetTimerBaseWide
Version |
NID
|
1.69 |
0x5DBC1960
|
_sceKernelSendMsgPipeVector
Version |
NID
|
1.69 |
0x5E65E454
|
_sceKernelWaitExceptionCB
Version |
NID
|
1.69 |
0x5E7876F2
|
sceKernelResumeThreadForVM
Version |
NID
|
1.69 |
0x5E93840E
|
_sceKernelCloseCond
Version |
NID
|
1.69 |
0x650CE348
|
_sceKernelPMonCpuGetCounter
Version |
NID
|
1.69 |
0x667A4649
|
_sceKernelGetActiveCpuMask
Version |
NID
|
1.69 |
0x67FDA21B
|
_sceKernelDeleteCallback
Version |
NID
|
1.69 |
0x68D0FA79
|
sceKernelGetMutexInfo_089
Version |
NID
|
1.69-3.60 |
0x69B78A12
|
int sceKernelGetMutexInfo_089(SceUID mutexid, SceKernelMutexInfo *info);
_sceKernelPMonThreadGetCounter
Version |
NID
|
1.69 |
0x6B9711AC
|
_sceKernelGetLwCondInfo
Version |
NID
|
1.69 |
0x6C79F2F2
|
sceKernelSignalCond
Version |
NID
|
1.69 |
0x6ED2E2DC
|
3.60 |
0x6ED2E2DC
|
_sceKernelSignalLwCondTo
Version |
NID
|
1.69 |
0x6F1A4A2E
|
_sceKernelGetTimerTime
Version |
NID
|
1.69 |
0x6F2C41BA
|
_sceKernelWaitException
Version |
NID
|
1.69 |
0x6F7C4DE6
|
_sceKernelGetEventPattern
Version |
NID
|
1.69 |
0x70358258
|
sceKernelGetMsgPipeCreatorId
Version |
NID
|
1.69 |
0x70E2A6D2
|
_sceKernelSuspendThreadForVM
Version |
NID
|
1.69 |
0x7192B01C
|
sceKernelCancelMutex_089
Version |
NID
|
1.69-3.60 |
0x7204B846
|
_sceKernelWaitLwCondCB
Version |
NID
|
1.69 |
0x72DBB96B
|
sceKernelTryLockMutex
Version |
NID
|
1.69 |
0x72FC1F54
|
sceKernelChangeCurrentThreadAttr
Version |
NID
|
1.69-3.60 |
0x751C9B7A
|
_sceKernelDeleteLwCond
Version |
NID
|
1.69 |
0x75FCF058
|
sceKernelOpenCond
Version |
NID
|
1.69 |
0x76BDA02F
|
sceKernelRegisterCallbackToEvent
Version |
NID
|
1.69 |
0x76FB37E9
|
_sceKernelSignalCond
Version |
NID
|
1.69 |
0x79889DAC
|
_sceKernelCreateTimer
Version |
NID
|
1.69 |
0x79BA0A6D
|
_sceKernelGetMsgPipeInfo
Version |
NID
|
1.69 |
0x7AE31060
|
sceKernelClearEvent
Version |
NID
|
1.69 |
0x7B2A4B28
|
_sceKernelUnlockReadRWLock
Version |
NID
|
1.69 |
0x7D16FB3B
|
_sceKernelWaitEventCB
Version |
NID
|
1.69 |
0x7D483C33
|
_sceKernelLockReadRWLock
Version |
NID
|
1.69 |
0x7EB9E8B5
|
_sceKernelLockMutex
Version |
NID
|
1.69 |
0x7FA945AD
|
_sceKernelGetThreadExitStatus_0940
Version |
NID
|
1.69 |
0x800BB137
|
_sceKernelLockWriteRWLock
Version |
NID
|
1.69 |
0x80191FAA
|
_sceKernelGetSystemInfo
Version |
NID
|
1.69 |
0x80544E0C
|
_sceKernelDeleteSema
Version |
NID
|
1.69 |
0x855F49D5
|
_sceKernelOpenTimer
Version |
NID
|
1.69 |
0x8564E008
|
_sceKernelGetTimerBase
Version |
NID
|
1.69 |
0x865DA482
|
sceKernelPollSema
Version |
NID
|
1.69 |
0x866EF048
|
_sceKernelGetCallbackInfo
Version |
NID
|
1.69 |
0x86761234
|
sceKernelStopTimer
Version |
NID
|
1.69 |
0x869E9F20
|
sceKernelDeleteCond
Version |
NID
|
1.69 |
0x879E6EBD
|
sceKernelUnregisterCallbackFromEventAll
Version |
NID
|
1.69 |
0x888A7361
|
_sceKernelGetRWLockInfo
Version |
NID
|
1.69 |
0x8CE3AFC7
|
sceKernelPulseEvent
Version |
NID
|
1.69 |
0x8D27BAD6
|
_sceKernelCancelEventWithSetPattern
Version |
NID
|
1.69 |
0x8E68E870
|
_sceKernelSignalSema
Version |
NID
|
1.69 |
0x8E9A0400
|
_sceKernelDeleteLwMutex
Version |
NID
|
1.69 |
0x91262C5F
|
_sceKernelDeleteTimer
Version |
NID
|
1.69 |
0x921A043D
|
_sceKernelCreateMutex
Version |
NID
|
1.69 |
0x92667AE5
|
SceUID _sceKernelCreateMutex(const char *pName, SceUInt32 attr, SceInt32 initCount, const SceKernelMutexOptParam *pOptParam);
_sceKernelCreateLwCond
Version |
NID
|
1.69 |
0x940B9EBE
|
sceKernelCloseEventFlag
Version |
NID
|
1.69 |
0x9A68F547
|
_sceKernelSetEvent
Version |
NID
|
1.69 |
0x9A92C33F
|
_sceKernelDeleteRWLock
Version |
NID
|
1.69 |
0x9AA387DF
|
_sceKernelGetTimerTimeWide
Version |
NID
|
1.69 |
0x9AC39954
|
_sceKernelRegisterCallbackToEvent
Version |
NID
|
1.69 |
0x9B1922F2
|
sceKernelDelayThreadCB
Version |
NID
|
1.69-3.60 |
0x9C0180E1
|
_sceKernelCreateSimpleEvent
Version |
NID
|
1.69 |
0x9C187FAD
|
_sceKernelLockLwMutex
Version |
NID
|
1.69 |
0x9C572180
|
_sceKernelChangeThreadCpuAffinityMask
Version |
NID
|
1.69 |
0x9C921F8D
|
_sceKernelOpenMutex
Version |
NID
|
1.69 |
0x9D291788
|
sceKernelGetProcessId
Version |
NID
|
1.69-3.60 |
0x9DCB4B7A
|
sceKernelCloseSema
Version |
NID
|
1.69 |
0xA2D81F9E
|
sceKernelCloseMutex_089
Version |
NID
|
1.69 |
0xA35427EE
|
sceKernelNotifyCallback
Version |
NID
|
1.69 |
0xA4683592
|
_sceKernelCloseMsgPipe
Version |
NID
|
1.69 |
0xAA888831
|
sceKernelDeleteTimer
Version |
NID
|
1.69 |
0xAB1E42C4
|
_sceKernelGetTimerInfo
Version |
NID
|
1.69 |
0xAC7FE4F3
|
sceKernelCloseTimer
Version |
NID
|
1.69 |
0xACE60E4A
|
_sceKernelCreateRWLock
Version |
NID
|
1.69 |
0xB1877F5E
|
sceKernelCreateCallback
Version |
NID
|
1.69 |
0xB19CF7E9
|
_sceKernelGetThreadInfo
Version |
NID
|
1.69-3.60 |
0xB373D8A1
|
typedef struct get_thread_info_opt
{
uint32_t size; // size of SceKernelThreadInfo
uint32_t unk;
}get_thread_info_opt;
int _sceKernelGetThreadInfo(SceUID thid, SceKernelThreadInfo *info, get_thread_info_opt* opt)
_sceKernelTrySendMsgPipeVector
Version |
NID
|
1.69 |
0xB3D600AB
|
sceKernelUnlockWriteRWLock
Version |
NID
|
1.69 |
0xB4151397
|
_sceKernelGetThreadStackFreeSize
Version |
NID
|
1.69 |
0xB5EC061A
|
_sceKernelDeleteMsgPipe
Version |
NID
|
1.69 |
0xB6D50FCC
|
sceKernelOpenTimer
Version |
NID
|
1.69 |
0xB6E286E7
|
_sceKernelGetSystemTime
Version |
NID
|
1.69 |
0xB70EBAE9
|
_sceKernelChangeThreadVfpException
Version |
NID
|
1.69 |
0xB8F165B4
|
_sceKernelOpenSema
Version |
NID
|
1.69 |
0xB96FED7D
|
_sceKernelGetThreadTLSAddr
Version |
NID
|
1.69 |
0xBACA6891
|
sceKernelOpenEventFlag
Version |
NID
|
1.69 |
0xBC19F8A1
|
_sceKernelTryLockMutex
Version |
NID
|
1.69 |
0xBCFB867F
|
sceKernelChangeThreadPriority
Version |
NID
|
1.69 |
0xBD0139F2
|
sceKernelCreateThreadForUser
Version |
NID
|
1.69 |
0xC0FAF6A3
|
_sceKernelSendSignal
Version |
NID
|
1.69 |
0xC21FC992
|
_sceKernelCloseRWLock
Version |
NID
|
1.69 |
0xC239DBCC
|
sceKernelSignalCondAll
Version |
NID
|
1.69 |
0xC2E7AC22
|
_sceKernelStartThread
Version |
NID
|
1.69 |
0xC30B1745
|
_sceKernelSignalLwCond
Version |
NID
|
1.69 |
0xC37F6983
|
_sceKernelStartTimer
Version |
NID
|
1.69 |
0xC3ED6E4A
|
_sceKernelCloseSimpleEvent
Version |
NID
|
1.69 |
0xC6FFE335
|
_sceKernelGetThreadRunStatus
Version |
NID
|
1.69 |
0xC7FB5497
|
sceKernelGetThreadmgrUIDClass
Version |
NID
|
1.69 |
0xC9678F7F
|
_sceKernelStopTimer
Version |
NID
|
1.69 |
0xC96F4269
|
sceKernelDeleteMutex
Version |
NID
|
1.69 |
0xCB78710D
|
sceKernelOpenSema
Version |
NID
|
1.69 |
0xCBE235C7
|
_sceKernelCreateCond
Version |
NID
|
1.69 |
0xCC14FA59
|
sceKernelChangeThreadVfpException
Version |
NID
|
1.69 |
0xCC18FBAE
|
sceKernelOpenRWLock
Version |
NID
|
1.69 |
0xCE510196
|
_sceKernelCancelMsgPipe
Version |
NID
|
1.69 |
0xCE769C83
|
_sceKernelWaitSignalCB
Version |
NID
|
1.69 |
0xCEA3FC52
|
_sceKernelCancelRWLock
Version |
NID
|
1.69 |
0xD004EA15
|
sceKernelLockMutexCB_089
Version |
NID
|
1.69-3.60 |
0xD06F2886
|
_sceKernelGetThreadExitStatus
Version |
NID
|
1.69 |
0xD3210C08
|
_sceKernelWaitThreadEnd_0910
Version |
NID
|
1.69 |
0xD38231C9
|
sceKernelDeleteCallback
Version |
NID
|
1.69 |
0xD469676B
|
_sceKernelSetThreadContextForVM
Version |
NID
|
1.69 |
0xD4785C41
|
sceKernelSendSignal
Version |
NID
|
1.69 |
0xD4C367B2
|
_sceKernelDeleteCond
Version |
NID
|
1.69 |
0xD99F51D3
|
sceKernelCheckWaitableStatus
Version |
NID
|
1.69-3.60 |
0xD9BD74EB
|
_sceKernelGetLwCondInfoById
Version |
NID
|
1.69 |
0xD9E78D30
|
_sceKernelPollEventFlag
Version |
NID
|
1.69 |
0xDAB1B1C8
|
sceKernelDeleteSema
Version |
NID
|
1.69 |
0xDB32948A
|
_sceKernelLockMutexCB
Version |
NID
|
1.69 |
0xDB9F5333
|
_sceKernelLockWriteRWLockCB
Version |
NID
|
1.69 |
0xDBD09B09
|
_sceKernelOpenRWLock
Version |
NID
|
1.69 |
0xDFCEE5AB
|
_sceKernelDeleteMutex
Version |
NID
|
1.69 |
0xE0A6D759
|
_sceKernelSetTimerEvent
Version |
NID
|
1.69 |
0xE2C0BFEF
|
_sceKernelOpenSimpleEvent
Version |
NID
|
1.69 |
0xE326EA7A
|
sceKernelCheckCallback
Version |
NID
|
1.69-3.60 |
0xE53E41F6
|
_sceKernelChangeThreadPriority
Version |
NID
|
1.69 |
0xE61C2B06
|
sceKernelSignalSema
Version |
NID
|
1.69 |
0xE6B761D1
|
sceKernelDeleteRWLock
Version |
NID
|
1.69 |
0xE73649CA
|
sceKernelDeleteMsgPipe
Version |
NID
|
1.69 |
0xE78BCCF7
|
_sceKernelCloseSema
Version |
NID
|
1.69 |
0xE8C03447
|
_sceKernelGetMutexInfo
Version |
NID
|
1.69-3.60 |
0xE8CC3DF0
|
int _sceKernelGetMutexInfo(SceUID mutexid, SceKernelMutexInfo *pInfo, SceKernelMutexOptParam* pOpt);
_sceKernelWaitThreadEnd
Version |
NID
|
1.69 |
0xEA5C52F5
|
_sceKernelTryLockReadRWLock
Version |
NID
|
1.69 |
0xEB9054B2
|
sceKernelSetEventFlag
Version |
NID
|
1.69 |
0xEC94DFF7
|
sceKernelTryLockReadRWLock
Version |
NID
|
1.69 |
0xEFDDA456
|
_sceKernelClearEventFlag
Version |
NID
|
1.69 |
0xF0526CE2
|
sceKernelGetThreadCpuAffinityMask
Version |
NID
|
1.69 |
0xF1AE5654
|
sceKernelWaitThreadEnd_089
Version |
NID
|
1.69-3.60 |
0xF3489EF4
|
sceKernelGetSystemTimeWide
Version |
NID
|
1.69-3.60 |
0xF4EE4FA9
|
_sceKernelPulseEvent
Version |
NID
|
1.69 |
0xF6A0FE84
|
_sceKernelCloseEventFlag
Version |
NID
|
1.69 |
0xF6CFB4F1
|
_sceKernelSendMsgPipeVectorCB
Version |
NID
|
1.69 |
0xF6D515DC
|
_sceKernelDeleteSimpleEvent
Version |
NID
|
1.69 |
0xF7413EC7
|
_sceKernelCancelEventFlag
Version |
NID
|
1.69 |
0xF76F3056
|
_sceKernelWaitSemaCB
Version |
NID
|
1.69 |
0xF8E06784
|
_sceKernelWaitThreadEndCB
Version |
NID
|
1.69 |
0xFA3D4491
|
_sceKernelOpenEventFlag
Version |
NID
|
1.69 |
0xFA64FB37
|
_sceKernelUnregisterCallbackFromEvent
Version |
NID
|
1.69 |
0xFB66565E
|
_sceKernelWaitEventFlag
Version |
NID
|
1.69 |
0xFCE2F728
|
sceKernelCloseRWLock
Version |
NID
|
1.69 |
0xFD5BD5C1
|
_sceKernelGetLwMutexInfoById
Version |
NID
|
1.69 |
0xFEC9E946
|
sceKernelCloseSimpleEvent
Version |
NID
|
1.69 |
0xFEF4CA53
|
_sceKernelSetTimerTime
Version |
NID
|
1.69 |
0xFF738CD9
|
_sceKernelRegisterThreadEventHandler
Version |
NID
|
3.60 |
0xCE6B49D8
|
struct sceKernelRegisterThreadEventHandlerOpt
{
void *handler;
int num1;
int reserved0;
int reserved1;
};
int _sceKernelRegisterThreadEventHandler(char *name, SceUID uid, uint32_t num0, sceKernelRegisterThreadEventHandlerOpt *opt);
SceThreadmgrCoredumpTime
sceKernelExitThread
Version |
NID
|
3.60 |
0x0C8A38E1
|