xref: /utopia/UTPA2-700.0.x/projects/tools/lint/aeon_include/sys/config.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef __SYS_CONFIG_H__
2*53ee8cc1Swenshuai.xi #define __SYS_CONFIG_H__
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi #include <machine/ieeefp.h>  /* floating point macros */
5*53ee8cc1Swenshuai.xi 
6*53ee8cc1Swenshuai.xi /* exceptions first */
7*53ee8cc1Swenshuai.xi #if defined(__H8500__) || defined(__W65__)
8*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
9*53ee8cc1Swenshuai.xi /* ???  This conditional is true for the h8500 and the w65, defining H8300
10*53ee8cc1Swenshuai.xi    in those cases probably isn't the right thing to do.  */
11*53ee8cc1Swenshuai.xi #define H8300 1
12*53ee8cc1Swenshuai.xi #endif
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi /* 16 bit integer machines */
15*53ee8cc1Swenshuai.xi #if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi #undef INT_MAX
18*53ee8cc1Swenshuai.xi #undef UINT_MAX
19*53ee8cc1Swenshuai.xi #define INT_MAX 32767
20*53ee8cc1Swenshuai.xi #define UINT_MAX 65535
21*53ee8cc1Swenshuai.xi #endif
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi #if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
24*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
25*53ee8cc1Swenshuai.xi #define H8300 1
26*53ee8cc1Swenshuai.xi #undef INT_MAX
27*53ee8cc1Swenshuai.xi #undef UINT_MAX
28*53ee8cc1Swenshuai.xi #define INT_MAX __INT_MAX__
29*53ee8cc1Swenshuai.xi #define UINT_MAX (__INT_MAX__ * 2U + 1)
30*53ee8cc1Swenshuai.xi #endif
31*53ee8cc1Swenshuai.xi 
32*53ee8cc1Swenshuai.xi #ifdef __W65__
33*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
34*53ee8cc1Swenshuai.xi #endif
35*53ee8cc1Swenshuai.xi 
36*53ee8cc1Swenshuai.xi #if defined(__D10V__)
37*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
38*53ee8cc1Swenshuai.xi #undef INT_MAX
39*53ee8cc1Swenshuai.xi #undef UINT_MAX
40*53ee8cc1Swenshuai.xi #define INT_MAX __INT_MAX__
41*53ee8cc1Swenshuai.xi #define UINT_MAX (__INT_MAX__ * 2U + 1)
42*53ee8cc1Swenshuai.xi #define _POINTER_INT short
43*53ee8cc1Swenshuai.xi #endif
44*53ee8cc1Swenshuai.xi 
45*53ee8cc1Swenshuai.xi #if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
46*53ee8cc1Swenshuai.xi #undef INT_MAX
47*53ee8cc1Swenshuai.xi #undef UINT_MAX
48*53ee8cc1Swenshuai.xi #define INT_MAX __INT_MAX__
49*53ee8cc1Swenshuai.xi #define UINT_MAX (__INT_MAX__ * 2U + 1)
50*53ee8cc1Swenshuai.xi #define _POINTER_INT short
51*53ee8cc1Swenshuai.xi #endif
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi #ifdef ___AM29K__
54*53ee8cc1Swenshuai.xi #define _FLOAT_RET double
55*53ee8cc1Swenshuai.xi #endif
56*53ee8cc1Swenshuai.xi 
57*53ee8cc1Swenshuai.xi #ifdef __i386__
58*53ee8cc1Swenshuai.xi #ifndef __unix__
59*53ee8cc1Swenshuai.xi /* in other words, go32 */
60*53ee8cc1Swenshuai.xi #define _FLOAT_RET double
61*53ee8cc1Swenshuai.xi #endif
62*53ee8cc1Swenshuai.xi #ifdef __linux__
63*53ee8cc1Swenshuai.xi /* we want the reentrancy structure to be returned by a function */
64*53ee8cc1Swenshuai.xi #define __DYNAMIC_REENT__
65*53ee8cc1Swenshuai.xi #define HAVE_GETDATE
66*53ee8cc1Swenshuai.xi #define _HAVE_SYSTYPES
67*53ee8cc1Swenshuai.xi #define _READ_WRITE_RETURN_TYPE _ssize_t
68*53ee8cc1Swenshuai.xi #define __LARGE64_FILES 1
69*53ee8cc1Swenshuai.xi /* we use some glibc header files so turn on glibc large file feature */
70*53ee8cc1Swenshuai.xi #define _LARGEFILE64_SOURCE 1
71*53ee8cc1Swenshuai.xi #endif
72*53ee8cc1Swenshuai.xi #endif
73*53ee8cc1Swenshuai.xi 
74*53ee8cc1Swenshuai.xi #ifdef __mn10200__
75*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
76*53ee8cc1Swenshuai.xi #endif
77*53ee8cc1Swenshuai.xi 
78*53ee8cc1Swenshuai.xi #ifdef __AVR__
79*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
80*53ee8cc1Swenshuai.xi #define _POINTER_INT short
81*53ee8cc1Swenshuai.xi #endif
82*53ee8cc1Swenshuai.xi 
83*53ee8cc1Swenshuai.xi #ifdef __v850
84*53ee8cc1Swenshuai.xi #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
85*53ee8cc1Swenshuai.xi #endif
86*53ee8cc1Swenshuai.xi 
87*53ee8cc1Swenshuai.xi /* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
88*53ee8cc1Swenshuai.xi #if defined(__PPC__)
89*53ee8cc1Swenshuai.xi #if defined(_CALL_SYSV)
90*53ee8cc1Swenshuai.xi #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
91*53ee8cc1Swenshuai.xi #endif
92*53ee8cc1Swenshuai.xi #ifdef __SPE__
93*53ee8cc1Swenshuai.xi #define _LONG_DOUBLE double
94*53ee8cc1Swenshuai.xi #endif
95*53ee8cc1Swenshuai.xi #endif
96*53ee8cc1Swenshuai.xi 
97*53ee8cc1Swenshuai.xi #ifdef __xstormy16__
98*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
99*53ee8cc1Swenshuai.xi #undef INT_MAX
100*53ee8cc1Swenshuai.xi #undef UINT_MAX
101*53ee8cc1Swenshuai.xi #define INT_MAX __INT_MAX__
102*53ee8cc1Swenshuai.xi #define UINT_MAX (__INT_MAX__ * 2U + 1)
103*53ee8cc1Swenshuai.xi #define MALLOC_ALIGNMENT 8
104*53ee8cc1Swenshuai.xi #define _POINTER_INT short
105*53ee8cc1Swenshuai.xi #define __BUFSIZ__ 16
106*53ee8cc1Swenshuai.xi #define _REENT_SMALL
107*53ee8cc1Swenshuai.xi #endif
108*53ee8cc1Swenshuai.xi #ifdef __m32c__
109*53ee8cc1Swenshuai.xi #define __SMALL_BITFIELDS
110*53ee8cc1Swenshuai.xi #undef INT_MAX
111*53ee8cc1Swenshuai.xi #undef UINT_MAX
112*53ee8cc1Swenshuai.xi #define INT_MAX __INT_MAX__
113*53ee8cc1Swenshuai.xi #define UINT_MAX (__INT_MAX__ * 2U + 1)
114*53ee8cc1Swenshuai.xi #define MALLOC_ALIGNMENT 8
115*53ee8cc1Swenshuai.xi #if defined(__r8c_cpu__) || defined(__m16c_cpu__)
116*53ee8cc1Swenshuai.xi #define _POINTER_INT short
117*53ee8cc1Swenshuai.xi #else
118*53ee8cc1Swenshuai.xi #define _POINTER_INT long
119*53ee8cc1Swenshuai.xi #endif
120*53ee8cc1Swenshuai.xi #define __BUFSIZ__ 16
121*53ee8cc1Swenshuai.xi #define _REENT_SMALL
122*53ee8cc1Swenshuai.xi #endif /* __m32c__ */
123*53ee8cc1Swenshuai.xi 
124*53ee8cc1Swenshuai.xi 
125*53ee8cc1Swenshuai.xi /* This block should be kept in sync with GCC's limits.h.  The point
126*53ee8cc1Swenshuai.xi    of having these definitions here is to not include limits.h, which
127*53ee8cc1Swenshuai.xi    would pollute the user namespace, while still using types of the
128*53ee8cc1Swenshuai.xi    the correct widths when deciding how to define __int32_t and
129*53ee8cc1Swenshuai.xi    __int64_t.  */
130*53ee8cc1Swenshuai.xi #ifndef __INT_MAX__
131*53ee8cc1Swenshuai.xi # ifdef INT_MAX
132*53ee8cc1Swenshuai.xi #  define __INT_MAX__ INT_MAX
133*53ee8cc1Swenshuai.xi # else
134*53ee8cc1Swenshuai.xi #  define __INT_MAX__ 2147483647
135*53ee8cc1Swenshuai.xi # endif
136*53ee8cc1Swenshuai.xi #endif
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi #ifndef __LONG_MAX__
139*53ee8cc1Swenshuai.xi # ifdef LONG_MAX
140*53ee8cc1Swenshuai.xi #  define __LONG_MAX__ LONG_MAX
141*53ee8cc1Swenshuai.xi # else
142*53ee8cc1Swenshuai.xi #  if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
143*53ee8cc1Swenshuai.xi       || defined (__sparcv9)
144*53ee8cc1Swenshuai.xi #   define __LONG_MAX__ 9223372036854775807L
145*53ee8cc1Swenshuai.xi #  else
146*53ee8cc1Swenshuai.xi #   define __LONG_MAX__ 2147483647L
147*53ee8cc1Swenshuai.xi #  endif /* __alpha__ || sparc64 */
148*53ee8cc1Swenshuai.xi # endif
149*53ee8cc1Swenshuai.xi #endif
150*53ee8cc1Swenshuai.xi /* End of block that should be kept in sync with GCC's limits.h.  */
151*53ee8cc1Swenshuai.xi 
152*53ee8cc1Swenshuai.xi #ifndef _POINTER_INT
153*53ee8cc1Swenshuai.xi #define _POINTER_INT long
154*53ee8cc1Swenshuai.xi #endif
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi #ifdef __frv__
157*53ee8cc1Swenshuai.xi #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
158*53ee8cc1Swenshuai.xi #endif
159*53ee8cc1Swenshuai.xi #undef __RAND_MAX
160*53ee8cc1Swenshuai.xi #if __INT_MAX__ == 32767
161*53ee8cc1Swenshuai.xi #define __RAND_MAX 32767
162*53ee8cc1Swenshuai.xi #else
163*53ee8cc1Swenshuai.xi #define __RAND_MAX 0x7fffffff
164*53ee8cc1Swenshuai.xi #endif
165*53ee8cc1Swenshuai.xi 
166*53ee8cc1Swenshuai.xi #if defined(__CYGWIN__)
167*53ee8cc1Swenshuai.xi #include <cygwin/config.h>
168*53ee8cc1Swenshuai.xi #endif
169*53ee8cc1Swenshuai.xi 
170*53ee8cc1Swenshuai.xi #if defined(__rtems__)
171*53ee8cc1Swenshuai.xi #define __FILENAME_MAX__ 255
172*53ee8cc1Swenshuai.xi #define _READ_WRITE_RETURN_TYPE _ssize_t
173*53ee8cc1Swenshuai.xi #endif
174*53ee8cc1Swenshuai.xi 
175*53ee8cc1Swenshuai.xi #ifndef __IMPORT
176*53ee8cc1Swenshuai.xi #define __IMPORT
177*53ee8cc1Swenshuai.xi #endif
178*53ee8cc1Swenshuai.xi 
179*53ee8cc1Swenshuai.xi /* Define return type of read/write routines.  In POSIX, the return type
180*53ee8cc1Swenshuai.xi    for read()/write() is "ssize_t" but legacy newlib code has been using
181*53ee8cc1Swenshuai.xi    "int" for some time.  If not specified, "int" is defaulted.  */
182*53ee8cc1Swenshuai.xi #ifndef _READ_WRITE_RETURN_TYPE
183*53ee8cc1Swenshuai.xi #define _READ_WRITE_RETURN_TYPE int
184*53ee8cc1Swenshuai.xi #endif
185*53ee8cc1Swenshuai.xi 
186*53ee8cc1Swenshuai.xi #ifndef __WCHAR_MAX__
187*53ee8cc1Swenshuai.xi #if __INT_MAX__ == 32767 || defined (_WIN32)
188*53ee8cc1Swenshuai.xi #define __WCHAR_MAX__ 0xffffu
189*53ee8cc1Swenshuai.xi #endif
190*53ee8cc1Swenshuai.xi #endif
191*53ee8cc1Swenshuai.xi 
192*53ee8cc1Swenshuai.xi #endif /* __SYS_CONFIG_H__ */
193