Everything

sus_tsk

isus_tsk

概要
SUSPENDED状態への移行
C言語形式
 ER      sus_tsk ( ID tskid );
 ER      isus_tsk ( ID tskid );
パラメータ
I/O
パラメータ
説明
I
 ID      tskid;
タスクのID
TSK_SELF: 自タスク
数値: タスクのID

機能
tskidで指定されたタスクをRUNNING状態からSUSPENDED状態へ,READY状態からSUSPENDED状態へ,またはWAITING状態からWAITING-SUSPENDED状態へと遷移させます。
ただし,本サービス・コールを発行した際,対象タスクがSUSPENDED状態またはWAITING-SUSPENDED状態へと遷移していた場合には,戻り値としてE_QOVRを返します。
備考 RI600PXでは,サスペンド要求のネストはできません。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_ID
-18
不正ID番号
- tskid < 0
- tskid > VTMAX_TSK
- isus_tskを発行した際,tskidTSK_SELFを指定した。
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- タスクからisus_tskを発行した。
- 非タスクからsus_tskを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
- ディスパッチ禁止状態で,自タスクを指定した。
E_MACV
-26
メモリ・アクセス違反(sus_tskのみ)
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
E_OBJ
-41
オブジェクト状態エラー
- 対象タスクがDORMANT状態である。
- ディスパッチ禁止状態のときに,isus_tskでtskidに実行状態のタスクを指定
E_NOEXS
-42
オブジェクト未生成
- tskidのタスクが存在しない。
E_QOVR
-43
キューイング・オーバフロー
- 対象タスクがSUSPENDED状態またはWAITING-SUSPENDED状態である。