williamr@2: /* williamr@2: * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef _LIMITS_H_ williamr@2: #define _LIMITS_H_ williamr@2: /** williamr@2: Number of bits in a `char'. williamr@2: */ williamr@2: #define CHAR_BIT 8 williamr@2: williamr@2: /** williamr@2: Maximum length of any multibyte character in any locale. williamr@2: Locale-writers should change this as necessary. williamr@2: */ williamr@2: #define MB_LEN_MAX 2 williamr@2: williamr@2: /** williamr@2: Minimum and maximum values a `signed char' can hold. williamr@2: */ williamr@2: #define SCHAR_MIN (-128) williamr@2: #define SCHAR_MAX 127 williamr@2: williamr@2: /** williamr@2: Maximum value an `unsigned char' can hold. (Minimum is 0.) williamr@2: */ williamr@2: #define UCHAR_MAX 255U williamr@2: williamr@2: /** williamr@2: Minimum and maximum values a `char' can hold. williamr@2: The sign of "char" is probably dictated by a command-line switch to williamr@2: your compiler. williamr@2: MSVC will define _CHAR_UNSIGNED if the /J option is used. williamr@2: GCC uses --unsigned-char (and friends) to override the default for williamr@2: the target processor and defines a symbol __CHAR_UNSIGNED__ williamr@2: if appropriate. williamr@2: */ williamr@2: #if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED) || ( defined (__ARMCC__) && !( __FEATURE_SIGNED_CHAR) ) williamr@2: #define CHAR_MIN 0 williamr@2: #define CHAR_MAX UCHAR_MAX williamr@2: #else williamr@2: #define CHAR_MIN SCHAR_MIN williamr@2: #define CHAR_MAX SCHAR_MAX williamr@2: #endif williamr@2: williamr@2: /** williamr@2: Minimum and maximum values a `signed short int' can hold. williamr@2: */ williamr@2: #define SHRT_MIN (-32768) williamr@2: #define SHRT_MAX 32767 williamr@2: williamr@2: /** williamr@2: Maximum value an `unsigned short int' can hold. (Minimum is 0.) williamr@2: */ williamr@2: #define USHRT_MAX 65535 williamr@2: williamr@2: /** williamr@2: Minimum and maximum values a `signed int' can hold. williamr@2: */ williamr@2: #define INT_MIN (- INT_MAX - 1) williamr@2: #define INT_MAX 2147483647 williamr@2: williamr@2: /** williamr@2: Maximum value an `unsigned int' can hold. (Minimum is 0.) williamr@2: */ williamr@2: #define UINT_MAX 4294967295U williamr@2: williamr@2: /** williamr@2: Minimum and maximum values a `signed long int' can hold. williamr@2: */ williamr@2: #define LONG_MIN INT_MIN williamr@2: #define LONG_MAX INT_MAX williamr@2: williamr@2: /** williamr@2: Maximum value an `unsigned long int' can hold. (Minimum is 0.) williamr@2: */ williamr@2: #define ULONG_MAX UINT_MAX williamr@2: williamr@2: #endif /* limits.h */