Everything

cre_flg

acre_flg

概要
イベントフラグの生成
C言語形式
 ER      cre_flg ( ID flgid, T_CFLG *pk_cflg );
 ER_ID   acre_flg ( T_CFLG *pk_cflg );
パラメータ
I/O
パラメータ
説明
I
 ID      flgid;
イベントフラグのID
I
 T_CFLG  *pk_cflg;
イベントフラグ生成情報を格納した領域へのポインタ

【 イベントフラグ生成情報T_CFLGの構造 】
 typedef struct  t_cflg {
         ATR     flgatr;         /*イベントフラグ属性*/
         FLGPTN  iflgptn;        /*初期ビット・パターン*/
 } T_CFLG;

機能
本サービス・コールは,信頼されたドメインに所属するタスクからのみ呼び出せます。
cre_flgは,指定されたflgidのイベントフラグをpk_cflgで指定された内容で生成します。acre_flgはpk_cflgで指定された内容でイベントフラグを生成し,生成したイベントフラグIDを返します。
1 ) イベントフラグ属性(flgatr
flgatrには以下を指定できます。
   flgatr := ( ( TA_TFIFO || TA_TPRI ) | ( TA_WSGL || TA_WMUL ) | [TA_CLR] )
- TA_TFIFO(= 0x0000)
イベントフラグの待ちキューの順序をFIFO順とします。
- TA_TPRI(= 0x0001)
イベントフラグの待ちキューの順序をタスクの現在優先度順とします。ただし,同じ現在優先度のタスクの中ではFIFO順です。
なお,TA_CLRの指定がない場合は,TA_TPRIを指定してもタスクの待ち行列はFIFO順で管理されます。この振る舞いは,μITRON4.0仕様の範囲外です。
- TA_WSGL(= 0x0000)
イベントフラグに対し,複数のタスクが待つことを禁止します。
- TA_WMUL(= 0x0002)
イベントフラグに対し,複数のタスクが待つことを許可します。
- TA_CLR(= 0x0004)
wai_flgpol_flgipol_flg,およびtwai_flgが正常終了するときに,イベントフラグのすべてのビットをクリアします。
2 ) 初期ビット・パターン(iflgptn
イベントフラグの初期ビット・パターンを指定します。
戻り値
マクロ
数値
意味

正の値
acre_flgの正常終了(生成されたイベントフラグID)
E_OK
0
cre_flgの正常終了
E_RSATR
-11
予約属性
- flgatrのbit0,bit1,bit2以外のビットが1
E_PAR
-17
パラメータ・エラー
- pk_cflg == NULL
E_ID
-18
不正ID番号(cre_flgのみ)
- flgid≦0
- flgid > VTMAX_FLG
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- 非タスクから本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
E_MACV
-26
メモリ・アクセス違反
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
- 呼び出しタスクからのpk_cflgが示す領域に対するオペランド・リード・アクセス許可がない。
E_OACV
-27
オブジェクト・アクセス違反
- 呼出しタスクは,信頼されたドメインに所属していない。
E_NOID
-34
空きIDなし(acre_flgのみ)
E_OBJ
-41
オブジェクト状態不正(cre_flgのみ)
- flgidのイベントフラグが存在する。