summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/linux/include/stdint.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/linux/include/stdint.h')
-rw-r--r--newlib/libc/sys/linux/include/stdint.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/newlib/libc/sys/linux/include/stdint.h b/newlib/libc/sys/linux/include/stdint.h
index d1197f66c..682af1f7a 100644
--- a/newlib/libc/sys/linux/include/stdint.h
+++ b/newlib/libc/sys/linux/include/stdint.h
@@ -15,6 +15,7 @@
#define _STDINT_H
#include <sys/types.h>
+#include <bits/wordsize.h>
#ifdef __cplusplus
extern "C" {
@@ -87,6 +88,34 @@ typedef uint32_t uint_least16_t;
#endif
#endif
+/* Fast types. */
+
+/* Signed. */
+typedef signed char int_fast8_t;
+#if __WORDSIZE == 64
+typedef long int int_fast16_t;
+typedef long int int_fast32_t;
+typedef long int int_fast64_t;
+#else
+typedef int int_fast16_t;
+typedef int int_fast32_t;
+__extension__
+typedef long long int int_fast64_t;
+#endif
+
+/* Unsigned. */
+typedef unsigned char uint_fast8_t;
+#if __WORDSIZE == 64
+typedef unsigned long int uint_fast16_t;
+typedef unsigned long int uint_fast32_t;
+typedef unsigned long int uint_fast64_t;
+#else
+typedef unsigned int uint_fast16_t;
+typedef unsigned int uint_fast32_t;
+__extension__
+typedef unsigned long long int uint_fast64_t;
+#endif
+
#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
#define __int64_t_defined 1
#define __have_long64 1