OSDN Git Service

Initial revision
[pf3gnuchains/pf3gnuchains4x.git] / newlib / libc / include / sys / config.h
1 #ifndef __SYS_CONFIG_H__
2 #define __SYS_CONFIG_H__
3
4 /* exceptions first */
5 /* ??? Why is much of this stuff duplicated with machine/ieeefp.h?  */
6 #if defined(__H8300__) || defined(__H8500__) || defined (__H8300H__) ||  defined(__W65__) || defined (__H8300S__)
7 #define _FLOAT_ARG float
8 #define __SMALL_BITFIELDS
9 #define _DOUBLE_IS_32BITS
10 #define __IEEE_BIG_ENDIAN
11 /* ???  This conditional is true for the h8500 and the w65, defining H8300
12    in those cases probably isn't the right thing to do.  */
13 #define H8300 1
14 #endif
15
16 #ifdef __W65__
17 #define _DOUBLE_IS_32BITS
18 #define __SMALL_BITFIELDS
19 #define __IEEE_BIG_ENDIAN
20 #undef INT_MAX
21 #undef UINT_MAX
22 #define INT_MAX 32767
23 #define UINT_MAX 65535
24
25 #endif
26
27 /* 16 bit integer machines */
28 #if defined(__Z8001__) || defined(__Z8002__) || defined(__H8300__) || defined(__H8500__) || defined(__W65__) || defined (__H8300H__) || defined (__H8300S__) || defined (__mn10200__)
29
30 #undef INT_MAX
31 #undef UINT_MAX
32 #define INT_MAX 32767
33 #define UINT_MAX 65535
34 #endif
35
36 #if defined(__D10V__)
37 #undef INT_MAX
38 #undef UINT_MAX
39 #define INT_MAX __INT_MAX__
40 #define UINT_MAX (__INT_MAX__ * 2U + 1)
41 #define _DOUBLE_IS_32BITS
42 #define _POINTER_INT short
43 #define __IEEE_BIG_ENDIAN
44 #endif
45
46 #ifdef ___AM29K__
47 #define _FLOAT_RET double
48 #endif
49
50 #ifdef __i386__
51 #ifndef __unix__
52 /* in other words, go32 */
53 #define _FLOAT_RET double
54 #endif
55 #endif
56
57 #ifdef __M32R__
58 #define __IEEE_BIG_ENDIAN
59 #endif
60
61 #ifdef __m68k__
62 /* This is defined in machine/ieeefp.h; need to check is it redundant here? */
63 #define __IEEE_BIG_ENDIAN
64 #endif
65
66 #ifdef __mn10300__
67 #define __IEEE_LITTLE_ENDIAN
68 #endif
69
70 #ifdef __mn10200__
71 #define _DOUBLE_IS_32BITS
72 #define __SMALL_BITFIELDS
73 #define __IEEE_LITTLE_ENDIAN
74 #endif
75
76 #ifdef __TIC80__
77 #define __IEEE_LITTLE_ENDIAN
78 #endif
79
80 #ifdef __v850
81 #define __IEEE_LITTLE_ENDIAN
82 #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
83 #endif
84
85 #ifdef __D30V__
86 #define __IEEE_BIG_ENDIAN
87 #endif
88
89 /* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
90 #if defined(__PPC__) && defined(_CALL_SYSV)
91 #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
92 #endif
93
94 #ifdef __sparc__
95 #ifdef __LITTLE_ENDIAN_DATA__
96 #define __IEEE_LITTLE_ENDIAN
97 #else
98 #define __IEEE_BIG_ENDIAN
99 #endif
100 #endif
101
102 #if INT_MAX == 32767
103 typedef long int __int32_t;
104 typedef unsigned long int __uint32_t;
105 #else
106 typedef int __int32_t;
107 typedef unsigned int __uint32_t;
108 #endif
109
110 #ifndef _POINTER_INT
111 #define _POINTER_INT long
112 #endif
113
114
115 #endif /* __SYS_CONFIG_H__ */