ルネサス
wai_sem 概要 資源の獲得 C言語形式 ER wai_sem ( ID semid ); パラメータ I/O パラメータ 説明 I ID semid; セマフォのID 機能 semidで指定されたセマフォから資源を獲得(セマフォ・カウンタから1を減算)します。 ただし,本サービス・コールを発行した際,対象セマフォから資源を獲得することができなかった(空き資源が存在しなかった)場合には,資源の獲得は行わず,自タスクを対象セマフォの待ちキューにキューイングしたのち,RUNNING状態からWAITING状態(資源獲得待ち状態)へと遷移させます。 なお,資源獲得待ち状態の解除は,以下の場合に行われます。 資源獲得待ち状態の解除操作 戻り値 sig_semの発行により,対象セマフォに資源が返却された。 E_OK isig_semの発行により,対象セマフォに資源が返却された。 E_OK rel_waiの発行により,待ち状態を強制的に解除された。 E_RLWAI irel_waiの発行により,待ち状態を強制的に解除された。 E_RLWAI del_semの発行により,待ち状態を強制的に解除された。 E_DLT 備考 自タスクを対象セマフォの待ちキューにキューイングする際のキューイング方式は,セマフォの生成時に指定した順(FIFO順または現在優先度順)に行われます。 戻り値 マクロ 数値 意味 E_OK 0 正常終了 E_ID -18 不正ID番号 - semid≦0 - semid > VTMAX_SEM E_CTX -25 コンテキスト・エラー - 非タスクから本サービス・コールを発行した。 - CPUロック状態から本サービス・コールを発行した。 - ディスパッチ禁止状態から本サービス・コールを発行した。 - 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。 E_MACV -26 メモリ・アクセス違反 - スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。 E_NOEXS -42 オブジェクト未生成 - semidのセマフォが存在しない。 E_RLWAI -49 待ち状態の強制解除 - rel_waiまたはirel_waiの発行により,待ち状態を強制的に解除された。 E_DLT -51 待ちオブジェクトの削除 - del_semの発行により,待ち状態を強制的に解除された。
ER wai_sem ( ID semid );
ID semid;