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のミューテックスが存在する。