機能

スレッドを作成。作成のみ
スタートは別関数で

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かエラーコードがかえります。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年03月01日 11:38