def_tex

概要

タスク例外処理ルーチンの定義

C言語形式

 ER      def_tex ( ID tskid, T_DTEX *pk_dtex );
パラメータ

I/O

パラメータ

説明

I

 ID      tskid;
タスクのID

TSK_SELF: 自タスク

数値: タスクのID

I

 T_DTEX  *pk_dtex;
NULL: タスク例外処理ルーチン定義解除

NULL以外: タスク例外処理ルーチン定義情報を格納した領域へのポインタ



【 タスク例外処理ルーチン定義情報T_DTEXの構造 】

 typedef struct  t_dtex {
         ATR     texatr;         /*タスク例外処理ルーチン属性*/
         FP      texrtn;         /*タスク例外処理ルーチンの実行開始アドレス*/
 } T_DTEX;


機能

本サービス・コールは,信頼されたドメインに所属するタスクからのみ呼び出せます。

tskidで指定されたタスクに対して,pk_dtexで指定された内容でタスク例外処理ルーチンを定義します。既にタスク例外処理ルーチンが定義されていた場合は,本サービス・コールによって定義内容が更新されます。

ただし,pk_dtexにNULLが指定された場合は,tskidで指定されたタスクのタスク例外処理ルーチンの定義を解除し,そのタスクの保留例外要因を0クリアし,さらにタスク例外禁止状態にします。

1 ) タスクID(tskid
タスク例外処理ルーチンを定義するタスクIDを指定します。tskid=TSK_SELF(=0)の指定により自タスクの指定になります。


2 ) タスク例外処理ルーチン属性(texatr
texatrには,TA_HLNGのみを指定できます。


- TA_HLNG(= 0x0000)
タスク例外処理ルーチンの記述言語は,C言語のみをサポートしています。


3 ) タスク例外処理ルーチンの実行開始アドレス(texrtn
texrtnには,タスク例外処理ルーチンの実行開始アドレスを指定します。


戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_RSATR

-11

予約属性

- texatr != TA_HLNG

E_PAR

-17

パラメータ・エラー

- pk_dtex != NULLで,texrtn == NULL

E_ID

-18

不正ID番号

- tskid < 0

- tskid > VTMAX_TSK

E_CTX

-25

コンテキスト・エラー

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

- 非タスクから本サービス・コールを発行した。

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

E_MACV

-26

メモリ・アクセス違反

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

- pk_dtex != NULLで,呼び出しタスクからのpk_dtexが示す領域に対するオペランド・リード・アクセス許可がない。

E_OACV

-27

オブジェクト・アクセス違反

- 呼出しタスクは,信頼されたドメインに所属していない。

E_NOEXS

-42

オブジェクト未生成

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