Rev 4874 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | #ifndef _LIBC_LIMITS_H_ |
2 | # define _LIBC_LIMITS_H_ 1 |
||
3 | |||
4 | #include |
||
5 | |||
6 | # ifdef _MB_LEN_MAX |
||
7 | # define MB_LEN_MAX _MB_LEN_MAX |
||
8 | # else |
||
9 | # define MB_LEN_MAX 1 |
||
10 | # endif |
||
11 | |||
12 | /* Maximum number of positional arguments, if _WANT_IO_POS_ARGS. */ |
||
13 | # ifndef NL_ARGMAX |
||
14 | # define NL_ARGMAX 32 |
||
15 | # endif |
||
16 | |||
17 | /* if do not have #include_next support, then we |
||
18 | have to define the limits here. */ |
||
19 | # if !defined __GNUC__ || __GNUC__ < 2 |
||
20 | |||
21 | # ifndef _LIMITS_H |
||
22 | # define _LIMITS_H 1 |
||
23 | |||
24 | # include |
||
25 | |||
26 | /* Number of bits in a `char'. */ |
||
27 | # undef CHAR_BIT |
||
28 | # define CHAR_BIT 8 |
||
29 | |||
30 | /* Minimum and maximum values a `signed char' can hold. */ |
||
31 | # undef SCHAR_MIN |
||
32 | # define SCHAR_MIN (-128) |
||
33 | # undef SCHAR_MAX |
||
34 | # define SCHAR_MAX 127 |
||
35 | |||
36 | /* Maximum value an `unsigned char' can hold. (Minimum is 0). */ |
||
37 | # undef UCHAR_MAX |
||
38 | # define UCHAR_MAX 255 |
||
39 | |||
40 | /* Minimum and maximum values a `char' can hold. */ |
||
41 | # ifdef __CHAR_UNSIGNED__ |
||
42 | # undef CHAR_MIN |
||
43 | # define CHAR_MIN 0 |
||
44 | # undef CHAR_MAX |
||
45 | # define CHAR_MAX 255 |
||
46 | # else |
||
47 | # undef CHAR_MIN |
||
48 | # define CHAR_MIN (-128) |
||
49 | # undef CHAR_MAX |
||
50 | # define CHAR_MAX 127 |
||
51 | # endif |
||
52 | |||
53 | /* Minimum and maximum values a `signed short int' can hold. */ |
||
54 | # undef SHRT_MIN |
||
55 | /* For the sake of 16 bit hosts, we may not use -32768 */ |
||
56 | # define SHRT_MIN (-32767-1) |
||
57 | # undef SHRT_MAX |
||
58 | # define SHRT_MAX 32767 |
||
59 | |||
60 | /* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ |
||
61 | # undef USHRT_MAX |
||
62 | # define USHRT_MAX 65535 |
||
63 | |||
64 | /* Minimum and maximum values a `signed int' can hold. */ |
||
65 | # ifndef __INT_MAX__ |
||
66 | # define __INT_MAX__ 2147483647 |
||
67 | # endif |
||
68 | # undef INT_MIN |
||
69 | # define INT_MIN (-INT_MAX-1) |
||
70 | # undef INT_MAX |
||
71 | # define INT_MAX __INT_MAX__ |
||
72 | |||
73 | /* Maximum value an `unsigned int' can hold. (Minimum is 0). */ |
||
74 | # undef UINT_MAX |
||
75 | # define UINT_MAX (INT_MAX * 2U + 1) |
||
76 | |||
77 | /* Minimum and maximum values a `signed long int' can hold. |
||
78 | (Same as `int'). */ |
||
79 | # ifndef __LONG_MAX__ |
||
80 | # if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9) |
||
81 | # define __LONG_MAX__ 9223372036854775807L |
||
82 | # else |
||
83 | # define __LONG_MAX__ 2147483647L |
||
84 | # endif /* __alpha__ || sparc64 */ |
||
85 | # endif |
||
86 | # undef LONG_MIN |
||
87 | # define LONG_MIN (-LONG_MAX-1) |
||
88 | # undef LONG_MAX |
||
89 | # define LONG_MAX __LONG_MAX__ |
||
90 | |||
91 | /* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ |
||
92 | # undef ULONG_MAX |
||
93 | # define ULONG_MAX (LONG_MAX * 2UL + 1) |
||
94 | |||
95 | # ifndef __LONG_LONG_MAX__ |
||
96 | # define __LONG_LONG_MAX__ 9223372036854775807LL |
||
97 | # endif |
||
98 | |||
4921 | Serge | 99 | # if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ |
100 | (defined(__cplusplus) && __cplusplus >= 201103L) |
||
4349 | Serge | 101 | /* Minimum and maximum values a `signed long long int' can hold. */ |
102 | # undef LLONG_MIN |
||
103 | # define LLONG_MIN (-LLONG_MAX-1) |
||
104 | # undef LLONG_MAX |
||
105 | # define LLONG_MAX __LONG_LONG_MAX__ |
||
106 | |||
107 | /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ |
||
108 | # undef ULLONG_MAX |
||
109 | # define ULLONG_MAX (LLONG_MAX * 2ULL + 1) |
||
110 | # endif |
||
111 | |||
112 | # if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) |
||
113 | /* Minimum and maximum values a `signed long long int' can hold. */ |
||
114 | # undef LONG_LONG_MIN |
||
115 | # define LONG_LONG_MIN (-LONG_LONG_MAX-1) |
||
116 | # undef LONG_LONG_MAX |
||
117 | # define LONG_LONG_MAX __LONG_LONG_MAX__ |
||
118 | |||
119 | /* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ |
||
120 | # undef ULONG_LONG_MAX |
||
121 | # define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) |
||
122 | # endif |
||
123 | |||
124 | # endif /* _LIMITS_H */ |
||
125 | # endif /* GCC 2. */ |
||
126 | |||
127 | #endif /* !_LIBC_LIMITS_H_ */ |
||
128 | |||
129 | #if defined __GNUC__ && !defined _GCC_LIMITS_H_ |
||
130 | /* `_GCC_LIMITS_H_' is what GCC's file defines. */ |
||
131 | # include_next |
||
132 | #endif /* __GNUC__ && !_GCC_LIMITS_H_ */ |
||
133 | |||
134 | #ifndef _POSIX2_RE_DUP_MAX |
||
135 | /* The maximum number of repeated occurrences of a regular expression |
||
136 | * permitted when using the interval notation `\{M,N\}'. */ |
||
137 | #define _POSIX2_RE_DUP_MAX 255 |
||
138 | #endif /* _POSIX2_RE_DUP_MAX */ |
||
139 | |||
140 | #ifndef ARG_MAX |
||
141 | #define ARG_MAX 4096 |
||
142 | #endif |
||
143 | |||
144 | #ifndef PATH_MAX |
||
145 | #define PATH_MAX 4096 |
||
146 | #endif> |