summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authortijl <tijl@FreeBSD.org>2011-01-08 12:43:05 +0000
committertijl <tijl@FreeBSD.org>2011-01-08 12:43:05 +0000
commit89281909e199aee2c6c9da6a30e4c5d4a131fced (patch)
tree982d82f606fd515f513b96a4ec7aea4727588d31 /sys/mips
parent61d89c0b21ee8ee88c291bd781b885c9ff0d6245 (diff)
downloadFreeBSD-src-89281909e199aee2c6c9da6a30e4c5d4a131fced.zip
FreeBSD-src-89281909e199aee2c6c9da6a30e4c5d4a131fced.tar.gz
On mixed 32/64 bit architectures (mips, powerpc) use __LP64__ rather than
architecture macros (__mips_n64, __powerpc64__) when 64 bit types (and corresponding macros) are different from 32 bit. [1] Correct the type of INT64_MIN, INT64_MAX and UINT64_MAX. Define (U)INTMAX_C as an alias for (U)INT64_C matching the type definition for (u)intmax_t. Do this on all architectures for consistency. Suggested by: bde [1] Approved by: kib (mentor)
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/include/_inttypes.h2
-rw-r--r--sys/mips/include/_stdint.h45
-rw-r--r--sys/mips/include/_types.h19
3 files changed, 28 insertions, 38 deletions
diff --git a/sys/mips/include/_inttypes.h b/sys/mips/include/_inttypes.h
index 79664e4..bc77f4d 100644
--- a/sys/mips/include/_inttypes.h
+++ b/sys/mips/include/_inttypes.h
@@ -38,7 +38,7 @@
* Macros for format specifiers.
*/
-#if defined(__mips_n64)
+#ifdef __LP64__
#define PRI64 "l"
#else
#define PRI64 "ll"
diff --git a/sys/mips/include/_stdint.h b/sys/mips/include/_stdint.h
index 2a5a0dc6..7178007 100644
--- a/sys/mips/include/_stdint.h
+++ b/sys/mips/include/_stdint.h
@@ -46,28 +46,21 @@
#define INT8_C(c) (c)
#define INT16_C(c) (c)
#define INT32_C(c) (c)
-#ifdef __mips_n64
-#define INT64_C(c) (c ## L)
-#else
-#define INT64_C(c) (c ## LL)
-#endif
#define UINT8_C(c) (c)
#define UINT16_C(c) (c)
#define UINT32_C(c) (c ## U)
-#ifdef __mips_n64
+
+#ifdef __LP64__
+#define INT64_C(c) (c ## L)
#define UINT64_C(c) (c ## UL)
#else
+#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif
-#ifdef __mips_n64
-#define INTMAX_C(c) (c ## L)
-#define UINTMAX_C(c) (c ## UL)
-#else
-#define INTMAX_C(c) (c ## LL)
-#define UINTMAX_C(c) (c ## ULL)
-#endif
+#define INTMAX_C(c) INT64_C(c)
+#define UINTMAX_C(c) UINT64_C(c)
#endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
@@ -81,19 +74,19 @@
#define INT8_MIN (-0x7f-1)
#define INT16_MIN (-0x7fff-1)
#define INT32_MIN (-0x7fffffff-1)
-#define INT64_MIN (-INTMAX_C(0x7fffffffffffffff)-1)
+#define INT64_MIN (-INT64_C(0x7fffffffffffffff)-1)
/* Maximum values of exact-width signed integer types. */
#define INT8_MAX 0x7f
#define INT16_MAX 0x7fff
#define INT32_MAX 0x7fffffff
-#define INT64_MAX INTMAX_C(0x7fffffffffffffff)
+#define INT64_MAX INT64_C(0x7fffffffffffffff)
/* Maximum values of exact-width unsigned integer types. */
#define UINT8_MAX 0xff
#define UINT16_MAX 0xffff
-#define UINT32_MAX 0xffffffffU
-#define UINT64_MAX UINTMAX_C(0xffffffffffffffff)
+#define UINT32_MAX 0xffffffff
+#define UINT64_MAX UINT64_C(0xffffffffffffffff)
/*
* ISO/IEC 9899:1999
@@ -143,7 +136,7 @@
* ISO/IEC 9899:1999
* 7.18.2.4 Limits of integer types capable of holding object pointers
*/
-#ifdef __mips_n64
+#ifdef __LP64__
#define INTPTR_MIN INT64_MIN
#define INTPTR_MAX INT64_MAX
#define UINTPTR_MAX UINT64_MAX
@@ -165,26 +158,26 @@
* ISO/IEC 9899:1999
* 7.18.3 Limits of other integer types
*/
+#ifdef __LP64__
/* Limits of ptrdiff_t. */
-#ifdef __mips_n64
#define PTRDIFF_MIN INT64_MIN
#define PTRDIFF_MAX INT64_MAX
+
+/* Limit of size_t. */
+#define SIZE_MAX UINT64_MAX
#else
+/* Limits of ptrdiff_t. */
#define PTRDIFF_MIN INT32_MIN
#define PTRDIFF_MAX INT32_MAX
+
+/* Limit of size_t. */
+#define SIZE_MAX UINT32_MAX
#endif
/* Limits of sig_atomic_t. */
#define SIG_ATOMIC_MIN INT32_MIN
#define SIG_ATOMIC_MAX INT32_MAX
-/* Limit of size_t. */
-#ifdef __mips_n64
-#define SIZE_MAX UINT64_MAX
-#else
-#define SIZE_MAX UINT32_MAX
-#endif
-
#ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
/* Limits of wchar_t. */
#define WCHAR_MIN INT32_MIN
diff --git a/sys/mips/include/_types.h b/sys/mips/include/_types.h
index 1c4af49..57fc843 100644
--- a/sys/mips/include/_types.h
+++ b/sys/mips/include/_types.h
@@ -53,7 +53,7 @@ typedef short __int16_t;
typedef unsigned short __uint16_t;
typedef int __int32_t;
typedef unsigned int __uint32_t;
-#ifdef __mips_n64
+#ifdef __LP64__
typedef long __int64_t;
typedef unsigned long __uint64_t;
#else
@@ -74,17 +74,14 @@ typedef unsigned long long __uint64_t;
*/
typedef __int32_t __clock_t; /* clock()... */
typedef unsigned int __cpumask_t;
-#ifdef __mips_n64
-typedef __int64_t __critical_t;
-#else
-typedef __int32_t __critical_t;
-#endif
typedef double __double_t;
typedef double __float_t;
-#ifdef __mips_n64
+#ifdef __LP64__
+typedef __int64_t __critical_t;
typedef __int64_t __intfptr_t;
typedef __int64_t __intptr_t;
#else
+typedef __int32_t __critical_t;
typedef __int32_t __intfptr_t;
typedef __int32_t __intptr_t;
#endif
@@ -97,14 +94,14 @@ typedef __int8_t __int_least8_t;
typedef __int16_t __int_least16_t;
typedef __int32_t __int_least32_t;
typedef __int64_t __int_least64_t;
-#if defined(__mips_n64) || defined(__mips_n32)
+#if defined(__LP64__) || defined(__mips_n32)
typedef __int64_t __register_t;
typedef __int64_t f_register_t;
#else
typedef __int32_t __register_t;
typedef __int32_t f_register_t;
#endif
-#ifdef __mips_n64
+#ifdef __LP64__
typedef __int64_t __ptrdiff_t;
typedef __int64_t __segsz_t;
typedef __uint64_t __size_t;
@@ -129,12 +126,12 @@ typedef __uint8_t __uint_least8_t;
typedef __uint16_t __uint_least16_t;
typedef __uint32_t __uint_least32_t;
typedef __uint64_t __uint_least64_t;
-#if defined(__mips_n64) || defined(__mips_n32)
+#if defined(__LP64__) || defined(__mips_n32)
typedef __uint64_t __u_register_t;
#else
typedef __uint32_t __u_register_t;
#endif
-#if defined(__mips_n64)
+#ifdef __LP64__
typedef __uint64_t __vm_offset_t;
typedef __uint64_t __vm_paddr_t;
typedef __uint64_t __vm_size_t;
OpenPOWER on IntegriCloud