]> Zhao Yanbai Git Server - minix.git/commitdiff
Define 64 bit integer types when compiling with GCC
authorArun Thomas <arun@minix3.org>
Fri, 6 Mar 2009 16:56:46 +0000 (16:56 +0000)
committerArun Thomas <arun@minix3.org>
Fri, 6 Mar 2009 16:56:46 +0000 (16:56 +0000)
include/ansi.h
include/sys/types.h

index 17a5cd949ea0965bc9119dc1c15134573d25a162..5c5864d71695ea01a5948a28d74167d4e343c1c6 100755 (executable)
 
 #endif /* _ANSI */
 
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901
+#define __LONG_LONG_SUPPORTED 1
+#define __L64 1
+#endif
+
 /* This should be defined as restrict when a C99 compiler is used. */
 #define _RESTRICT
 
index 06b553e594e66eaa38e8064aa6b788da95e8f88b..378929f7277da2bd3a17e222b2eeea40156be809 100755 (executable)
@@ -69,7 +69,12 @@ typedef char            i8_t;      /* 8 bit signed type */
 typedef short          i16_t;      /* 16 bit signed type */
 typedef long           i32_t;      /* 32 bit signed type */
 
+#ifdef __LONG_LONG_SUPPORTED
+typedef unsigned long long     u64_t; /* 64 bit type */
+typedef long long              i64_t; /* 64 bit signed type */
+#else
 typedef struct { u32_t _[2]; } u64_t;
+#endif
 
 /* The following types are needed because MINIX uses K&R style function
  * definitions (for maximum portability).  When a short, such as dev_t, is