source: anotherchoice/tags/jsp-1.4.4-full-UTF8/include/itron.h@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 9.5 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * 上記著作権者
12は,以下の (1)〜(4) の条件か,Free Software Foundation
13 * によってå…
14¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
15 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
16 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
18 * 利用と呼ぶ)することを無償で許諾する.
19 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21 * スコード中に含まれていること.
22 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23 * 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26 * 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28 * の無保証規定を掲載すること.
29 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30 * 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32 * と.
33 * (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
37 * (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40 * 報告すること.
41 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42 * 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
49 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
50 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
51 *
52 * @(#) $Id: itron.h,v 1.16 2004/12/22 03:38:00 hiro Exp $
53 */
54
55/*
56 * ITRON仕様å…
57±é€šè¦å®šã®ãƒ‡ãƒ¼ã‚¿åž‹ãƒ»å®šæ•°ãƒ»ãƒžã‚¯ãƒ­
58 *
59 * このファイルには,スタンダードプロファイルには必
60要ない定義も含んで
61 * いる.データ型の定義は,スタンダードプロファイルを満たすちょうどの
62 * 長さにはしていない.
63 *
64 * アセンブリ言語のソースファイルやシステムコンフィギュレーションファ
65 * イルからこのファイルをインクルードする時は,_MACRO_ONLY を定義して
66 * おくことで,マクロ定義以外の記述を除くことができる.
67 *
68 * このインクルードファイルは,kernel.h と sil.h でインクルードされる.
69 * また,ITRON仕様å…
70±é€šè¦å®šã«æº–拠するソフトウェア部品のインクルードファ
71 * イルは,このファイルを直接インクルードしてもよい.この例外を除いて,
72 * 他のファイルから直接インクルードされることはない.
73 *
74 * このファイルをインクルードする前に,t_stddef.h をインクルードして
75 * おくことが必
76要である.
77 */
78
79#ifndef _ITRON_H_
80#define _ITRON_H_
81
82#ifdef __cplusplus
83extern "C" {
84#endif
85
86/*
87 * 開発環境に依存する定義
88 */
89#include <tool_defs.h>
90
91/*
92 * 開発環境の標準インクルードファイル(NULL と size_t の定義が必
93要)
94 *
95 * C++/EC++ では,標準仕様上は stddef.h がサポートされているとは限らな
96 * いが,ほとんどの処理系でサポートされている.
97 */
98#ifndef _MACRO_ONLY
99#include <stddef.h>
100#endif /* _MACRO_ONLY */
101
102/*
103 * コンパイラ依存のデータ型のデフォルト定義
104 */
105#ifndef _bool_
106#define _bool_ int /* ブール型 */
107#endif /* _bool_ */
108
109/*
110 * ITRON仕様å…
111±é€šãƒ‡ãƒ¼ã‚¿åž‹
112 */
113#ifndef _MACRO_ONLY
114
115#ifdef _int8_
116typedef signed _int8_ B; /* 符号付き8ビット整数 */
117typedef unsigned _int8_ UB; /* 符号無し8ビット整数 */
118typedef _int8_ VB; /* 型が定まらない8ビットの値 */
119#endif /* _int8_ */
120
121#ifdef _int16_
122typedef signed _int16_ H; /* 符号付き16ビット整数 */
123typedef unsigned _int16_ UH; /* 符号無し16ビット整数 */
124typedef _int16_ VH; /* 型が定まらない16ビットの値 */
125#endif /* _int16_ */
126
127typedef signed _int32_ W; /* 符号付き32ビット整数 */
128typedef unsigned _int32_ UW; /* 符号無し32ビット整数 */
129typedef _int32_ VW; /* 型が定まらない32ビットの値 */
130
131#ifdef _int64_
132typedef signed _int64_ D; /* 符号付き64ビット整数 */
133typedef unsigned _int64_ UD; /* 符号無し64ビット整数 */
134typedef _int64_ VD; /* 型が定まらない64ビットの値 */
135#endif /* _int64_ */
136
137typedef void *VP; /* 型が定まらないものへのポインタ */
138typedef void (*FP)(); /* プログラムの起動番地(ポインタ) */
139
140typedef signed int INT; /* 自然なサイズの符号付き整数 */
141typedef unsigned int UINT; /* 自然なサイズの符号無し整数 */
142
143typedef _bool_ BOOL; /* 真偽値 */
144
145typedef INT FN; /* 機能コード */
146typedef INT ER; /* エラーコード */
147typedef INT ID; /* オブジェクトのID番号 */
148typedef UINT ATR; /* オブジェクトの属性 */
149typedef UINT STAT; /* オブジェクトの状æ…
150‹ */
151typedef UINT MODE; /* サービスコールの動作モード */
152typedef INT PRI; /* 優å…
153ˆåº¦ */
154typedef size_t SIZE; /* メモリ領域のサイズ */
155
156typedef INT TMO; /* タイムアウト指定 */
157typedef UINT RELTIM; /* 相対時間 */
158typedef UW SYSTIM; /* システム時刻 */
159
160#ifdef _vp_int_
161typedef _vp_int_ VP_INT; /* VP または INT */
162#else /* _vp_int_ */
163typedef VP VP_INT; /* VP または INT */
164#endif /* _vp_int_ */
165
166typedef INT ER_BOOL; /* ER または BOOL */
167typedef INT ER_ID; /* ER または ID */
168typedef INT ER_UINT; /* ER または UINT */
169
170#endif /* _MACRO_ONLY */
171
172/*
173 * ITRON仕様å…
174±é€šå®šæ•°
175 */
176
177/*
178 * 一般
179 *
180 * _MACRO_ONLY の時には,NULL を定義しない.これは,_MACRO_ONLY の時
181 * はstddef.h をインクルードしないため,そうでない時と NULL の定義が
182 * 食い違う可能性があるためである.また,システムコンフィギュレーショ
183 * ンファイルを処理する場合には NULL を定義してはならないため,その点
184 * からも定義しない方が都合がよい.
185 */
186#ifndef _MACRO_ONLY
187#ifndef NULL /* stddef.h に含まれているはず */
188#define NULL 0 /* 無効ポインタ */
189#endif /* NULL */
190#endif /* _MACRO_ONLY */
191
192#define TRUE 1 /* 真 */
193#define FALSE 0 /* 偽 */
194#define E_OK 0 /* 正常終了 */
195
196/*
197 * エラーコード
198 */
199#define E_SYS (-5) /* システムエラー */
200#define E_NOSPT (-9) /* 未サポート機能 */
201#define E_RSFN (-10) /* 予約機能コード */
202#define E_RSATR (-11) /* 予約属性 */
203#define E_PAR (-17) /* パラメータエラー */
204#define E_ID (-18) /* 不正ID番号 */
205#define E_CTX (-25) /* コンテキストエラー */
206#define E_MACV (-26) /* メモリアクセス違反 */
207#define E_OACV (-27) /* オブジェクトアクセス違反 */
208#define E_ILUSE (-28) /* サービスコール不正使用 */
209#define E_NOMEM (-33) /* メモリ不足 */
210#define E_NOID (-34) /* ID番号不足 */
211#define E_OBJ (-41) /* オブジェクト状æ…
212‹ã‚¨ãƒ©ãƒ¼ */
213#define E_NOEXS (-42) /* オブジェクト未生成 */
214#define E_QOVR (-43) /* キューイングオーバーフロー */
215#define E_RLWAI (-49) /* 待
216ち状æ…
217‹ã®å¼·åˆ¶è§£é™¤ */
218#define E_TMOUT (-50) /* ポーリング失敗またはタイムアウト */
219#define E_DLT (-51) /* 待
220ちオブジェクトの削除 */
221#define E_CLS (-52) /* 待
222ちオブジェクトの状æ…
223‹å¤‰åŒ– */
224#define E_WBLK (-57) /* ノンブロッキング受付け */
225#define E_BOVR (-58) /* バッファオーバーフロー */
226
227/*
228 * オブジェクト属性
229 */
230#define TA_NULL 0u /* オブジェクト属性を指定しない */
231
232/*
233 * タイムアウト指定
234 */
235#define TMO_POL 0 /* ポーリング */
236#define TMO_FEVR (-1) /* 永久
237待
238ち */
239#define TMO_NBLK (-2) /* ノンブロッキング */
240
241/*
242 * ITRON仕様å…
243±é€šãƒžã‚¯ãƒ­
244 */
245
246/*
247 * エラーコード生成・分解マクロ
248 *
249 * ANSI C言語の規格では,右シフト演算子(>>)が符号拡張されることを保
250 * 証していないため,SERCDマクロの定義を単に ((ercd) >> 8) とすると,
251 * 右シフト演算子を符号拡張しないコンパイラでは,SERCD の返値が正の値
252 * になってしまう.
253 */
254#define ERCD(mercd,sercd) (((sercd) << 8) | ((mercd) & 0xff))
255
256#ifdef _int8_
257#define MERCD(ercd) ((ER)((B)(ercd)))
258#define SERCD(ercd) ((ER)((B)((ercd) >> 8)))
259#else /* _int8_ */
260#define MERCD(ercd) (((ercd) & 0x80) == 0 ? ((ercd) & 0xff) \
261 : ((ercd) | ~0xff))
262#define SERCD(ercd) ((~((~0) >> 8)) | ((ercd) >> 8))
263#endif /* _int8_ */
264
265#ifdef __cplusplus
266}
267#endif
268
269#endif /* _ITRON_H_ */
Note: See TracBrowser for help on using the repository browser.