loc_cpu

iloc_cpu

概要

CPUロック状態への移行

C言語形式

 ER      loc_cpu ( void );
 
 ER      iloc_cpu ( void );
 

アセンブリ言語形式

 CALL    !!_loc_cpu
 
 CALL    !!_iloc_cpu
 

パラメータ

なし

機能

システム状態種別をCPUロック状態へと変更します。

これにより,本サービス・コールの発行からunl_cpu,またはiunl_cpuが発行されるまでの間,“マスカブル割り込みの受け付け処理”が禁止されるとともに,サービス・コールの発行が制限されます。

なお,RI78V4では,本サービス・コールの発行からunl_cpu,またはiunl_cpuが発行されるまでの間にマスカブル割り込みが発生した場合には,該当割り込み処理(割り込みハンドラ)への移行をunl_cpu,またはiunl_cpuが発行されるまで遅延しています。

また,RI78V4では,CPUロック状態で発行可能なサービス・コールを以下に示したものに制限しています。

 
サービス・コール名

機能概要

CPUロック状態への移行

CPUロック状態の解除

コンテキスト種別の参照

CPUロック状態の参照

ディスパッチ禁止状態の参照

ディスパッチ保留状態の参照



備考1 本サービス・コールの発行により変更したCPUロック状態の解除は,本サービス・コールを発行した処理プログラムが終了する以前に行う必要があります。

備考2 本サービス・コールでは,ロック要求のキューイングが行われません。このため,システム状態種別がCPUロック状態であった場合には,何も処理は行わず,エラーとしても扱いません。

備考3 RI78V4では,割り込みマスク・フラグ・レジスタMKxx,および,プログラム・ステータス・ワードPSWのインサービス・プライオリティ・フラグISPxを操作して,“RI78V4の管理下にあるマスカブル割り込みの受け付け禁止”を実現しています。このため,本サービス・コールの発行からunl_cpu,またはiunl_cpuが発行されるまでの間,処理プログラムから該当レジスタを操作することは禁止されています。

戻り値

マクロ

数値

意味

E_OK

0

正常終了