File: /usr/include/i386/limits.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /*
       2:  * Copyright (c) 1988, 1993
       3:  *    The Regents of the University of California.  All rights reserved.
       4:  *
       5:  * Redistribution and use in source and binary forms, with or without
       6:  * modification, are permitted provided that the following conditions
       7:  * are met:
       8:  * 1. Redistributions of source code must retain the above copyright
       9:  *    notice, this list of conditions and the following disclaimer.
      10:  * 2. Redistributions in binary form must reproduce the above copyright
      11:  *    notice, this list of conditions and the following disclaimer in the
      12:  *    documentation and/or other materials provided with the distribution.
      13:  * 3. All advertising materials mentioning features or use of this software
      14:  *    must display the following acknowledgement:
      15:  *    This product includes software developed by the University of
      16:  *    California, Berkeley and its contributors.
      17:  * 4. Neither the name of the University nor the names of its contributors
      18:  *    may be used to endorse or promote products derived from this software
      19:  *    without specific prior written permission.
      20:  *
      21:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
      22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
      25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      31:  * SUCH DAMAGE.
      32:  *
      33:  *    @(#)limits.h    8.3 (Berkeley) 1/4/94
      34:  */
      35: 
      36: #ifndef _I386_LIMITS_H_
      37: #define _I386_LIMITS_H_
      38: 
      39: #include <sys/cdefs.h>
      40: #include <i386/_limits.h>
      41: 
      42: #define    CHAR_BIT    8        /* number of bits in a char */
      43: #define    MB_LEN_MAX    6        /* Allow 31 bit UTF2 */
      44: 
      45: #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
      46: #define    CLK_TCK        __DARWIN_CLK_TCK    /* ticks per second */
      47: #endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
      48: 
      49: /*
      50:  * According to ANSI (section 2.2.4.2), the values below must be usable by
      51:  * #if preprocessing directives.  Additionally, the expression must have the
      52:  * same type as would an expression that is an object of the corresponding
      53:  * type converted according to the integral promotions.  The subtraction for
      54:  * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is an
      55:  * unsigned int for 32-bit two's complement ANSI compilers (section 3.1.3.2).
      56:  * These numbers work for pcc as well.  The UINT_MAX and ULONG_MAX values
      57:  * are written as hex so that GCC will be quiet about large integer constants.
      58:  */
      59: #define    SCHAR_MAX    127        /* min value for a signed char */
      60: #define    SCHAR_MIN    (-128)        /* max value for a signed char */
      61: 
      62: #define    UCHAR_MAX    255        /* max value for an unsigned char */
      63: #define    CHAR_MAX    127        /* max value for a char */
      64: #define    CHAR_MIN    (-128)        /* min value for a char */
      65: 
      66: #define    USHRT_MAX    65535        /* max value for an unsigned short */
      67: #define    SHRT_MAX    32767        /* max value for a short */
      68: #define    SHRT_MIN    (-32768)    /* min value for a short */
      69: 
      70: #define    UINT_MAX    0xffffffff    /* max value for an unsigned int */
      71: #define    INT_MAX        2147483647    /* max value for an int */
      72: #define    INT_MIN        (-2147483647-1)    /* min value for an int */
      73: 
      74: #ifdef __LP64__
      75: #define    ULONG_MAX    0xffffffffffffffffUL    /* max unsigned long */
      76: #define    LONG_MAX    0x7fffffffffffffffL    /* max signed long */
      77: #define    LONG_MIN    (-0x7fffffffffffffffL-1) /* min signed long */
      78: #else /* !__LP64__ */
      79: #define    ULONG_MAX    0xffffffffUL    /* max unsigned long */
      80: #define    LONG_MAX    2147483647L    /* max signed long */
      81: #define    LONG_MIN    (-2147483647L-1) /* min signed long */
      82: #endif /* __LP64__ */
      83: 
      84: #define    ULLONG_MAX    0xffffffffffffffffULL    /* max unsigned long long */
      85: #define    LLONG_MAX    0x7fffffffffffffffLL    /* max signed long long */
      86: #define    LLONG_MIN    (-0x7fffffffffffffffLL-1) /* min signed long long */
      87: 
      88: #if !defined(_ANSI_SOURCE)
      89: #ifdef __LP64__
      90: #define LONG_BIT    64
      91: #else /* !__LP64__ */
      92: #define LONG_BIT    32
      93: #endif /* __LP64__ */
      94: #define    SSIZE_MAX    LONG_MAX    /* max value for a ssize_t */
      95: #define WORD_BIT    32
      96: 
      97: #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE)
      98: #define    SIZE_T_MAX    ULONG_MAX    /* max value for a size_t */
      99: 
     100: #define    UQUAD_MAX    ULLONG_MAX
     101: #define    QUAD_MAX    LLONG_MAX
     102: #define    QUAD_MIN    LLONG_MIN
     103: 
     104: #endif /* (!_POSIX_C_SOURCE && !_XOPEN_SOURCE) || _DARWIN_C_SOURCE */
     105: #endif /* !_ANSI_SOURCE */
     106: 
     107: #endif /* _I386_LIMITS_H_ */
     108: