Loading...
--- Libc/Libc-1725.40.4/include/stdint.h
+++ Libc/Libc-825.26/include/stdint.h
@@ -15,15 +15,45 @@
/* from ISO/IEC 988:1999 spec */
/* 7.18.1.1 Exact-width integer types */
-#include <sys/_types/_int8_t.h>
-#include <sys/_types/_int16_t.h>
-#include <sys/_types/_int32_t.h>
-#include <sys/_types/_int64_t.h>
-
-#include <_types/_uint8_t.h>
-#include <_types/_uint16_t.h>
-#include <_types/_uint32_t.h>
-#include <_types/_uint64_t.h>
+#ifndef _INT8_T
+#define _INT8_T
+typedef signed char int8_t;
+#endif /*_INT8_T */
+
+#ifndef _INT16_T
+#define _INT16_T
+typedef short int16_t;
+#endif /* _INT16_T */
+
+#ifndef _INT32_T
+#define _INT32_T
+typedef int int32_t;
+#endif /* _INT32_T */
+
+#ifndef _INT64_T
+#define _INT64_T
+typedef long long int64_t;
+#endif /* _INT64_T */
+
+#ifndef _UINT8_T
+#define _UINT8_T
+typedef unsigned char uint8_t;
+#endif /*_UINT8_T */
+
+#ifndef _UINT16_T
+#define _UINT16_T
+typedef unsigned short uint16_t;
+#endif /* _UINT16_T */
+
+#ifndef _UINT32_T
+#define _UINT32_T
+typedef unsigned int uint32_t;
+#endif /* _UINT32_T */
+
+#ifndef _UINT64_T
+#define _UINT64_T
+typedef unsigned long long uint64_t;
+#endif /* _UINT64_T */
/* 7.18.1.2 Minimum-width integer types */
typedef int8_t int_least8_t;
@@ -49,41 +79,39 @@
/* 7.18.1.4 Integer types capable of holding object pointers */
-#include <sys/_types.h>
-#include <sys/_types/_intptr_t.h>
-#include <sys/_types/_uintptr_t.h>
+#ifndef _INTPTR_T
+#define _INTPTR_T
+typedef long intptr_t;
+#endif /* _INTPTR_T */
+
+#ifndef _UINTPTR_T
+#define _UINTPTR_T
+typedef unsigned long uintptr_t;
+#endif /* _UINTPTR_T */
/* 7.18.1.5 Greatest-width integer types */
-#include <_types/_intmax_t.h>
-#include <_types/_uintmax_t.h>
-
-/* 7.18.4 Macros for integer constants */
-#define INT8_C(v) (v)
-#define INT16_C(v) (v)
-#define INT32_C(v) (v)
-#define INT64_C(v) (v ## LL)
-
-#define UINT8_C(v) (v)
-#define UINT16_C(v) (v)
-#define UINT32_C(v) (v ## U)
-#define UINT64_C(v) (v ## ULL)
-
-#ifdef __LP64__
-#define INTMAX_C(v) (v ## L)
-#define UINTMAX_C(v) (v ## UL)
-#else
-#define INTMAX_C(v) (v ## LL)
-#define UINTMAX_C(v) (v ## ULL)
-#endif
+#ifndef _INTMAX_T
+#define _INTMAX_T
+#ifdef __INTMAX_TYPE__
+typedef __INTMAX_TYPE__ intmax_t;
+#else /* __INTMAX_TYPE__ */
+typedef long long intmax_t;
+#endif /* __INTMAX_TYPE__ */
+#endif /* _INTMAX_T */
+
+#ifndef _UINTMAX_T
+#define _UINTMAX_T
+#ifdef __UINTMAX_TYPE__
+typedef __UINTMAX_TYPE__ uintmax_t;
+#else /* __UINTMAX_TYPE__ */
+typedef unsigned long long uintmax_t;
+#endif /* __UINTMAX_TYPE__ */
+#endif /* _UINTMAX_T */
/* 7.18.2 Limits of specified-width integer types:
* These #defines specify the minimum and maximum limits
* of each of the types declared above.
- *
- * They must have "the same type as would an expression that is an
- * object of the corresponding type converted according to the integer
- * promotion".
*/
@@ -144,36 +172,42 @@
/* 7.18.2.4 Limits of integer types capable of holding object pointers */
#if __WORDSIZE == 64
-#define INTPTR_MAX 9223372036854775807L
-#else
-#define INTPTR_MAX 2147483647L
-#endif
-#define INTPTR_MIN (-INTPTR_MAX-1)
-
-#if __WORDSIZE == 64
-#define UINTPTR_MAX 18446744073709551615UL
-#else
-#define UINTPTR_MAX 4294967295UL
+#define INTPTR_MIN INT64_MIN
+#define INTPTR_MAX INT64_MAX
+#else
+#define INTPTR_MIN INT32_MIN
+#define INTPTR_MAX INT32_MAX
+#endif
+
+#if __WORDSIZE == 64
+#define UINTPTR_MAX UINT64_MAX
+#else
+#define UINTPTR_MAX UINT32_MAX
#endif
/* 7.18.2.5 Limits of greatest-width integer types */
-#define INTMAX_MAX INTMAX_C(9223372036854775807)
-#define UINTMAX_MAX UINTMAX_C(18446744073709551615)
-#define INTMAX_MIN (-INTMAX_MAX-1)
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+
+#define UINTMAX_MAX UINT64_MAX
/* 7.18.3 "Other" */
#if __WORDSIZE == 64
-#define PTRDIFF_MIN INTMAX_MIN
-#define PTRDIFF_MAX INTMAX_MAX
+#define PTRDIFF_MIN INT64_MIN
+#define PTRDIFF_MAX INT64_MAX
#else
#define PTRDIFF_MIN INT32_MIN
#define PTRDIFF_MAX INT32_MAX
#endif
-#define SIZE_MAX UINTPTR_MAX
-
-#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
-#define RSIZE_MAX (SIZE_MAX >> 1)
+/* We have no sig_atomic_t yet, so no SIG_ATOMIC_{MIN,MAX}.
+ Should end up being {-127,127} or {0,255} ... or bigger.
+ My bet would be on one of {U}INT32_{MIN,MAX}. */
+
+#if __WORDSIZE == 64
+#define SIZE_MAX UINT64_MAX
+#else
+#define SIZE_MAX UINT32_MAX
#endif
#ifndef WCHAR_MAX
@@ -202,4 +236,18 @@
#define SIG_ATOMIC_MIN INT32_MIN
#define SIG_ATOMIC_MAX INT32_MAX
+/* 7.18.4 Macros for integer constants */
+#define INT8_C(v) (v)
+#define INT16_C(v) (v)
+#define INT32_C(v) (v)
+#define INT64_C(v) (v ## LL)
+
+#define UINT8_C(v) (v ## U)
+#define UINT16_C(v) (v ## U)
+#define UINT32_C(v) (v ## U)
+#define UINT64_C(v) (v ## ULL)
+
+#define INTMAX_C(v) (v ## LL)
+#define UINTMAX_C(v) (v ## ULL)
+
#endif /* _STDINT_H_ */