PSPSDK 2024-12-16
Loading...
Searching...
No Matches
pspthreadman.h File Reference
#include <psptypes.h>
#include <pspkerneltypes.h>
#include <pspdebug.h>
Include dependency graph for pspthreadman.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SceKernelSysClock
 64-bit system clock type. More...
 
struct  SceKernelThreadOptParam
 Additional options used when creating threads. More...
 
struct  SceKernelThreadInfo
 Structure to hold the status information for a thread. More...
 
struct  SceKernelThreadRunStatus
 Statistics about a running thread. More...
 
struct  SceKernelSemaOptParam
 Additional options used when creating semaphores. More...
 
struct  SceKernelSemaInfo
 Current state of a semaphore. More...
 
struct  SceLwMutexWorkarea
 Struct as workarea for lightweight mutex. More...
 
struct  SceKernelEventFlagInfo
 Structure to hold the event flag information. More...
 
struct  SceKernelEventFlagOptParam
 
struct  SceKernelMbxOptParam
 Additional options used when creating messageboxes. More...
 
struct  SceKernelMbxInfo
 Current state of a messagebox. More...
 
struct  SceKernelMsgPacket
 Header for a message box packet. More...
 
struct  SceKernelAlarmInfo
 Struct containing alarm info. More...
 
struct  SceKernelCallbackInfo
 Structure to hold the status information for a callback. More...
 
struct  SceKernelSystemStatus
 Structure to contain the system status returned by sceKernelReferSystemStatus. More...
 
struct  SceKernelMppInfo
 Message Pipe status info. More...
 
struct  SceKernelVplOptParam
 
struct  SceKernelVplInfo
 Variable pool status info. More...
 
struct  SceKernelFplOptParam
 
struct  SceKernelFplInfo
 Fixed pool status information. More...
 
struct  SceKernelVTimerOptParam
 
struct  SceKernelVTimerInfo
 
struct  SceKernelThreadEventHandlerInfo
 Struct for event handler info. More...
 

Macros

#define THREAD_ATTR_VFPU   PSP_THREAD_ATTR_VFPU
 
#define THREAD_ATTR_USER   PSP_THREAD_ATTR_USER
 

Typedefs

typedef struct SceKernelSysClock SceKernelSysClock
 64-bit system clock type.
 
typedef int(* SceKernelThreadEntry) (SceSize args, void *argp)
 
typedef struct SceKernelThreadOptParam SceKernelThreadOptParam
 Additional options used when creating threads.
 
typedef struct SceKernelThreadInfo SceKernelThreadInfo
 Structure to hold the status information for a thread.
 
typedef struct SceKernelThreadRunStatus SceKernelThreadRunStatus
 Statistics about a running thread.
 
typedef struct SceKernelSemaOptParam SceKernelSemaOptParam
 Additional options used when creating semaphores.
 
typedef struct SceKernelSemaInfo SceKernelSemaInfo
 Current state of a semaphore.
 
typedef struct SceKernelEventFlagInfo SceKernelEventFlagInfo
 Structure to hold the event flag information.
 
typedef struct SceKernelEventFlagOptParam SceKernelEventFlagOptParam
 
typedef struct SceKernelMbxOptParam SceKernelMbxOptParam
 Additional options used when creating messageboxes.
 
typedef struct SceKernelMbxInfo SceKernelMbxInfo
 Current state of a messagebox.
 
typedef struct SceKernelMsgPacket SceKernelMsgPacket
 Header for a message box packet.
 
typedef SceUInt(* SceKernelAlarmHandler) (void *common)
 Prototype for alarm handlers.
 
typedef struct SceKernelAlarmInfo SceKernelAlarmInfo
 Struct containing alarm info.
 
typedef int(* SceKernelCallbackFunction) (int arg1, int arg2, void *arg)
 Callback function prototype.
 
typedef struct SceKernelCallbackInfo SceKernelCallbackInfo
 Structure to hold the status information for a callback.
 
typedef struct SceKernelSystemStatus SceKernelSystemStatus
 Structure to contain the system status returned by sceKernelReferSystemStatus.
 
typedef struct SceKernelMppInfo SceKernelMppInfo
 Message Pipe status info.
 
typedef struct SceKernelVplInfo SceKernelVplInfo
 Variable pool status info.
 
typedef struct SceKernelFplInfo SceKernelFplInfo
 Fixed pool status information.
 
typedef SceUInt(* SceKernelVTimerHandler) (SceUID uid, SceKernelSysClock *, SceKernelSysClock *, void *)
 
typedef SceUInt(* SceKernelVTimerHandlerWide) (SceUID uid, SceInt64, SceInt64, void *)
 
typedef struct SceKernelVTimerInfo SceKernelVTimerInfo
 
typedef int(* SceKernelThreadEventHandler) (int mask, SceUID thid, void *common)
 
typedef struct SceKernelThreadEventHandlerInfo SceKernelThreadEventHandlerInfo
 Struct for event handler info.
 

Enumerations

enum  PspThreadAttributes {
  PSP_THREAD_ATTR_VFPU = 0x00004000 , PSP_THREAD_ATTR_USER = 0x80000000 , PSP_THREAD_ATTR_USBWLAN = 0xa0000000 , PSP_THREAD_ATTR_VSH = 0xc0000000 ,
  PSP_THREAD_ATTR_SCRATCH_SRAM = 0x00008000 , PSP_THREAD_ATTR_NO_FILLSTACK = 0x00100000 , PSP_THREAD_ATTR_CLEAR_STACK = 0x00200000
}
 Attribute for threads. More...
 
enum  PspThreadStatus {
  PSP_THREAD_RUNNING = 1 , PSP_THREAD_READY = 2 , PSP_THREAD_WAITING = 4 , PSP_THREAD_SUSPEND = 8 ,
  PSP_THREAD_STOPPED = 16 , PSP_THREAD_KILLED = 32
}
 
enum  PspLwMutexAttributes { PSP_LW_MUTEX_ATTR_THFIFO = 0x0000U , PSP_LW_MUTEX_ATTR_THPRI = 0x0100U , PSP_LW_MUTEX_ATTR_RECURSIVE = 0x0200U }
 Attribute for lightweight mutex. More...
 
enum  PspEventFlagAttributes { PSP_EVENT_WAITMULTIPLE = 0x200 }
 Event flag creation attributes. More...
 
enum  PspEventFlagWaitTypes { PSP_EVENT_WAITAND = 0 , PSP_EVENT_WAITOR = 1 , PSP_EVENT_WAITCLEAR = 0x20 }
 Event flag wait types. More...
 
enum  SceKernelIdListType {
  SCE_KERNEL_TMID_Thread = 1 , SCE_KERNEL_TMID_Semaphore = 2 , SCE_KERNEL_TMID_EventFlag = 3 , SCE_KERNEL_TMID_Mbox = 4 ,
  SCE_KERNEL_TMID_Vpl = 5 , SCE_KERNEL_TMID_Fpl = 6 , SCE_KERNEL_TMID_Mpipe = 7 , SCE_KERNEL_TMID_Callback = 8 ,
  SCE_KERNEL_TMID_ThreadEventHandler = 9 , SCE_KERNEL_TMID_Alarm = 10 , SCE_KERNEL_TMID_VTimer = 11 , SCE_KERNEL_TMID_SleepThread = 64 ,
  SCE_KERNEL_TMID_DelayThread = 65 , SCE_KERNEL_TMID_SuspendThread = 66 , SCE_KERNEL_TMID_DormantThread = 67
}
 Threadman types for sceKernelGetThreadmanIdList. More...
 
enum  ThreadEventIds { THREADEVENT_ALL = 0xFFFFFFFF , THREADEVENT_KERN = 0xFFFFFFF8 , THREADEVENT_USER = 0xFFFFFFF0 , THREADEVENT_CURRENT = 0 }
 
enum  ThreadEvents { THREAD_CREATE = 1 , THREAD_START = 2 , THREAD_EXIT = 4 , THREAD_DELETE = 8 }
 

Functions

SceUID sceKernelCreateThread (const char *name, SceKernelThreadEntry entry, int initPriority, int stackSize, SceUInt attr, SceKernelThreadOptParam *option)
 Create a thread.
 
int sceKernelDeleteThread (SceUID thid)
 Delate a thread.
 
int sceKernelStartThread (SceUID thid, SceSize arglen, void *argp)
 Start a created thread.
 
int sceKernelExitThread (int status)
 Exit a thread.
 
int sceKernelExitDeleteThread (int status)
 Exit a thread and delete itself.
 
int sceKernelTerminateThread (SceUID thid)
 Terminate a thread.
 
int sceKernelTerminateDeleteThread (SceUID thid)
 Terminate and delete a thread.
 
int sceKernelSuspendDispatchThread (void)
 Suspend the dispatch thread.
 
int sceKernelResumeDispatchThread (int state)
 Resume the dispatch thread.
 
int sceKernelSleepThread (void)
 Sleep thread.
 
int sceKernelSleepThreadCB (void)
 Sleep thread but service any callbacks as necessary.
 
int sceKernelWakeupThread (SceUID thid)
 Wake a thread previously put into the sleep state.
 
int sceKernelCancelWakeupThread (SceUID thid)
 Cancel a thread that was to be woken with sceKernelWakeupThread.
 
int sceKernelSuspendThread (SceUID thid)
 Suspend a thread.
 
int sceKernelResumeThread (SceUID thid)
 Resume a thread previously put into a suspended state with sceKernelSuspendThread.
 
int sceKernelWaitThreadEnd (SceUID thid, SceUInt *timeout)
 Wait until a thread has ended.
 
int sceKernelWaitThreadEndCB (SceUID thid, SceUInt *timeout)
 Wait until a thread has ended and handle callbacks if necessary.
 
int sceKernelDelayThread (SceUInt delay)
 Delay the current thread by a specified number of microseconds.
 
int sceKernelDelayThreadCB (SceUInt delay)
 Delay the current thread by a specified number of microseconds and handle any callbacks.
 
int sceKernelDelaySysClockThread (SceKernelSysClock *delay)
 Delay the current thread by a specified number of sysclocks.
 
int sceKernelDelaySysClockThreadCB (SceKernelSysClock *delay)
 Delay the current thread by a specified number of sysclocks handling callbacks.
 
int sceKernelChangeCurrentThreadAttr (int unknown, SceUInt attr)
 Modify the attributes of the current thread.
 
int sceKernelChangeThreadPriority (SceUID thid, int priority)
 Change the threads current priority.
 
int sceKernelRotateThreadReadyQueue (int priority)
 Rotate thread ready queue at a set priority.
 
int sceKernelReleaseWaitThread (SceUID thid)
 Release a thread in the wait state.
 
int sceKernelGetThreadId (void)
 Get the current thread Id.
 
int sceKernelGetThreadCurrentPriority (void)
 Get the current priority of the thread you are in.
 
int sceKernelGetThreadExitStatus (SceUID thid)
 Get the exit status of a thread.
 
int sceKernelCheckThreadStack (void)
 Check the thread stack?
 
int sceKernelGetThreadStackFreeSize (SceUID thid)
 Get the free stack size for a thread.
 
int sceKernelReferThreadStatus (SceUID thid, SceKernelThreadInfo *info)
 Get the status information for the specified thread.
 
int sceKernelReferThreadRunStatus (SceUID thid, SceKernelThreadRunStatus *status)
 Retrive the runtime status of a thread.
 
SceUID sceKernelCreateSema (const char *name, SceUInt attr, int initVal, int maxVal, SceKernelSemaOptParam *option)
 Creates a new semaphore.
 
int sceKernelDeleteSema (SceUID semaid)
 Destroy a semaphore.
 
int sceKernelSignalSema (SceUID semaid, int signal)
 Send a signal to a semaphore.
 
int sceKernelWaitSema (SceUID semaid, int signal, SceUInt *timeout)
 Lock a semaphore.
 
int sceKernelWaitSemaCB (SceUID semaid, int signal, SceUInt *timeout)
 Lock a semaphore a handle callbacks if necessary.
 
int sceKernelPollSema (SceUID semaid, int signal)
 Poll a sempahore.
 
int sceKernelReferSemaStatus (SceUID semaid, SceKernelSemaInfo *info)
 Retrieve information about a semaphore.
 
int sceKernelCreateLwMutex (SceLwMutexWorkarea *workarea, const char *name, SceUInt32 attr, int initialCount, u32 *optionsPtr)
 Create a lightweight mutex.
 
int sceKernelDeleteLwMutex (SceLwMutexWorkarea *workarea)
 Delete a lightweight mutex.
 
int sceKernelTryLockLwMutex (SceLwMutexWorkarea *workarea, int lockCount)
 Try to lock a lightweight mutex.
 
int sceKernelLockLwMutex (SceLwMutexWorkarea *workarea, int lockCount, unsigned int *pTimeout)
 Lock a lightweight mutex.
 
int sceKernelUnlockLwMutex (SceLwMutexWorkarea *workarea, int lockCount)
 Lock a lightweight mutex.
 
SceUID sceKernelCreateEventFlag (const char *name, int attr, int bits, SceKernelEventFlagOptParam *opt)
 Create an event flag.
 
int sceKernelSetEventFlag (SceUID evid, u32 bits)
 Set an event flag bit pattern.
 
int sceKernelClearEventFlag (SceUID evid, u32 bits)
 Clear a event flag bit pattern.
 
int sceKernelPollEventFlag (int evid, u32 bits, u32 wait, u32 *outBits)
 Poll an event flag for a given bit pattern.
 
int sceKernelWaitEventFlag (int evid, u32 bits, u32 wait, u32 *outBits, SceUInt *timeout)
 Wait for an event flag for a given bit pattern.
 
int sceKernelWaitEventFlagCB (int evid, u32 bits, u32 wait, u32 *outBits, SceUInt *timeout)
 Wait for an event flag for a given bit pattern with callback.
 
int sceKernelDeleteEventFlag (int evid)
 Delete an event flag.
 
int sceKernelReferEventFlagStatus (SceUID event, SceKernelEventFlagInfo *status)
 Get the status of an event flag.
 
SceUID sceKernelCreateMbx (const char *name, SceUInt attr, SceKernelMbxOptParam *option)
 Creates a new messagebox.
 
int sceKernelDeleteMbx (SceUID mbxid)
 Destroy a messagebox.
 
int sceKernelSendMbx (SceUID mbxid, void *message)
 Send a message to a messagebox.
 
int sceKernelReceiveMbx (SceUID mbxid, void **pmessage, SceUInt *timeout)
 Wait for a message to arrive in a messagebox.
 
int sceKernelReceiveMbxCB (SceUID mbxid, void **pmessage, SceUInt *timeout)
 Wait for a message to arrive in a messagebox and handle callbacks if necessary.
 
int sceKernelPollMbx (SceUID mbxid, void **pmessage)
 Check if a message has arrived in a messagebox.
 
int sceKernelCancelReceiveMbx (SceUID mbxid, int *pnum)
 Abort all wait operations on a messagebox.
 
int sceKernelReferMbxStatus (SceUID mbxid, SceKernelMbxInfo *info)
 Retrieve information about a messagebox.
 
SceUID sceKernelSetAlarm (SceUInt clock, SceKernelAlarmHandler handler, void *common)
 Set an alarm.
 
SceUID sceKernelSetSysClockAlarm (SceKernelSysClock *clock, SceKernelAlarmHandler handler, void *common)
 Set an alarm using a SceKernelSysClock structure for the time.
 
int sceKernelCancelAlarm (SceUID alarmid)
 Cancel a pending alarm.
 
int sceKernelReferAlarmStatus (SceUID alarmid, SceKernelAlarmInfo *info)
 Refer the status of a created alarm.
 
int sceKernelCreateCallback (const char *name, SceKernelCallbackFunction func, void *arg)
 Create callback.
 
int sceKernelReferCallbackStatus (SceUID cb, SceKernelCallbackInfo *status)
 Gets the status of a specified callback.
 
int sceKernelDeleteCallback (SceUID cb)
 Delete a callback.
 
int sceKernelNotifyCallback (SceUID cb, int arg2)
 Notify a callback.
 
int sceKernelCancelCallback (SceUID cb)
 Cancel a callback ?
 
int sceKernelGetCallbackCount (SceUID cb)
 Get the callback count.
 
int sceKernelCheckCallback (void)
 Check callback ?
 
int sceKernelGetThreadmanIdList (enum SceKernelIdListType type, SceUID *readbuf, int readbufsize, int *idcount)
 Get a list of UIDs from threadman.
 
int sceKernelReferSystemStatus (SceKernelSystemStatus *status)
 Get the current system status.
 
SceUID sceKernelCreateMsgPipe (const char *name, int part, int attr, void *unk1, void *opt)
 Create a message pipe.
 
int sceKernelDeleteMsgPipe (SceUID uid)
 Delete a message pipe.
 
int sceKernelSendMsgPipe (SceUID uid, void *message, unsigned int size, int unk1, void *unk2, unsigned int *timeout)
 Send a message to a pipe.
 
int sceKernelSendMsgPipeCB (SceUID uid, void *message, unsigned int size, int unk1, void *unk2, unsigned int *timeout)
 Send a message to a pipe (with callback)
 
int sceKernelTrySendMsgPipe (SceUID uid, void *message, unsigned int size, int unk1, void *unk2)
 Try to send a message to a pipe.
 
int sceKernelReceiveMsgPipe (SceUID uid, void *message, unsigned int size, int unk1, void *unk2, unsigned int *timeout)
 Receive a message from a pipe.
 
int sceKernelReceiveMsgPipeCB (SceUID uid, void *message, unsigned int size, int unk1, void *unk2, unsigned int *timeout)
 Receive a message from a pipe (with callback)
 
int sceKernelTryReceiveMsgPipe (SceUID uid, void *message, unsigned int size, int unk1, void *unk2)
 Receive a message from a pipe.
 
int sceKernelCancelMsgPipe (SceUID uid, int *psend, int *precv)
 Cancel a message pipe.
 
int sceKernelReferMsgPipeStatus (SceUID uid, SceKernelMppInfo *info)
 Get the status of a Message Pipe.
 
SceUID sceKernelCreateVpl (const char *name, int part, int attr, unsigned int size, struct SceKernelVplOptParam *opt)
 Create a variable pool.
 
int sceKernelDeleteVpl (SceUID uid)
 Delete a variable pool.
 
int sceKernelAllocateVpl (SceUID uid, unsigned int size, void **data, unsigned int *timeout)
 Allocate from the pool.
 
int sceKernelAllocateVplCB (SceUID uid, unsigned int size, void **data, unsigned int *timeout)
 Allocate from the pool (with callback)
 
int sceKernelTryAllocateVpl (SceUID uid, unsigned int size, void **data)
 Try to allocate from the pool.
 
int sceKernelFreeVpl (SceUID uid, void *data)
 Free a block.
 
int sceKernelCancelVpl (SceUID uid, int *pnum)
 Cancel a pool.
 
int sceKernelReferVplStatus (SceUID uid, SceKernelVplInfo *info)
 Get the status of an VPL.
 
int sceKernelCreateFpl (const char *name, int part, int attr, unsigned int size, unsigned int blocks, struct SceKernelFplOptParam *opt)
 Create a fixed pool.
 
int sceKernelDeleteFpl (SceUID uid)
 Delete a fixed pool.
 
int sceKernelAllocateFpl (SceUID uid, void **data, unsigned int *timeout)
 Allocate from the pool.
 
int sceKernelAllocateFplCB (SceUID uid, void **data, unsigned int *timeout)
 Allocate from the pool (with callback)
 
int sceKernelTryAllocateFpl (SceUID uid, void **data)
 Try to allocate from the pool.
 
int sceKernelFreeFpl (SceUID uid, void *data)
 Free a block.
 
int sceKernelCancelFpl (SceUID uid, int *pnum)
 Cancel a pool.
 
int sceKernelReferFplStatus (SceUID uid, SceKernelFplInfo *info)
 Get the status of an FPL.
 
void _sceKernelReturnFromTimerHandler (void)
 Return from a timer handler (doesn't seem to do alot)
 
void _sceKernelReturnFromCallback (void)
 Return from a callback (used as a syscall for the return of the callback function)
 
int sceKernelUSec2SysClock (unsigned int usec, SceKernelSysClock *clock)
 Convert a number of microseconds to a SceKernelSysClock structure.
 
SceInt64 sceKernelUSec2SysClockWide (unsigned int usec)
 Convert a number of microseconds to a wide time.
 
int sceKernelSysClock2USec (SceKernelSysClock *clock, unsigned int *low, unsigned int *high)
 Convert a SceKernelSysClock structure to microseconds.
 
int sceKernelSysClock2USecWide (SceInt64 clock, unsigned *low, unsigned int *high)
 Convert a wide time to microseconds.
 
int sceKernelGetSystemTime (SceKernelSysClock *time)
 Get the system time.
 
SceInt64 sceKernelGetSystemTimeWide (void)
 Get the system time (wide version)
 
unsigned int sceKernelGetSystemTimeLow (void)
 Get the low 32bits of the current system time.
 
SceUID sceKernelCreateVTimer (const char *name, struct SceKernelVTimerOptParam *opt)
 Create a virtual timer.
 
int sceKernelDeleteVTimer (SceUID uid)
 Delete a virtual timer.
 
int sceKernelGetVTimerBase (SceUID uid, SceKernelSysClock *base)
 Get the timer base.
 
SceInt64 sceKernelGetVTimerBaseWide (SceUID uid)
 Get the timer base (wide format)
 
int sceKernelGetVTimerTime (SceUID uid, SceKernelSysClock *time)
 Get the timer time.
 
SceInt64 sceKernelGetVTimerTimeWide (SceUID uid)
 Get the timer time (wide format)
 
int sceKernelSetVTimerTime (SceUID uid, SceKernelSysClock *time)
 Set the timer time.
 
SceInt64 sceKernelSetVTimerTimeWide (SceUID uid, SceInt64 time)
 Set the timer time (wide format)
 
int sceKernelStartVTimer (SceUID uid)
 Start a virtual timer.
 
int sceKernelStopVTimer (SceUID uid)
 Stop a virtual timer.
 
int sceKernelSetVTimerHandler (SceUID uid, SceKernelSysClock *time, SceKernelVTimerHandler handler, void *common)
 Set the timer handler.
 
int sceKernelSetVTimerHandlerWide (SceUID uid, SceInt64 time, SceKernelVTimerHandlerWide handler, void *common)
 Set the timer handler (wide mode)
 
int sceKernelCancelVTimerHandler (SceUID uid)
 Cancel the timer handler.
 
int sceKernelReferVTimerStatus (SceUID uid, SceKernelVTimerInfo *info)
 Get the status of a VTimer.
 
void _sceKernelExitThread (void)
 Exit the thread (probably used as the syscall when the main thread returns.
 
enum SceKernelIdListType sceKernelGetThreadmanIdType (SceUID uid)
 Get the type of a threadman uid.
 
SceUID sceKernelRegisterThreadEventHandler (const char *name, SceUID threadID, int mask, SceKernelThreadEventHandler handler, void *common)
 Register a thread event handler.
 
int sceKernelReleaseThreadEventHandler (SceUID uid)
 Release a thread event handler.
 
int sceKernelReferThreadEventHandlerStatus (SceUID uid, struct SceKernelThreadEventHandlerInfo *info)
 Refer the status of an thread event handler.
 
PspDebugProfilerRegssceKernelReferThreadProfiler (void)
 Get the thread profiler registers.
 
PspDebugProfilerRegssceKernelReferGlobalProfiler (void)
 Get the globile profiler registers.