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 ) { ... }
コールバック関数の呼び出されるきっかけは、現在のファイバのコンテキストを保存後、次のファイバのコンテキストの復帰前です。コールバック関数が使用するスタックは、現在のファイバのスタックです。
コールバック関数内での処理は極めて制限されます。フラグの更新を行うなどの処理のとどめて下さい。