sig_sem

isig_sem

概要

資源の返却

C言語形式

 ER      sig_sem ( ID semid );
 
 ER      isig_sem ( ID semid );
 

アセンブリ言語形式

 MOV     A, #semid
 CALL    !!_sig_sem
 
 MOV     A, #semid
 CALL    !!_isig_sem
 

パラメータ

I/O

パラメータ

説明

I

 ID      semid;
セマフォのID

 

機能

semidで指定されたセマフォに資源を返却(セマフォ・カウンタに0x1を加算)します。

ただし,本サービス・コールを発行した際,対象セマフォの待ちキューにタスクがキューイングされていた場合には,カウンタ操作処理は実行されず,該当タスク(待ちキューの先頭タスク)に資源が渡されます。

これにより,該当タスクは,待ちキューから外れ,WAITING状態(資源待ち状態)からREADY状態へ,またはWAITING-SUSPENDED状態からSUSPENDED状態へと遷移します。

備考1 本サービス・コールを発行した際,待ちキューの先頭タスクがREADY状態へと遷移する場合は,該当タスクの優先度に対応したレディ・キューの最後尾にキューイングし直す処理もあわせて実行されます。

備考2 RI78V4が管理しているセマフォ・カウンタは,7ビット幅で構成されています。このため,本サービス・コールの発行により,資源数が最大カウント値127を越える場合には,カウンタ操作処理は実行されず,戻り値として“E_QOVR”が返されます。

戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_QOVR

-43

資源数が127を越えた