1 /* 2 * Copyright (c) 1988 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)limits.h 7.7 (Berkeley) 05/07/93 8 */ 9 10 #define CHAR_BIT 8 /* number of bits in a char */ 11 #define MB_LEN_MAX 1 /* no multibyte characters */ 12 13 #define CLK_TCK 60 /* ticks per second */ 14 15 /* 16 * According to ANSI (section 2.2.4.2), the values below must be usable by 17 * #if preprocessing directives. Additionally, the expression must have the 18 * same type as would an expression that is an object of the corresponding 19 * type converted according to the integral promotions. The subtraction for 20 * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an 21 * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2). 22 * These numbers work for pcc as well. The UINT_MAX and ULONG_MAX values 23 * are written as hex so that GCC will be quiet about large integer constants. 24 */ 25 #define SCHAR_MAX 127 /* min value for a signed char */ 26 #define SCHAR_MIN -128 /* max value for a signed char */ 27 28 #define UCHAR_MAX 255 /* max value for an unsigned char */ 29 #define CHAR_MAX 127 /* max value for a char */ 30 #define CHAR_MIN -128 /* min value for a char */ 31 32 #define USHRT_MAX 65535 /* max value for an unsigned short */ 33 #define SHRT_MAX 32767 /* max value for a short */ 34 #define SHRT_MIN -32768 /* min value for a short */ 35 36 #define UINT_MAX 0xffffffff /* max value for an unsigned int */ 37 #define INT_MAX 2147483647 /* max value for an int */ 38 #define INT_MIN (-2147483647-1) /* min value for an int */ 39 40 #define ULONG_MAX 0xffffffff /* max value for an unsigned long */ 41 #define LONG_MAX 2147483647 /* max value for a long */ 42 #define LONG_MIN (-2147483647-1) /* min value for a long */ 43 44 /* Maximum/minimum values for types from <machine/include/ansi.h>. */ 45 #ifndef _ANSI_SOURCE 46 47 /* Quad constants must be written as expressions; #define GCC_ME_HARDER. */ 48 #define UQUAD_MAX ((u_quad_t)0-1) /* max value for a uquad_t */ 49 /* max value for a quad_t */ 50 #define QUAD_MAX ((quad_t)(UQUAD_MAX >> 1)) 51 #define QUAD_MIN (-QUAD_MAX-1) /* min value for a quad_t */ 52 53 #define SIZE_T_MAX UINT_MAX 54 #endif 55