Everything

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を越えた