#include <iris/os.h>
void OS_CreateThread(
OS_Thread* thread,
void (*func)(void),
void* stack,
u32 stackSize,
u32 prio );
| thread | 初期化するスレッド構造体へのポインタ |
| func | 実行を開始する関数へのポインタ |
| stack | スタックポインタの開始アドレス。スタックは下位方向に積まれていくので、 これは、スタックの最上位の位置にしなければならない点に注意してください。 アドレスは8バイトアラインメントされたものである必要があります。 |
| stackSize | スタックのサイズ。単位はバイトです。8の倍数である必要があります。 |
| prio | スレッドの優先順位。 0 がもっとも高い優先順位で、7 が最も低い優先順位です。OS_InitThread を呼び出したスレッドは、優先順位 7 を持ちます。GAMECUBE と違い同じ優先順位を持つスレッドを作成することは許されていません。 |
なし。
スレッドを作成します。
IRIS では作成できるスレッドの数を 8 つに制限しています。これは iris/os/thread.h の OS_THREAD_MAX_NUM で定義されています。ここの値を変更することで 32 個までのスレッドを作成することが可能です。
この関数で作成された直後のスレッドは休止状態になっていますので、OS_WakeupThreadDirect で明示的に動作状態にしてやる必要があります。
OS_InitThread, OS_SleepThread, OS_WakeupThread, OS_WakeupThreadDirect
2003/12/01 初版