source: ssp_qb_r5f100le_cs/trunk/kernel/kernel_impl.h@ 95

Last change on this file since 95 was 95, checked in by nmir-saito, 9 years ago

ファイルの mime-type 変更

  • Property svn:mime-type set to text/plain; charset=shift_jis
File size: 5.2 KB
Line 
1/*
2 * TOPPERS/SSP Kernel
3 * Smallest Set Profile Kernel
4 *
5 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
6 * Toyohashi Univ. of Technology, JAPAN
7 * Copyright (C) 2004-2008 by Embedded and Real-Time Systems Laboratory
8 * Graduate School of Information Science, Nagoya Univ., JAPAN
9 * Copyright (C) 2010 by Naoki Saito
10 * Nagoya Municipal Industrial Research Institute, JAPAN
11 *
12 * 上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ
13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
14 * 再配布(以下,利用と呼ぶ)することを無償で許諾する.
15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権
16 * 表示,この利用条件および下記の無保証規定が,そのままの形でソース
17 * コード中に含まれていること.
18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用
19 * できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ
20 * ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保
21 * 証規定を掲載すること.
22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用
23 * できない形で再配布する場合には,次のいずれかの条件を満たすこと.
24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作
25 * 権表示,この利用条件および下記の無保証規定を掲載すること.
26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報
27 * 告すること.
28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害
29 * からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また,
30 * 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ
31 * く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32 *
33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者およ
34 * びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す
35 * る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用
36 * により直接的または間接的に生じたいかなる損害に関しても,その責任を負
37 * わない.
38 *
39 */
40
41/*
42 * TOPPERS/SSPカーネル内部向け標準ヘッダファイル
43 *
44 * このヘッダファイルは,カーネルを構成するプログラムのソースファイル
45 * で必ずインクルードするべき標準ヘッダファイルである.
46 *
47 * アセンブリ言語のソースファイルからこのファイルをインクルードする時
48 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
49 * 除くようになっている.
50 */
51
52#ifndef TOPPERS_KERNEL_IMPL_H
53#define TOPPERS_KERNEL_IMPL_H
54
55/*
56 * カーネルの内部識別名のリネーム
57 */
58#include "kernel_rename.h"
59
60/*
61 * アプリケーションと共通のヘッダファイル
62 */
63#include <kernel.h>
64
65/*
66 * システムログ機能のための定義
67 */
68#include <t_syslog.h>
69
70/*
71 * 型キャストを行うマクロの定義
72 */
73#ifndef CAST
74#define CAST(type, val) ((type)(val))
75#endif /* CAST */
76
77/*
78 * ターゲット依存情報の定義
79 */
80#include "target_config.h"
81
82/*
83 * すべての関数をコンパイルするための定義
84 */
85#ifdef ALLFUNC
86#include "allfunc.h"
87#endif /* ALLFUNC */
88
89/*
90 * ビットフィールドでの符号無し整数型
91 *
92 * 8ビット以下の幅のビットフィールドで,符号無し整数値を保持したい場合
93 * に用いるべきデータ型.ANSI Cでは,ビットフィールドのデータ型には
94 * intとunsigned intしか許されないため,デフォルトの定義はunsigned
95 * intとしているが,ターゲットおよびツール依存で,unsigned charまたは
96 * unsigned shortに定義した方が効率が良い場合がある.
97 */
98#ifndef BIT_FIELD_UINT
99#define BIT_FIELD_UINT unsigned int
100#endif /* BIT_FIELD_UINT */
101
102/*
103 * ビットフィールドでのブール型
104 *
105 * 1ビット幅のビットフィールドで,ブール値を保持したい場合に用いるべき
106 * データ型.デフォルトではBIT_FIELD_UINTと同一に定義しているが,ブー
107 * ル値を保持することを明示するために別の名称としている.
108 */
109#ifndef BIT_FIELD_BOOL
110#define BIT_FIELD_BOOL BIT_FIELD_UINT
111#endif /* BIT_FIELD_BOOL */
112
113/*
114 * オブジェクトIDの最小値の定義
115 */
116#define TMIN_TSKID 1 /* タスクIDの最小値 */
117#define TMIN_FLGID 1 /* イベントフラグIDの最小値 */
118#define TMIN_DTQID 1 /* データキューIDの最小値 */
119#define TMIN_CYCID 1 /* 周期ハンドラIDの最小値 */
120#define TMIN_ALMID 1 /* アラームハンドラIDの最小値 */
121
122/*
123 * 優先度の段階数の定義
124 */
125#define TNUM_TPRI (TMAX_TPRI - TMIN_TPRI + 1)
126#define TNUM_INTPRI (TMAX_INTPRI - TMIN_INTPRI + 1)
127
128/*
129 * ヘッダファイルを持たないモジュールの関数・変数の宣言
130 */
131#ifndef TOPPERS_MACRO_ONLY
132
133/*
134 * 各モジュールの初期化(kernel_cfg.c)
135 */
136extern void initialize_object(void);
137
138/*
139 * 初期化ルーチンの実行(kernel_cfg.c)
140 */
141extern void call_inirtn(void);
142
143/*
144 * 終了処理ルーチンの実行(kernel_cfg.c)
145 */
146extern void call_terrtn(void);
147
148/*
149 * 非タスクコンテキスト用のスタック領域(kernel_cfg.c)
150 */
151extern const SIZE istksz; /* スタック領域のサイズ(丸めた値) */
152extern STK_T *const istk; /* スタック領域の先頭番地 */
153#ifdef TOPPRES_ISTKPT
154extern STK_T *const istkpt; /* スタックポインタの初期値 */
155#endif /* TOPPERS_ISTKPT */
156
157/*
158 * カーネル動作状態フラグ(startup.c)
159 */
160extern bool_t kerflg;
161
162/*
163 * カーネルの起動(startup.c)
164 */
165extern void sta_ker(void);
166
167/*
168 * カーネルの終了処理(startup.c)
169 */
170extern void exit_kernel(void);
171
172#endif /* TOPPERS_MACRO_ONLY */
173#endif /* TOPPERS_KERNEL_IMPL_H */
Note: See TracBrowser for help on using the repository browser.