-
loc_cpu
iloc_cpu
-
ER loc_cpu ( void );
ER iloc_cpu ( void );
CPUロック状態では,タスクのスケジューリングは禁止され,カーネル管理割り込みもマスクされます。つまり,カーネル管理外割り込みハンドラを除くすべての処理プログラムに対して,排他的に処理を行うことができます。
ただし,CPUロック状態では,発行可能なサービス・コールは以下に制限されます。
備考1 本サービス・コールの発行により変更したCPUロック状態の解除は,本サービス・コールを発行した処理プログラムが終了する以前に行う必要があります。
備考2 本サービス・コールでは,ロック要求のキューイングが行われません。このため,すでに本サービス・コールが発行され,システム状態種別がCPUロック状態へと変更されていた場合には,何も処理は行わず,エラーとしても扱いません。
備考3 RI600V4では,一定周期で発生する基本クロック用タイマ割り込みを利用して
時間管理機能を実現しています。このため,本サービス・コールの発行により,該当基本クロック用タイマ割り込みの受け付けを禁止状態へと変更した際には,
時間管理機能が正常に動作しなくなる場合があります。
備考5
chg_imsによって割り込みマスクを0以外に変更している間は,loc_cpuはE_ILUSEエラーを返します。
|
|
|
|
|
|
|
|
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
備考 タスクからiloc_cpuを発行した場合,および非タスクからloc_cpuを発行した場合,コンテキスト・エラーは検出されず,システムの正常な動作は保証されません。
|
|
|
- タスクで chg_imsによって割り込みマスクを0以外に変更している状態から本サービス・コールを発行した。
|