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 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 /* 51 * Sizes of integral types 52 */ 53 #define CHAR_BIT 8 /* max # of bits in a "char" */ 54 #define SCHAR_MIN (-128) /* min value of a "signed char" */ 55 #define SCHAR_MAX 127 /* max value of a "signed char" */ 56 #define UCHAR_MAX 255 /* max value of an "unsigned char" */ 57 58 #define MB_LEN_MAX 5 59 60 #if defined(_CHAR_IS_SIGNED) 61 #define CHAR_MIN SCHAR_MIN /* min value of a "char" */ 62 #define CHAR_MAX SCHAR_MAX /* max value of a "char" */ 63 #elif defined(_CHAR_IS_UNSIGNED) 64 #define CHAR_MIN 0 /* min value of a "char" */ 65 #define CHAR_MAX UCHAR_MAX /* max value of a "char" */ 66 #else 67 #error "chars are signed or unsigned" 68 #endif 69 70 #define SHRT_MIN (-32768) /* min value of a "short int" */ 71 #define SHRT_MAX 32767 /* max value of a "short int" */ 72 #define USHRT_MAX 65535 /* max value of "unsigned short int" */ 73 #define INT_MIN (-2147483647-1) /* min value of an "int" */ 74 #define INT_MAX 2147483647 /* max value of an "int" */ 75 #define UINT_MAX 4294967295U /* max value of an "unsigned int" */ 76 #if defined(_LP64) 77 #define LONG_MIN (-9223372036854775807L-1L) 78 /* min value of a "long int" */ 79 #define LONG_MAX 9223372036854775807L 80 /* max value of a "long int" */ 81 #define ULONG_MAX 18446744073709551615UL 82 /* max value of "unsigned long int" */ 83 #else /* _ILP32 */ 84 #define LONG_MIN (-2147483647L-1L) 85 /* min value of a "long int" */ 86 #define LONG_MAX 2147483647L /* max value of a "long int" */ 87 #define ULONG_MAX 4294967295UL /* max value of "unsigned long int" */ 88 #endif 89 #if !defined(_STRICT_STDC) || defined(_STDC_C99) || defined(__EXTENSIONS__) 90 #define LLONG_MIN (-9223372036854775807LL-1LL) 91 /* min value of a long long */ 92 #define LLONG_MAX 9223372036854775807LL 93 /* max value of a long long */ 94 #define ULLONG_MAX 18446744073709551615ULL 95 /* max value of "unsigned long long */ 96 #endif /* !defined(_STRICT_STDC) || defined(_STDC_C99)... */ 97 98 #ifdef __cplusplus 99 } 100 #endif 101 102 #endif /* _ISO_LIMITS_ISO_H */ 103