Everything

dis_dsp

概要
ディスパッチの禁止
C言語形式
 ER      dis_dsp ( void );
パラメータ
なし
機能
システムをディスパッチ禁止状態へ移行させます。
ディスパッチ禁止状態では,タスクのスケジューリングが禁止されるため,他のタスクに対して排他的に処理を行うことができます。
ディスパッチ禁止状態へ遷移する操作は,以下の通りです。
- chg_imsによって割り込みマスク(PSW.IPL)を0以外に変更
また,ディスパッチ禁止状態を解除する操作は,以下の通りです。
- chg_imsによって割り込みマスク(PSW.IPL)を0に変更
備考1 本サービス・コールの発行により変更したディスパッチ禁止状態の解除は,本サービス・コールを発行したタスクがDORMANT状態へと遷移する以前に行う必要があります。
備考2 本サービス・コールでは,禁止要求のキューイングが行われません。このため,すでに本サービス・コールが発行され,システム状態種別がディスパッチ禁止状態へと変更されていた場合には,何も処理は行わず,エラーとしても扱いません。
備考3 ディスパッチ禁止状態の間に“自タスクを状態遷移させる可能性のあるサービス・コール(wai_semwai_flgなど)”を発行した場合には,要求条件の即時成立/不成立を問わず,戻り値としてE_CTXを返します。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_CTX
-25
コンテキスト・エラー
- 非タスクから本サービス・コールを発行した。
- CPUロック状態から本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。