Subversion Repositories Kolibri OS

Rev

Rev 4921 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  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
  147.