Date: Sat, 8 Jan 2011 12:43:05 +0000 (UTC) From: Tijl Coosemans <tijl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r217147 - in head/sys: amd64/include arm/include i386/include ia64/include mips/include powerpc/include sparc64/include sun4v/include Message-ID: <201101081243.p08Ch5vR092295@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tijl Date: Sat Jan 8 12:43:05 2011 New Revision: 217147 URL: http://svn.freebsd.org/changeset/base/217147 Log: 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) Modified: head/sys/amd64/include/_stdint.h head/sys/arm/include/_stdint.h head/sys/i386/include/_stdint.h head/sys/ia64/include/_stdint.h head/sys/mips/include/_inttypes.h head/sys/mips/include/_stdint.h head/sys/mips/include/_types.h head/sys/powerpc/include/_inttypes.h head/sys/powerpc/include/_limits.h head/sys/powerpc/include/_stdint.h head/sys/powerpc/include/_types.h head/sys/sparc64/include/_stdint.h head/sys/sun4v/include/_stdint.h Modified: head/sys/amd64/include/_stdint.h ============================================================================== --- head/sys/amd64/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/amd64/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -52,8 +52,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## UL) -#define INTMAX_C(c) (c ## L) -#define UINTMAX_C(c) (c ## UL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ Modified: head/sys/arm/include/_stdint.h ============================================================================== --- head/sys/arm/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/arm/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -45,8 +45,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## ULL) -#define INTMAX_C(c) (c ## LL) -#define UINTMAX_C(c) (c ## ULL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ Modified: head/sys/i386/include/_stdint.h ============================================================================== --- head/sys/i386/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/i386/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -52,8 +52,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## ULL) -#define INTMAX_C(c) (c ## LL) -#define UINTMAX_C(c) (c ## ULL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ Modified: head/sys/ia64/include/_stdint.h ============================================================================== --- head/sys/ia64/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/ia64/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -45,8 +45,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## UL) -#define INTMAX_C(c) (c ## L) -#define UINTMAX_C(c) (c ## UL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ Modified: head/sys/mips/include/_inttypes.h ============================================================================== --- head/sys/mips/include/_inttypes.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/mips/include/_inttypes.h Sat Jan 8 12:43:05 2011 (r217147) @@ -38,7 +38,7 @@ * Macros for format specifiers. */ -#if defined(__mips_n64) +#ifdef __LP64__ #define PRI64 "l" #else #define PRI64 "ll" Modified: head/sys/mips/include/_stdint.h ============================================================================== --- head/sys/mips/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/mips/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -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 Modified: head/sys/mips/include/_types.h ============================================================================== --- head/sys/mips/include/_types.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/mips/include/_types.h Sat Jan 8 12:43:05 2011 (r217147) @@ -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; Modified: head/sys/powerpc/include/_inttypes.h ============================================================================== --- head/sys/powerpc/include/_inttypes.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/powerpc/include/_inttypes.h Sat Jan 8 12:43:05 2011 (r217147) @@ -37,7 +37,7 @@ * Macros for format specifiers. */ -#ifdef __powerpc64__ +#ifdef __LP64__ #define PRI64 "l" #define PRIreg "l" #else Modified: head/sys/powerpc/include/_limits.h ============================================================================== --- head/sys/powerpc/include/_limits.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/powerpc/include/_limits.h Sat Jan 8 12:43:05 2011 (r217147) @@ -73,7 +73,7 @@ #define __LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ #define __LLONG_MIN (-0x7fffffffffffffffLL - 1) /* min for a long long */ -#ifdef __powerpc64__ +#ifdef __LP64__ #define __SSIZE_MAX __LONG_MAX /* max value for a ssize_t */ #define __SIZE_T_MAX __ULONG_MAX /* max value for a size_t */ #else Modified: head/sys/powerpc/include/_stdint.h ============================================================================== --- head/sys/powerpc/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/powerpc/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -50,18 +50,17 @@ #define UINT16_C(c) (c) #define UINT32_C(c) (c ## U) -#ifdef __powerpc64__ +#ifdef __LP64__ #define INT64_C(c) (c ## L) #define UINT64_C(c) (c ## UL) -#define INTMAX_C(c) (c ## L) -#define UINTMAX_C(c) (c ## UL) #else #define INT64_C(c) (c ## LL) #define UINT64_C(c) (c ## ULL) -#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) */ #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) @@ -74,27 +73,19 @@ #define INT8_MIN (-0x7f-1) #define INT16_MIN (-0x7fff-1) #define INT32_MIN (-0x7fffffff-1) -#define INT64_MIN (-0x7fffffffffffffffLL-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 -#ifdef __powerpc64__ -#define INT64_MAX 0x7fffffffffffffffL -#else -#define INT64_MAX 0x7fffffffffffffffLL -#endif +#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 -#ifdef __powerpc64__ -#define UINT64_MAX 0xffffffffffffffffUL -#else -#define UINT64_MAX 0xffffffffffffffffULL -#endif +#define UINT32_MAX 0xffffffff +#define UINT64_MAX UINT64_C(0xffffffffffffffff) /* * ISO/IEC 9899:1999 @@ -144,7 +135,7 @@ * ISO/IEC 9899:1999 * 7.18.2.4 Limits of integer types capable of holding object pointers */ -#ifdef __powerpc64__ +#ifdef __LP64__ #define INTPTR_MIN INT64_MIN #define INTPTR_MAX INT64_MAX #define UINTPTR_MAX UINT64_MAX @@ -166,7 +157,7 @@ * ISO/IEC 9899:1999 * 7.18.3 Limits of other integer types */ -#ifdef __powerpc64__ +#ifdef __LP64__ /* Limits of ptrdiff_t. */ #define PTRDIFF_MIN INT64_MIN #define PTRDIFF_MAX INT64_MAX Modified: head/sys/powerpc/include/_types.h ============================================================================== --- head/sys/powerpc/include/_types.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/powerpc/include/_types.h Sat Jan 8 12:43:05 2011 (r217147) @@ -52,7 +52,7 @@ typedef short __int16_t; typedef unsigned short __uint16_t; typedef int __int32_t; typedef unsigned int __uint32_t; -#ifdef __powerpc64__ +#ifdef __LP64__ typedef long __int64_t; typedef unsigned long __uint64_t; #else @@ -75,7 +75,7 @@ typedef __uint32_t __clock_t; /* clock( typedef unsigned int __cpumask_t; typedef double __double_t; typedef double __float_t; -#ifdef __powerpc64__ +#ifdef __LP64__ typedef __int64_t __critical_t; typedef __int64_t __intfptr_t; typedef __int64_t __intptr_t; @@ -93,7 +93,7 @@ typedef __int8_t __int_least8_t; typedef __int16_t __int_least16_t; typedef __int32_t __int_least32_t; typedef __int64_t __int_least64_t; -#ifdef __powerpc64__ +#ifdef __LP64__ typedef __int64_t __ptrdiff_t; /* ptr1 - ptr2 */ typedef __int64_t __register_t; typedef __int64_t __segsz_t; /* segment size (in pages) */ @@ -121,7 +121,7 @@ typedef __uint8_t __uint_least8_t; typedef __uint16_t __uint_least16_t; typedef __uint32_t __uint_least32_t; typedef __uint64_t __uint_least64_t; -#ifdef __powerpc64__ +#ifdef __LP64__ typedef __uint64_t __u_register_t; typedef __uint64_t __vm_offset_t; typedef __uint64_t __vm_paddr_t; Modified: head/sys/sparc64/include/_stdint.h ============================================================================== --- head/sys/sparc64/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/sparc64/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -52,8 +52,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## UL) -#define INTMAX_C(c) (c ## L) -#define UINTMAX_C(c) (c ## UL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ Modified: head/sys/sun4v/include/_stdint.h ============================================================================== --- head/sys/sun4v/include/_stdint.h Sat Jan 8 11:47:55 2011 (r217146) +++ head/sys/sun4v/include/_stdint.h Sat Jan 8 12:43:05 2011 (r217147) @@ -52,8 +52,8 @@ #define UINT32_C(c) (c ## U) #define UINT64_C(c) (c ## UL) -#define INTMAX_C(c) (c ## L) -#define UINTMAX_C(c) (c ## UL) +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101081243.p08Ch5vR092295>