Thread subsystem I.
More...
#include <gctypes.h>
#include <gcbool.h>
|
#define | LWP_ALREADY_SUSPENDED 1 |
|
#define | LWP_CLOSED -1 |
|
#define | LWP_NOT_SUSPENDED 2 |
|
#define | LWP_PRIO_HIGHEST 127 |
|
#define | LWP_PRIO_IDLE 0 |
|
#define | LWP_SUCCESSFUL 0 |
|
#define | LWP_THREAD_NULL 0xffffffff |
|
#define | LWP_TQUEUE_NULL 0xffffffff |
|
|
typedef u32 | lwp_t |
| typedef for the thread context handle
|
|
typedef u32 | lwpq_t |
| typedef for the thread queue's context handle
|
|
◆ LWP_CloseQueue()
void LWP_CloseQueue |
( |
lwpq_t |
thequeue | ) |
|
Close the thread synchronization queue and releas the handle.
- Parameters
-
[in] | thequeue | handle to the thread's synchronization queue |
- Returns
- none
◆ LWP_GetSelf()
lwp_t LWP_GetSelf |
( |
void |
| ) |
|
Return the handle to the current thread.
- Returns
- thread context handle
◆ LWP_InitQueue()
void LWP_InitQueue |
( |
lwpq_t * |
thequeue | ) |
|
Initialize the thread synchronization queue.
- Parameters
-
[in] | thequeue | pointer to a lwpq_t handle. |
- Returns
- 0 on success, <0 on error
◆ LWP_JoinThread()
s32 LWP_JoinThread |
( |
lwp_t |
thethread, |
|
|
void ** |
value_ptr |
|
) |
| |
Join the given thread.
- Parameters
-
[in] | thethread | handle to the thread's context which should be joined to wait on termination. |
[in] | value_ptr | pointer-pointer to a variable to receive the return code of the terminated thread. |
- Returns
- 0 on success, <0 on error
◆ LWP_Reschedule()
void LWP_Reschedule |
( |
u32 |
prio | ) |
|
Reschedule all threads running at the given priority.
- Parameters
-
[in] | prio | priority level to reschedule |
- Returns
- none
◆ LWP_ResumeThread()
Resume the given thread.
- Parameters
-
[in] | thethread | handle to the thread context which should be resumed. |
- Returns
- 0 on success, <0 on error
◆ LWP_SetThreadPriority()
void LWP_SetThreadPriority |
( |
lwp_t |
thethread, |
|
|
u32 |
prio |
|
) |
| |
Set the priority of the given thread.
- Parameters
-
[in] | thethread | handle to the thread context whos priority should be changed. If NULL, the current thread will be taken. |
[in] | prio | new priority to set |
- Returns
- none
◆ LWP_SuspendThread()
s32 LWP_SuspendThread |
( |
lwp_t |
thethread | ) |
|
Suspend the given thread.
- Parameters
-
[in] | thethread | handle to the thread context which should be suspended. |
- Returns
- 0 on success, <0 on error
◆ LWP_ThreadBroadcast()
void LWP_ThreadBroadcast |
( |
lwpq_t |
thequeue | ) |
|
Removes all blocked threads from the thread synchronization queue and sets them back to running state.
- Parameters
-
[in] | thequeue | handle to the thread's synchronization queue to pop the blocked threads off |
- Returns
- none
◆ LWP_ThreadIsSuspended()
BOOL LWP_ThreadIsSuspended |
( |
lwp_t |
thethread | ) |
|
Test whether the given thread is suspended or not.
- Parameters
-
[in] | thethread | handle to the thread context which should be tested. |
- Returns
- TRUE or FALSE
◆ LWP_ThreadSignal()
void LWP_ThreadSignal |
( |
lwpq_t |
thequeue | ) |
|
Signals one thread to be revmoved from the thread synchronization queue and sets it back to running state.
- Parameters
-
[in] | thequeue | handle to the thread's synchronization queue to pop the blocked thread off |
- Returns
- none
◆ LWP_ThreadSleep()
Pushes the current thread onto the given thread synchronization queue and sets the thread state to blocked.
- Parameters
-
[in] | thequeue | handle to the thread's synchronization queue to push the thread on |
- Returns
- none
◆ LWP_YieldThread()
void LWP_YieldThread |
( |
void |
| ) |
|
Yield the current thread to another one with higher priority or if not running at the same priority which state is runnable.
- Returns
- none