-#ifndef _LIMITS_H_
+#ifndef _LIMITS_H___
#ifndef _MACH_MACHLIMITS_H_
-/* _MACH_MACHLIMITS.H_ is used on OSF/1. */
-#define _LIMITS_H
+/* _MACH_MACHLIMITS_H_ is used on OSF/1. */
+#define _LIMITS_H___
#define _MACH_MACHLIMITS_H_
/* Number of bits in a `char'. */
#undef CHAR_BIT
#define CHAR_BIT 8
-/* No multibyte characters supported yet. */
-#undef MB_LEN_MAX
+/* Maximum length of a multibyte character. */
+#ifndef MB_LEN_MAX
#define MB_LEN_MAX 1
+#endif
/* Minimum and maximum values a `signed char' can hold. */
#undef SCHAR_MIN
#define USHRT_MAX 65535
/* Minimum and maximum values a `signed int' can hold. */
+#ifndef __INT_MAX__
+#define __INT_MAX__ 2147483647
+#endif
#undef INT_MIN
#define INT_MIN (-INT_MAX-1)
#undef INT_MAX
-#define INT_MAX 2147483647
+#define INT_MAX __INT_MAX__
/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
#undef UINT_MAX
-#define UINT_MAX 4294967295U
+#define UINT_MAX (INT_MAX * 2U + 1)
/* Minimum and maximum values a `signed long int' can hold.
(Same as `int'). */
+#ifndef __LONG_MAX__
+#ifndef __alpha__
+#define __LONG_MAX__ 2147483647L
+#else
+#define __LONG_MAX__ 9223372036854775807L
+# endif /* __alpha__ */
+#endif
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#undef LONG_MAX
-#define LONG_MAX 2147483647L
+#define LONG_MAX __LONG_MAX__
/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
#undef ULONG_MAX
-#define ULONG_MAX 4294967295UL
+#define ULONG_MAX (LONG_MAX * 2UL + 1)
+
+#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
+/* Minimum and maximum values a `signed long long int' can hold. */
+#ifndef __LONG_LONG_MAX__
+#define __LONG_LONG_MAX__ 9223372036854775807LL
+#endif
+#undef LONG_LONG_MIN
+#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
+#undef LONG_LONG_MAX
+#define LONG_LONG_MAX __LONG_LONG_MAX__
+
+/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
+#undef ULONG_LONG_MAX
+#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
+#endif
#endif /* _MACH_MACHLIMITS_H_ */
-#endif /* _LIMITS_H */
+#endif /* _LIMITS_H___ */