ルネサス
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 備考 自タスクを対象セマフォの待ちキューにキューイングする際のキューイング方式は,コンフィギュレーション時に定義された順(FIFO順または現在優先度順)に行われます。 戻り値 マクロ 数値 意味 E_OK 0 正常終了 E_ID -18 不正ID番号 - semid≦0 - semid>VTMAX_SEM E_CTX -25 コンテキスト・エラー - 非タスクから本サービス・コールを発行した。 - CPUロック状態から本サービス・コールを発行した。 - ディスパッチ禁止状態から本サービス・コールを発行した。 - 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。 E_RLWAI -49 待ち状態の強制解除 - rel_waiまたはirel_waiの発行により,待ち状態を強制的に解除された。
ER wai_sem ( ID semid );
ID semid;