unl_cpu

iunl_cpu

概要

CPUロック状態の解除

C言語形式

 

 ER      unl_cpu ( void );
 ER      iunl_cpu ( void );
パラメータ

なし

機能

システム状態種別をCPUロック状態からCPUロック解除状態へと変更します。これにより,loc_cpu,またはiloc_cpuの発行により抑制(禁止)されていた“EIレベル・マスカブル割り込みの受け付け”,および“サービス・コールの発行”が許可されます。

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

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

備考2 本サービス・コールでは,EIレベル・マスカブル割り込みの受け付け許可処理として,プライオリティ・マスク・レジスタPMRのPMnビットに対する操作を行います。
なお,操作対象となるPM
nビットは,コンフィギュレーション時に最大割り込み優先度maxintpriで定義した割り込み優先度範囲となります。
本サービス・コールでは,プログラム・ステータス・ワードPSWのIDビットに対する操作は行われません。


備考3 本サービス・コールでは,dis_dspの発行により変更されたディスパッチ禁止状態の解除処理は行われません。したがって,CPUロック状態以前のシステム状態種別がディスパッチ禁止状態であった場合には,本サービス・コール発行後のシステム状態種別は,ディスパッチ禁止状態となります。

備考4 RI850V4では,loc_cpu,またはiloc_cpuの発行から本サービス・コールが発行されるまでの間に“loc_cpuiloc_cpu,またはsns_xxx以外のサービス・コール”を発行した場合には,戻り値としてE_CTXを返します。

戻り値

マクロ

数値

意味

E_OK

0

正常終了