Everything

cre_mtx

acre_mtx

概要
ミューテックスの生成
C言語形式
 ER      cre_mtx ( ID mtxid, T_CMTX *pk_cmtx );
 ER_ID   acre_mtx ( T_CMTX *pk_cmtx );
パラメータ
I/O
パラメータ
説明
I
 ID      mtxid;
ミューテックスのID
I
 T_CMTX  *pk_cmtx;
ミューテックス生成情報を格納した領域へのポインタ

【 ミューテックス生成情報T_CMTXの構造 】
 typedef struct  t_cmtx {
         ATR     mtxatr;         /*ミューテックス属性*/
         PRI     ceilpri;        /*上限優先度*/
 } T_CMTX;

機能
本サービス・コールは,信頼されたドメインに所属するタスクからのみ呼び出せます。
cre_mtxは,指定されたmtxidのミューテックスをpk_cmtxで指定された内容で生成します。acre_mtxはpk_cmtxで指定された内容でミューテックスを生成し,生成したミューテックスIDを返します。
1 ) ミューテックス属性(mtxatr
mtxatrにはTA_CEILINGのみを指定できます。
- TA_CEILING(= 0x0003)
優先度上限プロトコル
詳細は,「8.2.3 簡略化した優先度上限プロトコル」を参照してください。
備考 ミューテックスの待ちキューの順序はタスクの現在優先度順です。ただし,同じ現在優先度のタスクの中ではFIFO順です
2 ) 上限優先度(ceilpri
ミューテックスをロックしたタスクの現在優先度は,ceilpriに高められます。
ceilpriに指定可能な範囲は,1~TMAX_TPRIです。
戻り値
マクロ
数値
意味

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