kernel.h

μITRON4.0仕様標準インクルードファイル [詳細]

#include <t_stddef.h>
#include <itron.h>
#include <sys_defs.h>
#include <cpu_defs.h>
#include <t_syslog.h>

kernel.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

データ構造

struct  t_msg
 メールボックスのメッセージヘッダ [詳細]
struct  t_msg_pri
 優先度付きメッセージヘッダ [詳細]

マクロ定義

#define TROUND_VP(sz)   (((sz) + sizeof(VP) - 1) & ~(sizeof(VP) - 1))
#define TCOUNT_VP(sz)   (((sz) + sizeof(VP) - 1) / sizeof(VP))
オブジェクト属性の定義
#define TA_HLNG   0x00u
 高級言語用インタフェース
#define TA_ASM   0x01u
 アセンブリ言語用インタフェース
#define TA_TFIFO   0x00u
 タスクの待ち行列をFIFO順に
#define TA_TPRI   0x01u
 タスクの待ち行列を優先度順に
#define TA_MFIFO   0x00u
 メッセージキューをFIFO順に
#define TA_MPRI   0x02u
 メッセージキューを優先度順に
#define TA_ACT   0x02u
 タスクを起動された状態で生成
#define TA_WSGL   0x00u
 イベントフラグの待ちタスクを1つに
#define TA_CLR   0x04u
 イベントフラグのクリア指定
#define TA_STA   0x02u
 周期ハンドラを動作状態で生成
サービスコールの動作モードの定義
#define TWF_ANDW   0x00u
 イベントフラグのAND待ち
#define TWF_ORW   0x01u
 イベントフラグのOR待ち
その他の定数の定義
#define TSK_SELF   0
 自タスク指定
#define TSK_NONE   0
 該当するタスクがない
#define TPRI_SELF   0
 自タスクのベース優先度の指定
#define TPRI_INI   0
 タスクの起動時優先度の指定
優先度の範囲
#define TMIN_TPRI   1
 タスク優先度の最小値
#define TMAX_TPRI   16
 タスク優先度の最大値
#define TMIN_MPRI   1
 メッセージ優先度の最小値
#define TMAX_MPRI   16
 メッセージ優先度の最大値
バージョン情報
#define TKERNEL_MAKER   0x0118u
 カーネルのメーカーコード
#define TKERNEL_PRID   0x0001u
 カーネルの識別番号
#define TKERNEL_SPVER   0x5402u
 ITRON仕様のバージョン番号
#define TKERNEL_PRVER   0x1042u
 カーネルのバージョン番号
キューイング/ネスト回数の最大値
#define TMAX_ACTCNT   1
 起動要求キューイング数の最大値
#define TMAX_WUPCNT   1
 起床要求キューイング数の最大値
#define TMAX_SUSCNT   1
 強制待ち要求ネスト数の最大値
ビットパターンのビット数
#define TBIT_TEXPTN   (sizeof(TEXPTN) * CHAR_BIT)
 タスク例外要因のビット数
#define TBIT_FLGPTN   (sizeof(FLGPTN) * CHAR_BIT)
 イベントフラグのビット数

型定義

typedef UINT TEXPTN
 タスク例外要因のビットパターン
typedef UINT FLGPTN
 イベントフラグのビットパターン
typedef t_msg T_MSG
 メールボックスのメッセージヘッダ
typedef t_msg_pri T_MSG_PRI
 優先度付きメッセージヘッダ

関数

ER act_tsk (ID tskid) throw ()
 タスクの起動
ER iact_tsk (ID tskid) throw ()
 タスクの起動 (非タスクコンテキスト用)
ER_UINT can_act (ID tskid) throw ()
 タスク起動要求のキャンセル
void ext_tsk (void) throw ()
 自タスクの終了
ER ter_tsk (ID tskid) throw ()
 タスクの強制終了
ER chg_pri (ID tskid, PRI tskpri) throw ()
 変更対象のタスク優先度の変更
ER get_pri (ID tskid, PRI *p_tskpri) throw ()
 タスク優先度の参照
ER slp_tsk (void) throw ()
 起床待ち
ER tslp_tsk (TMO tmout) throw ()
 起床待ち (タイムアウトあり)
ER wup_tsk (ID tskid) throw ()
 タスクの起床
ER iwup_tsk (ID tskid) throw ()
 タスクの起床 (非タスクコンテキスト用)
ER_UINT can_wup (ID tskid) throw ()
 タスク起床要求のキャンセル
ER rel_wai (ID tskid) throw ()
 待ち状態の強制解除
ER irel_wai (ID tskid) throw ()
 待ち状態の強制解除 (非タスクコンテキスト用)
ER sus_tsk (ID tskid) throw ()
 強制待ち状態への移行
ER rsm_tsk (ID tskid) throw ()
 強制待ち状態からの再開
ER frsm_tsk (ID tskid) throw ()
 強制待ち状態からの強制再開
ER dly_tsk (RELTIM dlytim) throw ()
ER ras_tex (ID tskid, TEXPTN rasptn) throw ()
 タスク例外処理の要求
ER iras_tex (ID tskid, TEXPTN rasptn) throw ()
 タスク例外処理の要求 (非タスクコンテキスト用)
ER dis_tex (void) throw ()
 タスク例外処理の禁止
ER ena_tex (void) throw ()
 タスク例外処理の許可
BOOL sns_tex (void) throw ()
 タスク例外処理禁止状態の参照
ER sig_sem (ID semid) throw ()
 セマフォ資源の返却
ER isig_sem (ID semid) throw ()
 セマフォ資源の返却 (非タスクコンテキスト用)
ER wai_sem (ID semid) throw ()
 セマフォ資源の獲得
ER pol_sem (ID semid) throw ()
 セマフォ資源の獲得 (ポーリング)
ER twai_sem (ID semid, TMO tmout) throw ()
 セマフォ資源の獲得 (タイムアウトあり)
ER set_flg (ID flgid, FLGPTN setptn) throw ()
 イベントフラグのセット
ER iset_flg (ID flgid, FLGPTN setptn) throw ()
 イベントフラグのセット (非タスクコンテキスト用)
ER clr_flg (ID flgid, FLGPTN clrptn) throw ()
 イベントフラグのクリア
ER wai_flg (ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn) throw ()
 イベントフラグ待ち
ER pol_flg (ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn) throw ()
 イベントフラグ待ち (ポーリング)
ER twai_flg (ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn, TMO tmout) throw ()
 イベントフラグ待ち (タイムアウトあり)
ER snd_dtq (ID dtqid, VP_INT data) throw ()
 データキューへの送信
ER psnd_dtq (ID dtqid, VP_INT data) throw ()
 データキューへの送信 (ポーリング)
ER ipsnd_dtq (ID dtqid, VP_INT data) throw ()
 データキューへの送信 (ポーリング,非タスクコンテキスト用)
ER tsnd_dtq (ID dtqid, VP_INT data, TMO tmout) throw ()
 データキューへの送信
ER fsnd_dtq (ID dtqid, VP_INT data) throw ()
 データキューへの強制送信
ER ifsnd_dtq (ID dtqid, VP_INT data) throw ()
 データキューへの強制送信 (非タスクコンテキスト用)
ER rcv_dtq (ID dtqid, VP_INT *p_data) throw ()
 データキューからの受信
ER prcv_dtq (ID dtqid, VP_INT *p_data) throw ()
 データキューからの受信 (ポーリング)
ER trcv_dtq (ID dtqid, VP_INT *p_data, TMO tmout) throw ()
 データキューからの受信 (タイムアウトあり)
ER snd_mbx (ID mbxid, T_MSG *pk_msg) throw ()
 メールボックスへの送信
ER rcv_mbx (ID mbxid, T_MSG **ppk_msg) throw ()
 メールボックスからの受信
ER prcv_mbx (ID mbxid, T_MSG **ppk_msg) throw ()
 メールボックスからの受信 (ポーリング)
ER trcv_mbx (ID mbxid, T_MSG **ppk_msg, TMO tmout) throw ()
 メールボックスからの受信 (タイムアウトあり)
ER get_mpf (ID mpfid, VP *p_blk) throw ()
 固定長メモリブロックの獲得
ER pget_mpf (ID mpfid, VP *p_blk) throw ()
 固定長メモリブロックの獲得 (ポーリング)
ER tget_mpf (ID mpfid, VP *p_blk, TMO tmout) throw ()
 固定長メモリブロックの獲得 (タイムアウトあり)
ER rel_mpf (ID mpfid, VP blk) throw ()
 固定長メモリブロックの返却
ER set_tim (const SYSTIM *p_systim) throw ()
 システム時刻の設定
ER get_tim (SYSTIM *p_systim) throw ()
 システム時刻の参照
ER isig_tim (void) throw ()
 タイムティックの供給
ER sta_cyc (ID cycid) throw ()
 周期ハンドラの動作開始
ER stp_cyc (ID cycid) throw ()
 周期ハンドラの動作停止
ER rot_rdq (PRI tskpri) throw ()
 タスクの優先順位の回転
ER irot_rdq (PRI tskpri) throw ()
 タスクの優先順位の回転 (非タスクコンテキスト用)
ER get_tid (ID *p_tskid) throw ()
 実行状態のタスクIDの参照
ER iget_tid (ID *p_tskid) throw ()
 実行状態のタスクIDの参照 (非タスクコンテキスト用)
ER loc_cpu (void) throw ()
 CPUロック状態への移行
ER iloc_cpu (void) throw ()
 CPUロック状態への移行 (非タスクコンテキスト用)
ER unl_cpu (void) throw ()
 CPUロック状態の解除
ER iunl_cpu (void) throw ()
 CPUロック状態の解除 (非タスクコンテキスト用)
ER dis_dsp (void) throw ()
 ディスパッチの禁止
ER ena_dsp (void) throw ()
 ディスパッチの許可
BOOL sns_ctx (void) throw ()
 コンテキストの参照
BOOL sns_loc (void) throw ()
 CPUロック状態の参照
BOOL sns_dsp (void) throw ()
 ディスパッチ禁止状態の参照
BOOL sns_dpn (void) throw ()
 ディスパッチ保留状態状態の参照
BOOL vxsns_ctx (VP p_excinf) throw ()
 CPU例外の発生したコンテキストの参照
BOOL vxsns_loc (VP p_excinf) throw ()
 CPU例外の発生した時のCPUロック状態の参照
BOOL vxsns_dsp (VP p_excinf) throw ()
 CPU例外の発生した時のディスパッチ禁止状態の参照
BOOL vxsns_dpn (VP p_excinf) throw ()
 CPU例外の発生した時のディスパッチ保留状態の参照
BOOL vxsns_tex (VP p_excinf) throw ()
 CPU例外の発生した時のタスク例外処理禁止状態の参照
BOOL vsns_ini (void) throw ()
 カーネル動作状態の参照


説明

μITRON4.0仕様標準インクルードファイル

このファイルでは,スタンダードプロファイルで必要なものと,JSPカーネル独自の拡張機能で必要なものだけを定義している.データ型の定義は,スタンダードプロファイルを満たすちょうどの長さにはしていない.

アセンブリ言語のソースファイルやシステムコンフィギュレーションファイルからこのファイルをインクルードする時は, _MACRO_ONLY を定義しておくことで,マクロ定義以外の記述を除くことができる.

このインクルードファイルは,標準インクルードファイル (t_services.hjsp_kernel.h) でインクルードされる.また,他の ITRON仕様OS からソフトウェアをポーティングする場合などには,このファイルを直接インクルードしてもよい.この例外を除いて,他のファイルから直接インクルードされることはない.

この中でインクルードしているファイルを除いて,他のインクルードファイルに依存していない.

kernel.h で定義されています。


マクロ定義

#define TA_ACT   0x02u

タスクを起動された状態で生成

参照元 task_initialize().

#define TA_ASM   0x01u

アセンブリ言語用インタフェース

#define TA_CLR   0x04u

イベントフラグのクリア指定

参照元 eventflag_cond().

#define TA_HLNG   0x00u

高級言語用インタフェース

#define TA_MFIFO   0x00u

メッセージキューをFIFO順に

#define TA_MPRI   0x02u

メッセージキューを優先度順に

参照元 snd_mbx().

#define TA_STA   0x02u

周期ハンドラを動作状態で生成

参照元 cyclic_initialize().

#define TA_TFIFO   0x00u

タスクの待ち行列をFIFO順に

#define TA_TPRI   0x01u

タスクの待ち行列を優先度順に

参照元 wobj_change_priority()wobj_queue_insert().

#define TA_WSGL   0x00u

イベントフラグの待ちタスクを1つに

#define TBIT_FLGPTN   (sizeof(FLGPTN) * CHAR_BIT)

イベントフラグのビット数

#define TBIT_TEXPTN   (sizeof(TEXPTN) * CHAR_BIT)

タスク例外要因のビット数

#define TCOUNT_VP ( sz   )     (((sz) + sizeof(VP) - 1) / sizeof(VP))

kernel.h94 行で定義されています。

#define TKERNEL_MAKER   0x0118u

カーネルのメーカーコード

#define TKERNEL_PRID   0x0001u

カーネルの識別番号

#define TKERNEL_PRVER   0x1042u

カーネルのバージョン番号

参照元 print_banner().

#define TKERNEL_SPVER   0x5402u

ITRON仕様のバージョン番号

#define TMAX_ACTCNT   1

起動要求キューイング数の最大値

#define TMAX_MPRI   16

メッセージ優先度の最大値

#define TMAX_SUSCNT   1

強制待ち要求ネスト数の最大値

#define TMAX_TPRI   16

タスク優先度の最大値

#define TMAX_WUPCNT   1

起床要求キューイング数の最大値

#define TMIN_MPRI   1

メッセージ優先度の最小値

参照元 snd_mbx().

#define TMIN_TPRI   1

タスク優先度の最小値

#define TPRI_INI   0

タスクの起動時優先度の指定

参照元 chg_pri().

#define TPRI_SELF   0

自タスクのベース優先度の指定

参照元 rot_rdq().

#define TROUND_VP ( sz   )     (((sz) + sizeof(VP) - 1) & ~(sizeof(VP) - 1))

kernel.h93 行で定義されています。

#define TSK_NONE   0

該当するタスクがない

参照元 iget_tid().

#define TSK_SELF   0

自タスク指定

#define TWF_ANDW   0x00u

イベントフラグのAND待ち

#define TWF_ORW   0x01u

イベントフラグのOR待ち

参照元 eventflag_cond()pol_flg()twai_flg()wai_flg().


型定義

typedef UINT FLGPTN

イベントフラグのビットパターン

kernel.h102 行で定義されています。

typedef struct t_msg T_MSG

メールボックスのメッセージヘッダ

typedef struct t_msg_pri T_MSG_PRI

優先度付きメッセージヘッダ

typedef UINT TEXPTN

タスク例外要因のビットパターン

kernel.h101 行で定義されています。


Copyright © 2006 by TAKAGI Nobuhisa.
Copyright © 2006 by Kijineko Inc..
このページは Mon Dec 18 17:19:24 2006 に Doxygen によって生成されました。
データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】