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