aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/compiler.h11
-rw-r--r--include/linux/types.h9
2 files changed, 16 insertions, 4 deletions
diff --git a/include/compiler.h b/include/compiler.h
index 21036022d7a..47c296e202d 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -112,6 +112,14 @@ typedef unsigned int uint;
#else /* !USE_HOSTCC */
+#ifdef CONFIG_USE_STDINT
+/* Provided by gcc. */
+#include <stdint.h>
+#else
+/* Type for `void *' pointers. */
+typedef unsigned long int uintptr_t;
+#endif
+
#include <linux/string.h>
#include <linux/types.h>
#include <asm/byteorder.h>
@@ -128,9 +136,6 @@ typedef unsigned int uint;
#define __WORDSIZE 32
#endif
-/* Type for `void *' pointers. */
-typedef unsigned long int uintptr_t;
-
#endif /* USE_HOSTCC */
#define likely(x) __builtin_expect(!!(x), 1)
diff --git a/include/linux/types.h b/include/linux/types.h
index 9aebc4e8cf0..c9a8d9a8c2c 100644
--- a/include/linux/types.h
+++ b/include/linux/types.h
@@ -104,7 +104,8 @@ typedef __u8 uint8_t;
typedef __u16 uint16_t;
typedef __u32 uint32_t;
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
+ (!defined(CONFIG_USE_STDINT) || !defined(__INT64_TYPE__))
typedef __u64 uint64_t;
typedef __u64 u_int64_t;
typedef __s64 int64_t;
@@ -112,6 +113,12 @@ typedef __s64 int64_t;
#endif /* __KERNEL_STRICT_NAMES */
+#if defined(CONFIG_USE_STDINT) && defined(__INT64_TYPE__)
+typedef __UINT64_TYPE__ uint64_t;
+typedef __UINT64_TYPE__ u_int64_t;
+typedef __INT64_TYPE__ int64_t;
+#endif
+
/*
* Below are truly Linux-specific types that should never collide with
* any application/library that wants linux/types.h.