機能
スレッドを作成。作成のみ
スタートは別関数で
API
SceUID sceKernelCreateThread(const char *name, SceKernelThreadEntry entry, int initPriority,int stackSize, SceUInt attr, SceKernelThreadOptParam *option);
pspthreadman.hで宣言してあります。
pspkernel.hでもおk
第一引数
スレッドの名前
第二引数
作るスレッドで実行したい関数を指定
int 関数名(SceSize args,void *argp){……}
みたいなプロトタイプで。
第三引数
スレッドの優先度。値が小さいほど優先度が高くなります。
第四引数
スタックのサイズ
第5引数
スレッド属性
enum PspThreadAttributes
{
/** VFPUのアクセスを許可します。 */
PSP_THREAD_ATTR_VFPU = 0x00004000,
/** ユーザーモードでスレッドを開始します。
ユーザーモードのスレッドから作成する場合は不要です */
PSP_THREAD_ATTR_USER = 0x80000000,
/** スレッドはUSB/無線LANのAPIの一部です。 */
PSP_THREAD_ATTR_USBWLAN = 0xa0000000,
/** スレッドはXMBのプログラム一部?? */
PSP_THREAD_ATTR_VSH = 0xc0000000,
/** スクラッチパッドの使用を許可します。 */
/* システムソフトウェア1.00では使用できません。*/
PSP_THREAD_ATTR_SCRATCH_SRAM = 0x00008000,
/** スタックを0xffで埋める作動を抑制します。 */
PSP_THREAD_ATTR_NO_FILLSTACK = 0x00100000,
/** スレッドが削除されると、スタックが消去されます。 */
PSP_THREAD_ATTR_CLEAR_STACK = 0x00200000,
};
で指定。
第6引数
オプション指定
struct SceKernelThreadOptParam {
/** Size of the ::SceKernelThreadOptParam structure. */
SceSize size;
/** UID of the memory block (?) allocated for the thread's stack. */
SceUID stackMpid;
};
しなくてよさそう。0で
戻り値
作ったスレッドのUIDかエラーコードがかえります。
最終更新:2009年03月01日 11:38