1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 /* Copyright (c) 1988 AT&T */ 28 /* All Rights Reserved */ 29 30 31 /* 32 * An application should not include this header directly. Instead it 33 * should be included only through the inclusion of other Sun headers. 34 * 35 * The contents of this header is limited to identifiers specified in the 36 * C Standard. Any new identifiers specified in future amendments to the 37 * C Standard must be placed in this header. If these new identifiers 38 * are required to also be in the C++ Standard "std" namespace, then for 39 * anything other than macro definitions, corresponding "using" directives 40 * must also be added to <limits.h>. 41 */ 42 43 #ifndef _ISO_LIMITS_ISO_H 44 #define _ISO_LIMITS_ISO_H 45 46 #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.34 */ 47 48 #ifdef __cplusplus 49 extern "C" { 50 #endif 51 52 /* 53 * Sizes of integral types 54 */ 55 #define CHAR_BIT 8 /* max # of bits in a "char" */ 56 #define SCHAR_MIN (-128) /* min value of a "signed char" */ 57 #define SCHAR_MAX 127 /* max value of a "signed char" */ 58 #define UCHAR_MAX 255 /* max value of an "unsigned char" */ 59 60 #define MB_LEN_MAX 5 61 62 #if defined(_CHAR_IS_SIGNED) 63 #define CHAR_MIN SCHAR_MIN /* min value of a "char" */ 64 #define CHAR_MAX SCHAR_MAX /* max value of a "char" */ 65 #elif defined(_CHAR_IS_UNSIGNED) 66 #define CHAR_MIN 0 /* min value of a "char" */ 67 #define CHAR_MAX UCHAR_MAX /* max value of a "char" */ 68 #else 69 #error "chars are signed or unsigned" 70 #endif 71 72 #define SHRT_MIN (-32768) /* min value of a "short int" */ 73 #define SHRT_MAX 32767 /* max value of a "short int" */ 74 #define USHRT_MAX 65535 /* max value of "unsigned short int" */ 75 #define INT_MIN (-2147483647-1) /* min value of an "int" */ 76 #define INT_MAX 2147483647 /* max value of an "int" */ 77 #define UINT_MAX 4294967295U /* max value of an "unsigned int" */ 78 #if defined(_LP64) 79 #define LONG_MIN (-9223372036854775807L-1L) 80 /* min value of a "long int" */ 81 #define LONG_MAX 9223372036854775807L 82 /* max value of a "long int" */ 83 #define ULONG_MAX 18446744073709551615UL 84 /* max value of "unsigned long int" */ 85 #else /* _ILP32 */ 86 #define LONG_MIN (-2147483647L-1L) 87 /* min value of a "long int" */ 88 #define LONG_MAX 2147483647L /* max value of a "long int" */ 89 #define ULONG_MAX 4294967295UL /* max value of "unsigned long int" */ 90 #endif 91 #if !defined(_STRICT_STDC) || defined(_STDC_C99) || defined(__EXTENSIONS__) 92 #define LLONG_MIN (-9223372036854775807LL-1LL) 93 /* min value of a long long */ 94 #define LLONG_MAX 9223372036854775807LL 95 /* max value of a long long */ 96 #define ULLONG_MAX 18446744073709551615ULL 97 /* max value of "unsigned long long */ 98 #endif /* !defined(_STRICT_STDC) || defined(_STDC_C99)... */ 99 100 #ifdef __cplusplus 101 } 102 #endif 103 104 #endif /* _ISO_LIMITS_ISO_H */ 105