source: ssp_qb_r5f100le_cs/trunk/arch/gcc/tool_stddef.h

Last change on this file 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: 6.4 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
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 *
10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * スコード中に含まれていること.
16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
19 * の無保証規定を掲載すること.
20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
22 * と.
23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
24 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
26 * 報告すること.
27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
31 * 免責すること.
32 *
33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
37 * の責任を負わない.
38 *
39 * @(#) $Id: tool_stddef.h 819 2008-03-18 12:58:50Z hiro $
40 */
41
42/*
43 * t_stddef.hの開発環境依存部(GCC用)
44 */
45
46#ifndef TOPPERS_TOOL_STDDEF_H
47#define TOPPERS_TOOL_STDDEF_H
48
49/*
50 * コンパイラの拡張機能のためのマクロ定義
51 */
52#ifndef __cplusplus /* C++にはinline がある */
53#if __STDC_VERSION__ < 199901L /* C99にはinline がある */
54#define inline __inline__ /* インライン関数 */
55#endif /* __STDC_VERSION__ < 199901L */
56#endif /* __cplusplus */
57
58#define Inline static __inline__ /* インライン関数 */
59
60#ifndef __cplusplus /* C++にはasmがある */
61#define asm __asm__ /* インラインアセンブラ */
62#endif /* __cplusplus */
63
64#define Asm __asm__ volatile /* インラインアセンブラ(最適化抑止)*/
65
66#define NoReturn __attribute__((__noreturn__))
67 /* リターンしない関数 */
68
69/*
70 * 開発環境の標準インクルードファイルの利用
71 *
72 * NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
73 * LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
74 *
75 * C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
76 * いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
77 * ている).
78 */
79#ifndef TOPPERS_MACRO_ONLY
80#include <stdint.h>
81#include <limits.h>
82#endif /* TOPPERS_MACRO_ONLY */
83
84/*
85 * stdint.hの代用となる定義
86 *
87 * 開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
88 * ンに当てはまる場合に,stdint.hの代用となる定義を与える.
89 *
90 * TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
91 * 8/16/32/64ビットで,ポインタのビット長がlong
92 * のビット長と一致する場合
93 */
94#ifdef TOPPERS_STDINT_TYPE1
95
96/*
97 * コンパイラ依存のデータ型の定義
98 */
99#ifndef TOPPERS_MACRO_ONLY
100
101typedef signed char int8_t; /* 符号付き8ビット整数 */
102typedef unsigned char uint8_t; /* 符号無し8ビット整数 */
103
104typedef signed short int16_t; /* 符号付き16ビット整数 */
105typedef unsigned short uint16_t; /* 符号無し16ビット整数 */
106
107typedef signed int int32_t; /* 符号付き32ビット整数 */
108typedef unsigned int uint32_t; /* 符号無し32ビット整数 */
109
110typedef signed long long int64_t; /* 符号付き64ビット整数 */
111typedef unsigned long long uint64_t; /* 符号無し64ビット整数 */
112
113typedef int8_t int_least8_t; /* 8ビット以上の符号付き整数 */
114typedef uint8_t uint_least8_t; /* 8ビット以上の符号無し整数 */
115
116typedef long intptr_t; /* ポインタを格納できる符号付き整数 */
117typedef unsigned long uintptr_t; /* ポインタを格納できる符号無し整数 */
118
119#endif /* TOPPERS_MACRO_ONLY */
120
121/*
122 * コンパイラ依存のデータ型の整数定数を作るマクロ
123 */
124#ifndef INT8_C
125#define INT8_C(val) (val)
126#endif /* INT8_C */
127
128#ifndef UINT8_C
129#define UINT8_C(val) (val ## U)
130#endif /* UINT8_C */
131
132#ifndef INT16_C
133#define INT16_C(val) (val)
134#endif /* INT16_C */
135
136#ifndef UINT16_C
137#define UINT16_C(val) (val ## U)
138#endif /* UINT16_C */
139
140#ifndef INT32_C
141#define INT32_C(val) (val)
142#endif /* INT32_C */
143
144#ifndef UINT32_C
145#define UINT32_C(val) (val ## U)
146#endif /* UINT32_C */
147
148#ifndef INT64_C
149#define INT64_C(val) (val ## LL)
150#endif /* INT64_C */
151
152#ifndef UINT64_C
153#define UINT64_C(val) (val ## ULL)
154#endif /* UINT64_C */
155
156/*
157 * コンパイラ依存のデータ型に格納できる最大値と最小値の定義
158 */
159#define INT8_MAX SCHAR_MAX
160#define INT8_MIN SCHAR_MIN
161#define UINT8_MAX UCHAR_MAX
162
163#define INT16_MAX SHRT_MAX
164#define INT16_MIN SHRT_MIN
165#define UINT16_MAX USHRT_MAX
166
167#define INT32_MAX INT_MAX
168#define INT32_MIN INT_MIN
169#define UINT32_MAX UINT_MAX
170
171#define INT64_MAX LLONG_MAX
172#define INT64_MIN LLONG_MIN
173#define UINT64_MAX ULLONG_MAX
174
175#define INT_LEAST8_MAX INT8_MAX
176#define INT_LEAST8_MIN INT8_MIN
177#define UINT_LEAST8_MAX INT8_MAX
178
179#endif /* TOPPERS_STDINT_TYPE1 */
180
181/*
182 * 浮動小数点型に関する定義
183 *
184 * TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
185 * doubleが倍精度浮動小数点数の場合
186 */
187#ifdef TOPPERS_STDFLOAT_TYPE1
188#ifndef TOPPERS_MACRO_ONLY
189
190typedef float float32_t; /* IEEE754準拠の単精度浮動小数点数 */
191typedef double double64_t; /* IEEE754準拠の倍精度浮動小数点数 */
192
193#endif /* TOPPERS_MACRO_ONLY */
194
195#define FLOAT32_MIN 1.17549435e-38F
196#define FLOAT32_MAX 3.40282347e+38F
197#define DOUBLE64_MIN 2.2250738585072014e-308
198#define DOUBLE64_MAX 1.7976931348623157e+308
199
200#endif /* TOPPERS_STDFLOAT_TYPE1 */
201#endif /* TOPPERS_TOOL_STDDEF_H */
Note: See TracBrowser for help on using the repository browser.