From b8efe2aeabda2d34c65e986d0dc8d20e8067481d Mon Sep 17 00:00:00 2001 From: obrien Date: Tue, 24 Oct 2000 10:48:50 +0000 Subject: * Update comments * convert decimal constants to hex Submitted by: bde * Add ISO-C99 long long limits --- sys/powerpc/include/_limits.h | 51 ++++++++++++++++++++++++++----------------- sys/powerpc/include/limits.h | 51 ++++++++++++++++++++++++++----------------- 2 files changed, 62 insertions(+), 40 deletions(-) (limited to 'sys/powerpc/include') diff --git a/sys/powerpc/include/_limits.h b/sys/powerpc/include/_limits.h index 0d258ff..2911837 100644 --- a/sys/powerpc/include/_limits.h +++ b/sys/powerpc/include/_limits.h @@ -45,15 +45,15 @@ * #if preprocessing directives. Additionally, the expression must have the * same type as would an expression that is an object of the corresponding * type converted according to the integral promotions. The subtraction for - * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an + * INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). - * These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values - * are written as hex so that GCC will be quiet about large integer constants. + * These numbers are for the default configuration of gcc. They work for + * some other compilers as well, but this should not be depended on. */ -#define SCHAR_MAX 127 /* min value for a signed char */ -#define SCHAR_MIN (-128) /* max value for a signed char */ +#define SCHAR_MAX 0x7f /* max value for a signed char */ +#define SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ -#define UCHAR_MAX 255 /* max value for an unsigned char */ +#define UCHAR_MAX 0xff /* max value for an unsigned char */ #ifdef __CHAR_UNSIGNED__ #define CHAR_MAX UCHAR_MAX /* max value for a char */ @@ -63,17 +63,29 @@ #define CHAR_MIN SCHAR_MIN /* min value for a char */ #endif -#define USHRT_MAX 65535 /* max value for an unsigned short */ -#define SHRT_MAX 32767 /* max value for a short */ -#define SHRT_MIN (-32768) /* min value for a short */ +#define USHRT_MAX 0xffff /* max value for an unsigned short */ +#define SHRT_MAX 0x7fff /* max value for a short */ +#define SHRT_MIN (-0x7ffff - 1) /* min value for a short */ -#define UINT_MAX 0xffffffff /* max value for an unsigned int */ -#define INT_MAX 2147483647 /* max value for an int */ -#define INT_MIN (-2147483647-1) /* min value for an int */ +#define UINT_MAX 0xffffffffU /* max value for an unsigned int */ +#define INT_MAX 0x7fffffff /* max value for an int */ +#define INT_MIN (-0x7fffffff - 1) /* min value for an int */ -#define ULONG_MAX 0xffffffff /* max value for an unsigned long */ -#define LONG_MAX 2147483647 /* max value for a long */ -#define LONG_MIN (-2147483647-1) /* min value for a long */ +/* Bad hack for gcc configured to give 64-bit longs. */ +#ifdef _LARGE_LONG +#define ULONG_MAX 0xffffffffffffffffUL +#define LONG_MAX 0x7fffffffffffffffL +#define LONG_MIN (-0x7fffffffffffffffL - 1) +#else +#define ULONG_MAX 0xffffffffUL /* max value for an unsigned long */ +#define LONG_MAX 0x7fffffffL /* max value for a long */ +#define LONG_MIN (-0x7fffffffL - 1) /* min value for a long */ +#endif + + /* max value for an unsigned long long */ +#define ULLONG_MAX 0xffffffffffffffffULL +#define LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ +#define LLONG_MIN (-0x7fffffffffffffffLL - 1) /* min for a long long */ #if !defined(_ANSI_SOURCE) #define SSIZE_MAX INT_MAX /* max value for a ssize_t */ @@ -81,11 +93,10 @@ #if !defined(_POSIX_SOURCE) #define SIZE_T_MAX UINT_MAX /* max value for a size_t */ -/* GCC requires that quad constants be written as expressions. */ -#define UQUAD_MAX ((u_quad_t)0-1) /* max value for a uquad_t */ - /* max value for a quad_t */ -#define QUAD_MAX ((quad_t)(UQUAD_MAX >> 1)) -#define QUAD_MIN (-QUAD_MAX-1) /* min value for a quad_t */ +/* Quads and long longs are the same size. Ensure they stay in sync. */ +#define UQUAD_MAX ULLONG_MAX /* max value for a uquad_t */ +#define QUAD_MAX LLONG_MAX /* max value for a quad_t */ +#define QUAD_MIN LLONG_MIN /* min value for a quad_t */ #endif /* !_POSIX_SOURCE */ #endif /* !_ANSI_SOURCE */ diff --git a/sys/powerpc/include/limits.h b/sys/powerpc/include/limits.h index 0d258ff..2911837 100644 --- a/sys/powerpc/include/limits.h +++ b/sys/powerpc/include/limits.h @@ -45,15 +45,15 @@ * #if preprocessing directives. Additionally, the expression must have the * same type as would an expression that is an object of the corresponding * type converted according to the integral promotions. The subtraction for - * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an + * INT_MIN, etc., is so the value is not unsigned; e.g., 0x80000000 is an * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). - * These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values - * are written as hex so that GCC will be quiet about large integer constants. + * These numbers are for the default configuration of gcc. They work for + * some other compilers as well, but this should not be depended on. */ -#define SCHAR_MAX 127 /* min value for a signed char */ -#define SCHAR_MIN (-128) /* max value for a signed char */ +#define SCHAR_MAX 0x7f /* max value for a signed char */ +#define SCHAR_MIN (-0x7f - 1) /* min value for a signed char */ -#define UCHAR_MAX 255 /* max value for an unsigned char */ +#define UCHAR_MAX 0xff /* max value for an unsigned char */ #ifdef __CHAR_UNSIGNED__ #define CHAR_MAX UCHAR_MAX /* max value for a char */ @@ -63,17 +63,29 @@ #define CHAR_MIN SCHAR_MIN /* min value for a char */ #endif -#define USHRT_MAX 65535 /* max value for an unsigned short */ -#define SHRT_MAX 32767 /* max value for a short */ -#define SHRT_MIN (-32768) /* min value for a short */ +#define USHRT_MAX 0xffff /* max value for an unsigned short */ +#define SHRT_MAX 0x7fff /* max value for a short */ +#define SHRT_MIN (-0x7ffff - 1) /* min value for a short */ -#define UINT_MAX 0xffffffff /* max value for an unsigned int */ -#define INT_MAX 2147483647 /* max value for an int */ -#define INT_MIN (-2147483647-1) /* min value for an int */ +#define UINT_MAX 0xffffffffU /* max value for an unsigned int */ +#define INT_MAX 0x7fffffff /* max value for an int */ +#define INT_MIN (-0x7fffffff - 1) /* min value for an int */ -#define ULONG_MAX 0xffffffff /* max value for an unsigned long */ -#define LONG_MAX 2147483647 /* max value for a long */ -#define LONG_MIN (-2147483647-1) /* min value for a long */ +/* Bad hack for gcc configured to give 64-bit longs. */ +#ifdef _LARGE_LONG +#define ULONG_MAX 0xffffffffffffffffUL +#define LONG_MAX 0x7fffffffffffffffL +#define LONG_MIN (-0x7fffffffffffffffL - 1) +#else +#define ULONG_MAX 0xffffffffUL /* max value for an unsigned long */ +#define LONG_MAX 0x7fffffffL /* max value for a long */ +#define LONG_MIN (-0x7fffffffL - 1) /* min value for a long */ +#endif + + /* max value for an unsigned long long */ +#define ULLONG_MAX 0xffffffffffffffffULL +#define LLONG_MAX 0x7fffffffffffffffLL /* max value for a long long */ +#define LLONG_MIN (-0x7fffffffffffffffLL - 1) /* min for a long long */ #if !defined(_ANSI_SOURCE) #define SSIZE_MAX INT_MAX /* max value for a ssize_t */ @@ -81,11 +93,10 @@ #if !defined(_POSIX_SOURCE) #define SIZE_T_MAX UINT_MAX /* max value for a size_t */ -/* GCC requires that quad constants be written as expressions. */ -#define UQUAD_MAX ((u_quad_t)0-1) /* max value for a uquad_t */ - /* max value for a quad_t */ -#define QUAD_MAX ((quad_t)(UQUAD_MAX >> 1)) -#define QUAD_MIN (-QUAD_MAX-1) /* min value for a quad_t */ +/* Quads and long longs are the same size. Ensure they stay in sync. */ +#define UQUAD_MAX ULLONG_MAX /* max value for a uquad_t */ +#define QUAD_MAX LLONG_MAX /* max value for a quad_t */ +#define QUAD_MIN LLONG_MIN /* min value for a quad_t */ #endif /* !_POSIX_SOURCE */ #endif /* !_ANSI_SOURCE */ -- cgit v1.1