-
cre_sem
acre_sem
-
ER cre_sem ( ID semid, T_CSEM *pk_csem );
ER_ID acre_sem ( T_CSEM *pk_csem );
|
|
|
|
ID semid;
|
|
|
T_CSEM *pk_csem;
|
|
typedef struct t_csem {
ATR sematr; /*セマフォ属性*/
UINT isemcnt; /*セマフォ資源数の初期値*/
UINT maxsem; /*セマフォ資源数の最大値*/
} T_CSEM;
|
本サービス・コールは,信頼されたドメインに所属するタスクからのみ呼び出せます。
cre_semは,指定された
semidのセマフォを
pk_csemで指定された内容で生成します。acre_semは
pk_csemで指定された内容でセマフォを生成し,生成したセマフォIDを返します。
1 ) セマフォ属性(
sematr)
sematrには以下を指定できます。
sematr := ( TA_TFIFO || TA_TPRI )
-
TA_TFIFO(= 0x0000)
セマフォの待ちキューの順序をFIFO順とします。
-
TA_TPRI(= 0x0001)
セマフォの待ちキューの順序をタスクの現在優先度順とします。ただし,同じ現在優先度のタスクの中ではFIFO順です。
2 ) セマフォ資源数の初期値(
isemcnt)
セマフォ資源数の初期値を,0~
maxsemの範囲で指定します。
3 ) セマフォ資源数の最大値(
maxsem)
セマフォ資源数の最大値を,1~
TMAX_MAXSEM(= 65535)の範囲で指定します。
|
|
|
|
|
acre_semの正常終了(生成されたセマフォID)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- CPUロック状態から本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
|
|
|
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
- 呼び出しタスクからの pk_csemが示す領域に対するオペランド・リード・アクセス許可がない。
|
|
|
- 呼出しタスクは,信頼されたドメインに所属していない。
|
|
|
|
|
|
|