ras_tex

iras_tex

概要

タスク例外処理の要求

C言語形式

 ER      ras_tex ( ID tskid, TEXPTN rasptn );
 ER      iras_tex ( ID tskid, TEXPTN rasptn );
パラメータ

I/O

パラメータ

説明

I

 ID      tskid;
タスクのID

TSK_SELF: 自タスク

数値: タスクのID

I

 TEXPTN  rasptn;
要求するタスク例外要因



機能

tskidで指定されたタスクに対して,タスク例外処理を要求します。対象タスクの保留例外要因を,rasptn で示された値との論理和に更新します。

本サービス・コール発行後,「6.2.3 タスク例外処理ルーチンの起動条件」に示す条件がすべて揃った場合には,RI600PXはタスク例外処理ルーチンを起動する処理を行います。

タスク例外処理ルーチン起動時には,保留例外要因は0クリアされ,タスク例外は禁止されます。タスク例外処理ルーチンには,引数として0クリア前の保留例外要因と,タスクの拡張情報が渡されます。

タスク例外処理ルーチンが終了すると,タスク例外許可状態に変更され,そのタスクはタスク例外処理ルーチン起動直前の地点から実行を再開します。

タスク例外処理ルーチンからのリターン時,RI600PXはタスクのユーザ・スタックにタスクのコンテキストレジスタを保存します。この処理においてユーザ・スタックのオーバー・フローを検出した場合は,システム・ダウンとなります。

タスク例外処理ルーチンでCPUロック状態に移行した場合,タスク例外処理ルーチンからリターンするまでにCPUロック状態を解除しなければなりません。CPUロック状態のままタスク例外処理ルーチンからリターンした場合,システム・ダウンとなります。

割り込み優先レベル(PSW.IPL)は,タスク例外処理ルーチンの起動前後,タスク例外処理ルーチンからのリターン前後で変化しません。割り込み優先レベルがカーネル割り込みマスクレベルより高い状態で,タスク例外処理ルーチンからリターンした場合は,システム・ダウンとなります。

戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_PAR

-17

パラメータ・エラー

- rasptn == 0

E_ID

-18

不正ID番号

- tskid < 0

- tskid > VTMAX_TSK

- iras_texを発行した際,tskidTSK_SELFを指定した。

E_CTX

-25

コンテキスト・エラー

- CPUロック状態から本サービス・コールを発行した。

- タスクからiras_texを発行した。

- 非タスクからras_texを発行した。

- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。

E_MACV

-26

メモリ・アクセス違反(ras_texのみ)

- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。

E_OBJ

-41

オブジェクト状態不正

- tskidのタスクがDORMANT状態である。

- tskidのタスクにタスク例外処理ルーチンが定義されていない。

E_NOEXS

-42

オブジェクト未生成

- tskidのタスクが存在しない。