rot_rdq

irot_rdq

概要

レディ・キューの回転

C言語形式

 

 ER      rot_rdq ( PRI tskpri );
 ER      irot_rdq ( PRI tskpri );
パラメータ

I/O

パラメータ

説明

I

 PRI     tskpri;
タスクの優先度

TPRI_SELF: 自タスクの現在優先度

数値: タスクの優先度



機能

tskpriで指定された優先度に対応したレディ・キューの先頭タスクを最後尾につなぎかえ,タスクの実行順序を明示的に変更します。

備考1 本サービス・コールでは,レディ・キューの対象優先度にタスクが1つもキューイングされていなかった場合には,何も処理は行わず,エラーとしても扱いません。

備考2 本サービス・コールを周期ハンドラなどから一定周期で発行することにより,ラウンドロビン・スケジューリングを実現することができます。

備考3 RI850V4におけるレディ・キューは,優先度をキーとしたハッシュ・テーブルであり,実行可能な状態(RUNNING状態,またはREADY状態)へと遷移したタスクの管理ブロック(タスク管理ブロック)がFIFO順でキューイングされます。このため,スケジューラは,起動された際にレディ・キューの優先度高位から検出処理を実行し,キューイングされているタスクを検出した場合には,該当優先度の先頭タスクにCPUの利用権を与えることにより,RI850V4のスケジューリング方式(優先度方式,FCFS方式)を実現しています。

戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_PAR

-17

優先度の指定が不正である

- tskpri<0x0

- 非タスクから本サービス・コールを発行した際,tskpriにTPRI_SELFを指定した

E_CTX

-25

CPUロック状態から本サービス・コールを発行した