source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/arch/gcc/tool_stddef.h@ 352

Last change on this file since 352 was 352, checked in by coas-nagasima, 6 years ago

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 7.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-2011 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$
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 !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
54 /* C99にはinline がある */
55#define inline __inline__ /* インライン関数 */
56#endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
57#endif /* __cplusplus */
58
59#define Inline static inline /* インライン関数 */
60
61#ifndef __cplusplus /* C++にはasmがある */
62#define asm __asm__ /* インラインアセンブラ */
63#endif /* __cplusplus */
64
65#define Asm __asm__ volatile /* インラインアセンブラ(最適化抑止)*/
66
67#define NoReturn __attribute__((__noreturn__))
68 /* リターンしない関数 */
69
70/*
71 * 開発環境の標準インクルードファイルの利用
72 *
73 * NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
74 * LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
75 *
76 * C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
77 * いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
78 * ている).
79 */
80#ifndef TOPPERS_MACRO_ONLY
81#include <stddef.h>
82#include <limits.h>
83#endif /* TOPPERS_MACRO_ONLY */
84
85/*
86 * stdint.hの代用となる定義
87 *
88 * 開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
89 * ンに当てはまる場合に,stdint.hの代用となる定義を与える.
90 *
91 * TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
92 * 8/16/32/64ビットで,ポインタのビット長がlong
93 * のビット長と一致する場合
94 */
95#ifdef TOPPERS_STDINT_TYPE1
96
97/*
98 * コンパイラ依存のデータ型の定義
99 */
100#ifndef TOPPERS_MACRO_ONLY
101
102typedef signed char int8_t; /* 符号付き8ビット整数 */
103typedef unsigned char uint8_t; /* 符号無し8ビット整数 */
104
105typedef signed short int16_t; /* 符号付き16ビット整数 */
106typedef unsigned short uint16_t; /* 符号無し16ビット整数 */
107
108typedef signed int int32_t; /* 符号付き32ビット整数 */
109typedef unsigned int uint32_t; /* 符号無し32ビット整数 */
110
111typedef signed long long int64_t; /* 符号付き64ビット整数 */
112typedef unsigned long long uint64_t; /* 符号無し64ビット整数 */
113
114typedef int8_t int_least8_t; /* 8ビット以上の符号付き整数 */
115typedef uint8_t uint_least8_t; /* 8ビット以上の符号無し整数 */
116
117typedef long intptr_t; /* ポインタを格納できる符号付き整数 */
118typedef unsigned long uintptr_t; /* ポインタを格納できる符号無し整数 */
119
120#endif /* TOPPERS_MACRO_ONLY */
121
122/*
123 * コンパイラ依存のデータ型の整数定数を作るマクロ
124 */
125#ifndef INT8_C
126#define INT8_C(val) (val)
127#endif /* INT8_C */
128
129#ifndef UINT8_C
130#define UINT8_C(val) (val ## U)
131#endif /* UINT8_C */
132
133#ifndef INT16_C
134#define INT16_C(val) (val)
135#endif /* INT16_C */
136
137#ifndef UINT16_C
138#define UINT16_C(val) (val ## U)
139#endif /* UINT16_C */
140
141#ifndef INT32_C
142#define INT32_C(val) (val)
143#endif /* INT32_C */
144
145#ifndef UINT32_C
146#define UINT32_C(val) (val ## U)
147#endif /* UINT32_C */
148
149#ifndef INT64_C
150#define INT64_C(val) (val ## LL)
151#endif /* INT64_C */
152
153#ifndef UINT64_C
154#define UINT64_C(val) (val ## ULL)
155#endif /* UINT64_C */
156
157/*
158 * コンパイラ依存のデータ型に格納できる最大値と最小値の定義
159 */
160#define INT8_MAX SCHAR_MAX
161#define INT8_MIN SCHAR_MIN
162#define UINT8_MAX UCHAR_MAX
163
164#define INT16_MAX SHRT_MAX
165#define INT16_MIN SHRT_MIN
166#define UINT16_MAX USHRT_MAX
167
168#define INT32_MAX INT_MAX
169#define INT32_MIN INT_MIN
170#define UINT32_MAX UINT_MAX
171
172#define INT64_MAX LLONG_MAX
173#define INT64_MIN LLONG_MIN
174#define UINT64_MAX ULLONG_MAX
175
176#define INT_LEAST8_MAX INT8_MAX
177#define INT_LEAST8_MIN INT8_MIN
178#define UINT_LEAST8_MAX INT8_MAX
179
180#endif /* TOPPERS_STDINT_TYPE1 */
181
182/*
183 * 浮動小数点型に関する定義
184 *
185 * TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
186 * doubleが倍精度浮動小数点数の場合
187 */
188#ifdef TOPPERS_STDFLOAT_TYPE1
189#ifndef TOPPERS_MACRO_ONLY
190
191typedef float float32_t; /* IEEE754準拠の単精度浮動小数点数 */
192typedef double double64_t; /* IEEE754準拠の倍精度浮動小数点数 */
193
194#endif /* TOPPERS_MACRO_ONLY */
195
196#define FLOAT32_MIN 1.17549435e-38F
197#define FLOAT32_MAX 3.40282347e+38F
198#define DOUBLE64_MIN 2.2250738585072014e-308
199#define DOUBLE64_MAX 1.7976931348623157e+308
200
201#endif /* TOPPERS_STDFLOAT_TYPE1 */
202#endif /* TOPPERS_TOOL_STDDEF_H */
Note: See TracBrowser for help on using the repository browser.