cre_tsk
acre_tsk
ER cre_tsk ( ID tskid, T_CTSK *pk_ctsk );
ER_ID acre_tsk ( T_CTSK *pk_ctsk );
typedef struct t_ctsk { ATR tskatr; /*タスク属性*/ VP_INT exinf; /*拡張情報*/ FP task; /*タスクの実行開始アドレス*/ PRI itskpri; /*タスク起動時優先度*/ SIZE stksz; /*ユーザ・スタック・サイズ(バイト数)*/ VP stk; /*ユーザ・スタック領域の先頭アドレス*/ } T_CTSK; |
tskatr := ( TA_HLNG | [TA_ACT] | [TA_DOM(domid)] )
- TA_ACT(= 0x0002)
TA_ACTを指定すると,生成されたタスクは起動され,READY状態になります。タスク起動時に行われる処理は,表19-3の通りです。TA_ACTを指定しない場合は,生成されたタスクはDORMANT状態になります。
TA_ACTを指定すると,生成されたタスクは起動され,READY状態になります。タスク起動時に行われる処理は,表19-3の通りです。TA_ACTを指定しない場合は,生成されたタスクはDORMANT状態になります。
- TA_DOM(domid)
domidには,所属するドメインIDを指定します。domidにTDOM_SELFを指定した場合,およびTA_DOM(domid)の指定を省略した場合は,本サービス・コールを呼び出したタスクと同じドメインとします。
domidには,所属するドメインIDを指定します。domidにTDOM_SELFを指定した場合,およびTA_DOM(domid)の指定を省略した場合は,本サービス・コールを呼び出したタスクと同じドメインとします。
2 ) 拡張情報(exinf)
TA_ACT属性,またはact_tsk, iact_tskによってタスクが起動された場合,exinfがタスクに引数として渡されます。また,exinfはタスク例外処理ルーチンにも引数として渡されます。exinf は,ユーザが生成するタスクに関する情報を設定するなどの目的で自由に使用できます。
TA_ACT属性,またはact_tsk, iact_tskによってタスクが起動された場合,exinfがタスクに引数として渡されます。また,exinfはタスク例外処理ルーチンにも引数として渡されます。exinf は,ユーザが生成するタスクに関する情報を設定するなどの目的で自由に使用できます。
5 ) ユーザ・スタック・サイズ(stksz),ユーザ・スタック領域の先頭アドレス(stk)
アプリケーション側でユーザ・スタック領域を確保し,その先頭アドレスをstkに,サイズをstkszに指定します。
ユーザ・スタック領域は,以下を満たす必要があります。
アプリケーション側でユーザ・スタック領域を確保し,その先頭アドレスをstkに,サイズをstkszに指定します。
ユーザ・スタック領域は,以下を満たす必要があります。