Shinobi Library - ファイバ関数

syFbrSetCallback

ファイバ切り替え時に呼び出されるコールバック関数を登録

書式

Void syFbrSetCallback( callback )
Void (*callback)(SYFBR,SYFBR)

引数

callback   ファイバ切り替え時に呼ばれるコールバック関数のアドレス

戻り値

なし

解説

ファイバ切り替え時に呼ばれるコールバック関数を登録します。

コールバック関数の形式は以下のとおりです。
    Void callback( SYFBR oldFiber, SYFBR newFiber ){
      ...
    }

ここで引数 oldFiberには現在のファイバのハンドル、引数newFiberには切り替える先のファイバのハンドルがセットされます。

この関数は、割り込み禁止状態(SR.IMASK=15)で呼ばれますが、 関数が終了するまで割り込みを許可してはいけません。

コールバックの呼び出しを止めるためには、syFbrSetCallback()関数に引数NULLを渡します。


用例

extern Void func(SYFBR,SYFBR) ;
	...
syFbrSetCallback( func ) ;
	...
Void func( SYFBR old, SYFBR new )
{
	 ...
}


備考

コールバック関数の呼び出されるきっかけは、現在のファイバのコンテキストを保存後、次のファイバのコンテキストの復帰前です。

コールバック関数が使用するスタックは、現在のファイバのスタックです。

コールバック関数内での処理は極めて制限されます。フラグの更新を行うなどの処理のとどめて下さい。


syFbrSetCallback
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000