source: trunk/libs/newlib/src/newlib/libc/include/limits.h @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 3.8 KB
Line 
1#ifndef _LIBC_LIMITS_H_
2# define _LIBC_LIMITS_H_        1
3
4#include <newlib.h>
5#include <sys/cdefs.h>
6
7# ifdef _MB_LEN_MAX
8#  define MB_LEN_MAX    _MB_LEN_MAX
9# else
10#  define MB_LEN_MAX    1
11# endif
12
13/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS.  */
14# ifndef NL_ARGMAX
15#  define NL_ARGMAX 32
16# endif
17
18/* if do not have #include_next support, then we
19   have to define the limits here. */
20# if !defined __GNUC__ || __GNUC__ < 2
21
22#  ifndef _LIMITS_H
23#   define _LIMITS_H    1
24
25#   include <sys/config.h>
26
27/* Number of bits in a `char'.  */
28#   undef CHAR_BIT
29#   define CHAR_BIT 8
30
31/* Minimum and maximum values a `signed char' can hold.  */
32#   undef SCHAR_MIN
33#   define SCHAR_MIN (-128)
34#   undef SCHAR_MAX
35#   define SCHAR_MAX 127
36
37/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
38#   undef UCHAR_MAX
39#   define UCHAR_MAX 255
40
41/* Minimum and maximum values a `char' can hold.  */
42#   ifdef __CHAR_UNSIGNED__
43#    undef CHAR_MIN
44#    define CHAR_MIN 0
45#    undef CHAR_MAX
46#    define CHAR_MAX 255
47#   else
48#    undef CHAR_MIN
49#    define CHAR_MIN (-128)
50#    undef CHAR_MAX
51#    define CHAR_MAX 127
52#   endif
53
54/* Minimum and maximum values a `signed short int' can hold.  */
55#   undef SHRT_MIN
56/* For the sake of 16 bit hosts, we may not use -32768 */
57#   define SHRT_MIN (-32767-1)
58#   undef SHRT_MAX
59#   define SHRT_MAX 32767
60
61/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
62#   undef USHRT_MAX
63#   define USHRT_MAX 65535
64
65/* Minimum and maximum values a `signed int' can hold.  */
66#   ifndef __INT_MAX__
67#    define __INT_MAX__ 2147483647
68#   endif
69#   undef INT_MIN
70#   define INT_MIN (-INT_MAX-1)
71#   undef INT_MAX
72#   define INT_MAX __INT_MAX__
73
74/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
75#   undef UINT_MAX
76#   define UINT_MAX (INT_MAX * 2U + 1)
77
78/* Minimum and maximum values a `signed long int' can hold.
79   (Same as `int').  */
80#   ifndef __LONG_MAX__
81#    if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9)
82#     define __LONG_MAX__ 9223372036854775807L
83#    else
84#     define __LONG_MAX__ 2147483647L
85#    endif /* __alpha__ || sparc64 */
86#   endif
87#   undef LONG_MIN
88#   define LONG_MIN (-LONG_MAX-1)
89#   undef LONG_MAX
90#   define LONG_MAX __LONG_MAX__
91
92/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
93#   undef ULONG_MAX
94#   define ULONG_MAX (LONG_MAX * 2UL + 1)
95
96#   ifndef __LONG_LONG_MAX__
97#    define __LONG_LONG_MAX__ 9223372036854775807LL
98#   endif
99
100#   if __ISO_C_VISIBLE >= 1999
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 __GNU_VISIBLE
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 <limits.h>
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
Note: See TracBrowser for help on using the repository browser.