第 3 章 従来機能の変更 25
3.7 時間管理機能
3.7.3 アラームハンドラ
CRA_ALM
アラームハンドラの生成(静的 API,アクセス許可指定)cra_alm
アラームハンドラの生成(アクセス許可指定)acra_alm
アラームハンドラの生成(ID番号自動割付け,アクセス許可指定)【静的 API】
CRA_ALM ( ID almid, { ATR almatr, VP_INT exinf, FP almhdr }, ACVCT acvct ) ;
【 C言語 API】
ER ercd = cra_alm ( ID almid, T_CALM *pk_calm, ACVCT *p_acvct ) ;
ER_ID almid = acra_alm ( T_CALM *pk_calm, ACVCT *p_acvct ) ;
【パラメータ】
ID almid 生成対象のアラームハンドラの ID番号
T_CALM * pk_calm アラームハンドラ生成情報を入れたパケット
へのポインタ(静的 APIではパケットの内容を 直接記述する)
ACVCT acvct アラームハンドラのアクセス許可ベクタ
pk_calmの内容( T_CALM型)
ATR almatr アラームハンドラ属性
VP_INT exinf アラームハンドラの拡張情報
FP almhdr アラームハンドラの起動番地
(実装独自に他の情報を追加してもよい)
【リターンパラメータ】
cra_almの場合
ER ercd 正常終了( E_OK)またはエラーコード acra_almの場合
ER_ID almid 生成したアラームハンドラの ID番号(正の値)
またはエラーコード
【エラーコード】
E_ID 不正 ID番号( almidが不正あるいは使用できない)
E_NOID ID番号不足(割付け可能なアラームハンドラ IDがない)
E_RSATR 予約属性( almatrが不正あるいは使用できない)
E_PAR パラメータエラー( pk_calm,almhdr, p_acvct,acvct が不正)
E_OBJ オブジェクト状態エラー(対象アラームハンドラが登録
済み)
【機能】
almidで指定される ID番号を持つアラームハンドラを,pk_calmで指定される アラームハンドラ生成情報に基づいて生成する. CRE_ALM/ cre_alm/ acre_almとの違いは,生成するアラームハンドラに, acvctで指定されるアク セス許可ベクタを設定することのみである.
sac_alm
アラームハンドラのアクセス許可ベクタの変更【 C言語 API】
ER ercd = sac_alm ( ID almid, ACVCT *p_acvct ) ;
【パラメータ】
ID almid 変更対象のアラームハンドラの ID番号
ACVCT acvct アラームハンドラのアクセス許可ベクタ
【リターンパラメータ】
ER ercd 正常終了( E_OK)またはエラーコード
【エラーコード】
E_ID 不正 ID番号( almidが不正あるいは使用できない)
E_PAR パラメータエラー( p_acvct, acvctが不正)
E_NOEXS オブジェクト未生成(対象アラームハンドラが未登録)
【機能】
almidで指定されるアラームハンドラに対するアクセス許可ベクタを, acvct
で指定されるアクセス許可ベクタに設定する.
ref_alm
アラームハンドラの状態参照【 C言語 API】
ER ercd = ref_alm ( ID almid, T_RALM *pk_ralm ) ;
【パラメータ】
ID almid 状態参照対象のアラームハンドラの ID番号
T_RALM * pk_ralm アラームハンドラ状態を返すパケットへのポ
インタ
【リターンパラメータ】
ER ercd 正常終了( E_OK)またはエラーコード pk_ralmの内容( T_RALM型)
STAT almstat アラームハンドラの動作状態
RELTIM lefttim アラームハンドラの起動時刻までの時間
ACVCT acvct アラームハンドラのアクセス許可ベクタ
(実装独自に他の情報を追加してもよい)
【エラーコード】
E_ID 不正 ID番号( almidが不正あるいは使用できない)
E_PAR パラメータエラー( pk_ralmが不正)
E_NOEXS オブジェクト未生成(対象アラームハンドラが未登録)
【機能】
almidで指定されるアラームハンドラに関する状態を参照し, pk_ralmで指定 されるパケットに返す. µITRON4.0仕様との違いは, acvctに対象アラームハ ンドラのアクセス許可ベクタを返すことのみである.