Everything

ref_tsk

iref_tsk

概要
タスク詳細情報の参照
C言語形式
 ER      ref_tsk ( ID tskid, T_RTSK *pk_rtsk );
 ER      iref_tsk ( ID tskid, T_RTSK *pk_rtsk );
パラメータ
I/O
パラメータ
説明
I
 ID      tskid;
タスクのID
TSK_SELF: 自タスク
数値: タスクのID
O
 T_RTSK  *pk_rtsk;
タスク詳細情報を格納する領域へのポインタ

【 タスク詳細情報T_RTSKの構造 】
 typedef struct  t_rtsk {
         STAT    tskstat;        /*現在状態*/
         PRI     tskpri;         /*現在優先度*/
         PRI     tskbpri;        /*ベース優先度*/
         STAT    tskwait;        /*待ち要因*/
         ID      wobjid;         /*待ちオブジェクトID*/
         TMO     lefttmo;        /*タイムアウトするまでの時間*/
         UINT    actcnt;         /*起動要求数*/
         UINT    wupcnt;         /*起床要求数*/
         UINT    suscnt;         /*サスペンド要求数*/
 } T_RTSK;

機能
tskidで指定されたタスクのタスク詳細情報(現在状態,現在優先度など)をpk_rtskで指定された領域に格納します。
- tskstat
タスクの現在状態が格納されます。
TTS_RUN: RUNNING状態
TTS_RDY: READY状態
TTS_WAI: WAITING状態
TTS_SUS: SUSPENDED状態
TTS_WAS: WAITING-SUSPENDED状態
TTS_DMT: DORMANT状態
- tskpri
タスクの現在優先度が格納されます。
tskpriは,tskstatがTTS_DMT以外の場合のみ有効です。
- tskbpri
タスクのベース優先度が格納されます。
tskbpriは,tskstatがTTS_DMT以外の場合のみ有効です。
- tskwait
タスクの待ち要因(WAITING状態の種類)が格納されます。
tskwaitは,tskstatがTTS_WAIまたはTTS_WASの場合のみ有効です。
TTW_SLPslp_tskまたはtslp_tskによる起床待ち状態
TTW_DLYdly_tskによる時間経過待ち状態
TTW_SEMwai_semまたはtwai_semによる資源獲得待ち状態
TTW_FLGwai_flgまたはtwai_flgによるイベントフラグ待ち状態
TTW_SDTQsnd_dtqまたはtsnd_dtqによるデータ送信待ち状態
TTW_RDTQrcv_dtqまたはtrcv_dtqによるデータ受信待ち状態
TTW_MBXrcv_mbxまたはtrcv_mbxによるメッセージ受信待ち状態
TTW_MTXloc_mtxまたはtloc_mtxによるミューテックス待ち状態
TTW_SMBFsnd_mbfまたはtsnd_mbfによるメッセージ送信待ち状態
TTW_RMBFrcv_mbfまたはtrcv_mbfによるメッセージ受信待ち状態
TTW_MPFget_mpfまたはtget_mpfによる固定長メモリ・ブロック獲得待ち状態
TTW_MPLget_mplまたはtget_mplによる可変長メモリ・ブロック獲得待ち状態
- wobjid
待ち対象のオブジェクト(セマフォ,イベントフラグなど)のIDが格納されます。
wobjidは,tskwaitがTTW_SEM,TTW_FLG,TTW_SDTQ,TTW_RDTQ,TTW_MBX,TTW_MTX,TTW_SMBF,TTW_RMBF,TTW_MPF,またはTTW_MPLの場合のみ有効です。
- lefttmo
タイムアウトまでの残り時間(単位:ミリ秒)が格納されます。永久待ちの場合は,TMO_FEVRが格納されます。
lefttmoは,tskstatがTTS_WAIまたはTTS_WASの場合で,かつtskwaitがTTW_DLY以外の場合のみ有効です。
備考 TTW_DLYの場合は,lefttmoは不定となります。
- actcnt
タスクの起動要求数が格納されます。
- wupcnt
タスクの起床要求数が格納されます。
wupcntは,tskstatがTTS_DMT以外の場合のみ有効です。
- suscnt
タスクのサスペンド要求数が格納されます。
suscntは,tskstatがTTS_DMT以外の場合のみ有効です。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_PAR
-17
パラメータ・エラー
- pk_rtsk == NULL
E_ID
-18
不正ID番号
- tskid < 0
- tskid > VTMAX_TSK
- 非タスクから本サービス・コールを発行した際,tskidTSK_SELFを指定した。
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
備考 タスクからiref_tskを発行した場合,および非タスクからref_tskを発行した場合,コンテキスト・エラーは検出されず,システムの正常な動作は保証されません。
E_MACV
-26
メモリ・アクセス違反(ref_tskのみ)
- 呼び出しタスクからのpk_rtskが示す領域に対するオペランド・ライト・アクセス許可がない。
E_NOEXS
-42
オブジェクト未生成
- tskidのタスクが存在しない。