📄 kernel.h
字号:
/* * TOPPERS/JSP Kernel * Toyohashi Open Platform for Embedded Real-Time Systems/ * Just Standard Profile Kernel * * Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory * Toyohashi Univ. of Technology, JAPAN * * 惧淡螟侯涪荚は·Free Software Foundation によって给山されている * GNU General Public License の Version 2 に淡揭されている掘凤か·笆 * 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ * アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· * 网脱と钙ぶ∷することを痰浸で钓满するˉ * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 * スコ〖ド面に崔まれていることˉ * (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ * ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 * に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· * この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 * み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ * (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する * ことˉ * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 * 巢からも·惧淡螟侯涪荚を倘勒することˉ * * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· * 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ * ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい * かなる禄巢に簇しても·その勒扦を砷わないˉ * * @(#) $Id: kernel.h,v 1.7 2002/04/08 05:29:20 hiro Exp $ *//* * μITRON4.0慌屯筛洁インクル〖ドファイル * * このファイルでは·スタンダ〖ドプロファイルで涩妥なものだけを年盗し * ているˉデ〖タ房の年盗は·スタンダ〖ドプロファイルを塔たすちょうど * の墓さにはしていないˉ * アセンブリ咐胳のソ〖スファイルやシステムコンフィギュレ〖ションファ * イルからこのファイルをインクル〖ドする箕は·_MACRO_ONLY を年盗して * おくことで·マクロ年盗笆嘲の淡揭を近くことができるˉ */#ifndef _KERNEL_H_#define _KERNEL_H_/* * ITRON慌屯鼎奶惮年のデ〖タ房ˇ年眶ˇマクロ */#include <itron.h>/* * システムやプロセッサに巴赂する年盗 */#include <sys_defs.h>#include <cpu_defs.h>/* * 输锦マクロ */#define TROUND_VP(sz) (((sz) + sizeof(VP) - 1) & ~(sizeof(VP) - 1))#define TCOUNT_VP(sz) (((sz) + sizeof(VP) - 1) / sizeof(VP))/* * デ〖タ房の年盗 */#ifndef _MACRO_ONLYtypedef UINT TEXPTN; /* タスク毋嘲妥傍のビットパタ〖ン */typedef UINT FLGPTN; /* イベントフラグのビットパタ〖ン */typedef struct t_msg { /* メ〖ルボックスのメッセ〖ジヘッダ */ struct t_msg *next;} T_MSG;typedef struct t_msg_pri { /* 庭黎刨烧きメッセ〖ジヘッダ */ T_MSG msgque; /* メッセ〖ジヘッダ */ PRI msgpri; /* メッセ〖ジ庭黎刨 */} T_MSG_PRI;#endif /* _MACRO_ONLY *//* * サ〖ビスコ〖ルの离咐 */#ifndef _MACRO_ONLY/* * タスク瓷妄怠墙 */extern ER act_tsk(ID tskid);extern ER iact_tsk(ID tskid);extern ER_UINT can_act(ID tskid);extern void ext_tsk(void);extern ER ter_tsk(ID tskid);extern ER chg_pri(ID tskid, PRI tskpri);extern ER get_pri(ID tskid, PRI *p_tskpri);/* * タスク烧掳票袋怠墙 */extern ER slp_tsk(void);extern ER tslp_tsk(TMO tmout);extern ER wup_tsk(ID tskid);extern ER iwup_tsk(ID tskid);extern ER_UINT can_wup(ID tskid);extern ER rel_wai(ID tskid);extern ER irel_wai(ID tskid);extern ER sus_tsk(ID tskid);extern ER rsm_tsk(ID tskid);extern ER frsm_tsk(ID tskid);extern ER dly_tsk(RELTIM dlytim);/* * タスク毋嘲借妄怠墙 */extern ER ras_tex(ID tskid, TEXPTN rasptn);extern ER iras_tex(ID tskid, TEXPTN rasptn);extern ER dis_tex(void);extern ER ena_tex(void);extern BOOL sns_tex(void);/* * 票袋ˇ奶慨怠墙 */extern ER sig_sem(ID semid);extern ER isig_sem(ID semid);extern ER wai_sem(ID semid);extern ER pol_sem(ID semid);extern ER twai_sem(ID semid, TMO tmout);extern ER set_flg(ID flgid, FLGPTN setptn);extern ER iset_flg(ID flgid, FLGPTN setptn);extern ER clr_flg(ID flgid, FLGPTN clrptn);extern ER wai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn);extern ER pol_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn);extern ER twai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn, TMO tmout);extern ER snd_dtq(ID dtqid, VP_INT data);extern ER psnd_dtq(ID dtqid, VP_INT data);extern ER ipsnd_dtq(ID dtqid, VP_INT data);extern ER tsnd_dtq(ID dtqid, VP_INT data, TMO tmout);extern ER fsnd_dtq(ID dtqid, VP_INT data);extern ER ifsnd_dtq(ID dtqid, VP_INT data);extern ER rcv_dtq(ID dtqid, VP_INT *p_data);extern ER prcv_dtq(ID dtqid, VP_INT *p_data);extern ER trcv_dtq(ID dtqid, VP_INT *p_data, TMO tmout);extern ER snd_mbx(ID mbxid, T_MSG *pk_msg);extern ER rcv_mbx(ID mbxid, T_MSG **ppk_msg);extern ER prcv_mbx(ID mbxid, T_MSG **ppk_msg);extern ER trcv_mbx(ID mbxid, T_MSG **ppk_msg, TMO tmout);/* * メモリプ〖ル瓷妄怠墙 */extern ER get_mpf(ID mpfid, VP *p_blk);extern ER pget_mpf(ID mpfid, VP *p_blk);extern ER tget_mpf(ID mpfid, VP *p_blk, TMO tmout);extern ER rel_mpf(ID mpfid, VP blk);/* * 箕粗瓷妄怠墙 */extern ER set_tim(SYSTIM *p_systim);extern ER get_tim(SYSTIM *p_systim);extern ER isig_tim(void);extern ER sta_cyc(ID cycid);extern ER stp_cyc(ID cycid);/* * システム觉轮瓷妄怠墙 */extern ER rot_rdq(PRI tskpri);extern ER irot_rdq(PRI tskpri);extern ER get_tid(ID *p_tskid);extern ER iget_tid(ID *p_tskid);extern ER loc_cpu(void);extern ER iloc_cpu(void);extern ER unl_cpu(void);extern ER iunl_cpu(void);extern ER dis_dsp(void);extern ER ena_dsp(void);extern BOOL sns_ctx(void);extern BOOL sns_loc(void);extern BOOL sns_dsp(void);extern BOOL sns_dpn(void);/* * 悸刘迫极サ〖ビスコ〖ル */extern BOOL vxsns_ctx(VP p_excinf);extern BOOL vxsns_loc(VP p_excinf);extern BOOL vxsns_dsp(VP p_excinf);extern BOOL vxsns_dpn(VP p_excinf);extern BOOL vxsns_tex(VP p_excinf);#endif /* _MACRO_ONLY *//* * オブジェクト掳拉の年盗 */#define TA_HLNG 0x00 /* 光甸咐胳脱インタフェ〖ス */#define TA_ASM 0x01 /* アセンブリ咐胳脱インタフェ〖ス */#define TA_TFIFO 0x00 /* タスクの略ち乖误をFIFO界に */#define TA_TPRI 0x01 /* タスクの略ち乖误を庭黎刨界に */#define TA_MFIFO 0x00 /* メッセ〖ジキュ〖をFIFO界に */#define TA_MPRI 0x02 /* メッセ〖ジキュ〖を庭黎刨界に */#define TA_ACT 0x02 /* タスクを弹瓢された觉轮で栏喇 */#define TA_WSGL 0x00 /* イベントフラグの略ちタスクを1つに */#define TA_CLR 0x04 /* イベントフラグのクリア回年 */#define TA_STA 0x02 /* 件袋ハンドラを瓢侯觉轮で栏喇 *//* * サ〖ビスコ〖ルの瓢侯モ〖ドの年盗 */#define TWF_ANDW 0x00 /* イベントフラグのAND略ち */#define TWF_ORW 0x01 /* イベントフラグの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 0x0002 /* カ〖ネルのメ〖カ〖コ〖ド */#define TKERNEL_PRID 0x0101 /* カ〖ネルの急侍戎规 */#define TKERNEL_SPVER 0x5401 /* ITRON慌屯のバ〖ジョン戎规 */#define TKERNEL_PRVER 0x1030 /* カ〖ネルのバ〖ジョン戎规 *//* * キュ〖イング】ネスト搀眶の呵络猛 */#define TMAX_ACTCNT 1 /* 弹瓢妥滇キュ〖イング眶の呵络猛 */#define TMAX_WUPCNT 1 /* 弹静妥滇キュ〖イング眶の呵络猛 */#define TMAX_SUSCNT 1 /* 动扩略ち妥滇ネスト眶の呵络猛 *//* * ビットパタ〖ンのビット眶 */#define TBIT_TEXPTN (sizeof(TEXPTN) * 8) /* タスク毋嘲妥傍のビット眶 */#define TBIT_FLGPTN (sizeof(FLGPTN) * 8) /* イベントフラグのビット眶 */#endif /* _KERNEL_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -