cre_alm

acre_alm

概要

アラーム・ハンドラの生成

C言語形式

 ER      cre_alm ( ID almid, T_CALM *pk_calm );
 ER_ID   acre_alm ( T_CALM *pk_calm );
パラメータ

I/O

パラメータ

説明

I

 ID      almid;
アラーム・ハンドラのID

I

 T_CALM  *pk_calm;
アラーム・ハンドラ生成情報を格納した領域へのポインタ



【 アラーム・ハンドラ生成情報T_CALMの構造 】

 typedef struct  t_calm {
         ATR     almatr;         /*アラーム・ハンドラ属性*/
         VP_INT  exinf;          /*拡張情報*/
         FP      almhdr;         /*アラーム・ハンドラの実行開始アドレス*/
 } T_CALM;


機能

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

cre_almは,指定されたalmidのアラーム・ハンドラをpk_calmで指定された内容で生成します。acre_almはpk_calmで指定された内容でアラーム・ハンドラを生成し,生成したアラーム・ハンドラIDを返します。

1 ) アラーム・ハンドラ属性(almatr
almatrには,TA_HLNGのみを指定できます。


- TA_HLNG(= 0x0000)
アラーム・ハンドラの記述言語は,C言語のみをサポートしています。


2 ) 拡張情報(exinf
exinfは,アラーム・ハンドラに引数として渡されます。exinf は,ユーザが生成するアラーム・ハンドラに関する情報を設定するなどの目的で自由に使用できます。


3 ) アラーム・ハンドラの実行開始アドレス(almhdr
almhdrには,アラーム・ハンドラの実行開始アドレスを指定します。


戻り値

マクロ

数値

意味



正の値

acre_almの正常終了(生成されたアラーム・ハンドラID)

E_OK

0

cre_almの正常終了

E_RSATR

-11

予約属性

- almatr != TA_HLNG

E_PAR

-17

パラメータ・エラー

- pk_calm == NULL

- almhdr == NULL

E_ID

-18

不正ID番号(cre_almのみ)

- almid≦0

- almid > VTMAX_CYH

E_CTX

-25

コンテキスト・エラー

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

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

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

E_MACV

-26

メモリ・アクセス違反

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

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

E_OACV

-27

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

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

E_NOID

-34

空きIDなし(acre_almのみ)

E_OBJ

-41

オブジェクト状態不正(cre_almのみ)

- almidのアラーム・ハンドラが存在する。