Annotation of linux/include/stdint.h, revision 1.1.1.1

1.1       root        1: /* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
                      2:    This file is part of the GNU C Library.
                      3: 
                      4:    The GNU C Library is free software; you can redistribute it and/or
                      5:    modify it under the terms of the GNU Lesser General Public
                      6:    License as published by the Free Software Foundation; either
                      7:    version 2.1 of the License, or (at your option) any later version.
                      8: 
                      9:    The GNU C Library is distributed in the hope that it will be useful,
                     10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     12:    Lesser General Public License for more details.
                     13: 
                     14:    You should have received a copy of the GNU Lesser General Public
                     15:    License along with the GNU C Library; if not, write to the Free
                     16:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                     17:    02111-1307 USA.  */
                     18: 
                     19: /*
                     20:  *     ISO C99: 7.18 Integer types <stdint.h>
                     21:  */
                     22: 
                     23: #ifndef _STDINT_H
                     24: #define _STDINT_H      1
                     25: 
                     26: //#include <features.h>
                     27: #include <bits/wchar.h>
                     28: #include <bits/wordsize.h>
                     29: 
                     30: /* Exact integral types.  */
                     31: 
                     32: /* Signed.  */
                     33: 
                     34: /* There is some amount of overlap with <sys/types.h> as known by inet code */
                     35: #ifndef __int8_t_defined
                     36: # define __int8_t_defined
                     37: typedef signed char            int8_t;
                     38: typedef short int              int16_t;
                     39: typedef int                    int32_t;
                     40: # if __WORDSIZE == 64
                     41: typedef long int               int64_t;
                     42: # else
                     43: __extension__
                     44: typedef long long int          int64_t;
                     45: # endif
                     46: #endif
                     47: 
                     48: /* Unsigned.  */
                     49: typedef unsigned char          uint8_t;
                     50: typedef unsigned short int     uint16_t;
                     51: #ifndef __uint32_t_defined
                     52: typedef unsigned int           uint32_t;
                     53: # define __uint32_t_defined
                     54: #endif
                     55: #if __WORDSIZE == 64
                     56: typedef unsigned long int      uint64_t;
                     57: #else
                     58: __extension__
                     59: typedef unsigned long long int uint64_t;
                     60: #endif
                     61: 
                     62: 
                     63: /* Small types.  */
                     64: 
                     65: /* Signed.  */
                     66: typedef signed char            int_least8_t;
                     67: typedef short int              int_least16_t;
                     68: typedef int                    int_least32_t;
                     69: #if __WORDSIZE == 64
                     70: typedef long int               int_least64_t;
                     71: #else
                     72: __extension__
                     73: typedef long long int          int_least64_t;
                     74: #endif
                     75: 
                     76: /* Unsigned.  */
                     77: typedef unsigned char          uint_least8_t;
                     78: typedef unsigned short int     uint_least16_t;
                     79: typedef unsigned int           uint_least32_t;
                     80: #if __WORDSIZE == 64
                     81: typedef unsigned long int      uint_least64_t;
                     82: #else
                     83: __extension__
                     84: typedef unsigned long long int uint_least64_t;
                     85: #endif
                     86: 
                     87: 
                     88: /* Fast types.  */
                     89: 
                     90: /* Signed.  */
                     91: typedef signed char            int_fast8_t;
                     92: #if __WORDSIZE == 64
                     93: typedef long int               int_fast16_t;
                     94: typedef long int               int_fast32_t;
                     95: typedef long int               int_fast64_t;
                     96: #else
                     97: typedef int                    int_fast16_t;
                     98: typedef int                    int_fast32_t;
                     99: __extension__
                    100: typedef long long int          int_fast64_t;
                    101: #endif
                    102: 
                    103: /* Unsigned.  */
                    104: typedef unsigned char          uint_fast8_t;
                    105: #if __WORDSIZE == 64
                    106: typedef unsigned long int      uint_fast16_t;
                    107: typedef unsigned long int      uint_fast32_t;
                    108: typedef unsigned long int      uint_fast64_t;
                    109: #else
                    110: typedef unsigned int           uint_fast16_t;
                    111: typedef unsigned int           uint_fast32_t;
                    112: __extension__
                    113: typedef unsigned long long int uint_fast64_t;
                    114: #endif
                    115: 
                    116: 
                    117: /* Types for `void *' pointers.  */
                    118: #if __WORDSIZE == 64
                    119: # ifndef __intptr_t_defined
                    120: typedef long int               intptr_t;
                    121: #  define __intptr_t_defined
                    122: # endif
                    123: typedef unsigned long int      uintptr_t;
                    124: #else
                    125: # ifndef __intptr_t_defined
                    126: typedef int                    intptr_t;
                    127: #  define __intptr_t_defined
                    128: # endif
                    129: typedef unsigned int           uintptr_t;
                    130: #endif
                    131: 
                    132: 
                    133: /* Largest integral types.  */
                    134: #if __WORDSIZE == 64
                    135: typedef long int               intmax_t;
                    136: typedef unsigned long int      uintmax_t;
                    137: #else
                    138: __extension__
                    139: typedef long long int          intmax_t;
                    140: __extension__
                    141: typedef unsigned long long int uintmax_t;
                    142: #endif
                    143: 
                    144: 
                    145: /* The ISO C99 standard specifies that in C++ implementations these
                    146:    macros should only be defined if explicitly requested.  */
                    147: #if !defined __cplusplus || defined __STDC_LIMIT_MACROS
                    148: 
                    149: # if __WORDSIZE == 64
                    150: #  define __INT64_C(c) c ## L
                    151: #  define __UINT64_C(c)        c ## UL
                    152: # else
                    153: #  define __INT64_C(c) c ## LL
                    154: #  define __UINT64_C(c)        c ## ULL
                    155: # endif
                    156: 
                    157: /* Limits of integral types.  */
                    158: 
                    159: /* Minimum of signed integral types.  */
                    160: # define INT8_MIN              (-128)
                    161: # define INT16_MIN             (-32767-1)
                    162: # define INT32_MIN             (-2147483647-1)
                    163: # define INT64_MIN             (-__INT64_C(9223372036854775807)-1)
                    164: /* Maximum of signed integral types.  */
                    165: # define INT8_MAX              (127)
                    166: # define INT16_MAX             (32767)
                    167: # define INT32_MAX             (2147483647)
                    168: # define INT64_MAX             (__INT64_C(9223372036854775807))
                    169: 
                    170: /* Maximum of unsigned integral types.  */
                    171: # define UINT8_MAX             (255)
                    172: # define UINT16_MAX            (65535)
                    173: # define UINT32_MAX            (4294967295U)
                    174: # define UINT64_MAX            (__UINT64_C(18446744073709551615))
                    175: 
                    176: 
                    177: /* Minimum of signed integral types having a minimum size.  */
                    178: # define INT_LEAST8_MIN                (-128)
                    179: # define INT_LEAST16_MIN       (-32767-1)
                    180: # define INT_LEAST32_MIN       (-2147483647-1)
                    181: # define INT_LEAST64_MIN       (-__INT64_C(9223372036854775807)-1)
                    182: /* Maximum of signed integral types having a minimum size.  */
                    183: # define INT_LEAST8_MAX                (127)
                    184: # define INT_LEAST16_MAX       (32767)
                    185: # define INT_LEAST32_MAX       (2147483647)
                    186: # define INT_LEAST64_MAX       (__INT64_C(9223372036854775807))
                    187: 
                    188: /* Maximum of unsigned integral types having a minimum size.  */
                    189: # define UINT_LEAST8_MAX       (255)
                    190: # define UINT_LEAST16_MAX      (65535)
                    191: # define UINT_LEAST32_MAX      (4294967295U)
                    192: # define UINT_LEAST64_MAX      (__UINT64_C(18446744073709551615))
                    193: 
                    194: 
                    195: /* Minimum of fast signed integral types having a minimum size.  */
                    196: # define INT_FAST8_MIN         (-128)
                    197: # if __WORDSIZE == 64
                    198: #  define INT_FAST16_MIN       (-9223372036854775807L-1)
                    199: #  define INT_FAST32_MIN       (-9223372036854775807L-1)
                    200: # else
                    201: #  define INT_FAST16_MIN       (-2147483647-1)
                    202: #  define INT_FAST32_MIN       (-2147483647-1)
                    203: # endif
                    204: # define INT_FAST64_MIN                (-__INT64_C(9223372036854775807)-1)
                    205: /* Maximum of fast signed integral types having a minimum size.  */
                    206: # define INT_FAST8_MAX         (127)
                    207: # if __WORDSIZE == 64
                    208: #  define INT_FAST16_MAX       (9223372036854775807L)
                    209: #  define INT_FAST32_MAX       (9223372036854775807L)
                    210: # else
                    211: #  define INT_FAST16_MAX       (2147483647)
                    212: #  define INT_FAST32_MAX       (2147483647)
                    213: # endif
                    214: # define INT_FAST64_MAX                (__INT64_C(9223372036854775807))
                    215: 
                    216: /* Maximum of fast unsigned integral types having a minimum size.  */
                    217: # define UINT_FAST8_MAX                (255)
                    218: # if __WORDSIZE == 64
                    219: #  define UINT_FAST16_MAX      (18446744073709551615UL)
                    220: #  define UINT_FAST32_MAX      (18446744073709551615UL)
                    221: # else
                    222: #  define UINT_FAST16_MAX      (4294967295U)
                    223: #  define UINT_FAST32_MAX      (4294967295U)
                    224: # endif
                    225: # define UINT_FAST64_MAX       (__UINT64_C(18446744073709551615))
                    226: 
                    227: 
                    228: /* Values to test for integral types holding `void *' pointer.  */
                    229: # if __WORDSIZE == 64
                    230: #  define INTPTR_MIN           (-9223372036854775807L-1)
                    231: #  define INTPTR_MAX           (9223372036854775807L)
                    232: #  define UINTPTR_MAX          (18446744073709551615UL)
                    233: # else
                    234: #  define INTPTR_MIN           (-2147483647-1)
                    235: #  define INTPTR_MAX           (2147483647)
                    236: #  define UINTPTR_MAX          (4294967295U)
                    237: # endif
                    238: 
                    239: 
                    240: /* Minimum for largest signed integral type.  */
                    241: # define INTMAX_MIN            (-__INT64_C(9223372036854775807)-1)
                    242: /* Maximum for largest signed integral type.  */
                    243: # define INTMAX_MAX            (__INT64_C(9223372036854775807))
                    244: 
                    245: /* Maximum for largest unsigned integral type.  */
                    246: # define UINTMAX_MAX           (__UINT64_C(18446744073709551615))
                    247: 
                    248: 
                    249: /* Limits of other integer types.  */
                    250: 
                    251: /* Limits of `ptrdiff_t' type.  */
                    252: # if __WORDSIZE == 64
                    253: #  define PTRDIFF_MIN          (-9223372036854775807L-1)
                    254: #  define PTRDIFF_MAX          (9223372036854775807L)
                    255: # else
                    256: #  define PTRDIFF_MIN          (-2147483647-1)
                    257: #  define PTRDIFF_MAX          (2147483647)
                    258: # endif
                    259: 
                    260: /* Limits of `sig_atomic_t'.  */
                    261: # define SIG_ATOMIC_MIN                (-2147483647-1)
                    262: # define SIG_ATOMIC_MAX                (2147483647)
                    263: 
                    264: /* Limit of `size_t' type.  */
                    265: # if __WORDSIZE == 64
                    266: #  define SIZE_MAX             (18446744073709551615UL)
                    267: # else
                    268: #  define SIZE_MAX             (4294967295U)
                    269: # endif
                    270: 
                    271: /* Limits of `wchar_t'.  */
                    272: # ifndef WCHAR_MIN
                    273: /* These constants might also be defined in <wchar.h>.  */
                    274: #  define WCHAR_MIN            __WCHAR_MIN
                    275: #  define WCHAR_MAX            __WCHAR_MAX
                    276: # endif
                    277: 
                    278: /* Limits of `wint_t'.  */
                    279: # define WINT_MIN              (0u)
                    280: # define WINT_MAX              (4294967295u)
                    281: 
                    282: #endif /* C++ && limit macros */
                    283: 
                    284: 
                    285: /* The ISO C99 standard specifies that in C++ implementations these
                    286:    should only be defined if explicitly requested.  */
                    287: #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
                    288: 
                    289: /* Signed.  */
                    290: # define INT8_C(c)     c
                    291: # define INT16_C(c)    c
                    292: # define INT32_C(c)    c
                    293: # if __WORDSIZE == 64
                    294: #  define INT64_C(c)   c ## L
                    295: # else
                    296: #  define INT64_C(c)   c ## LL
                    297: # endif
                    298: 
                    299: /* Unsigned.  */
                    300: # define UINT8_C(c)    c ## U
                    301: # define UINT16_C(c)   c ## U
                    302: # define UINT32_C(c)   c ## U
                    303: # if __WORDSIZE == 64
                    304: #  define UINT64_C(c)  c ## UL
                    305: # else
                    306: #  define UINT64_C(c)  c ## ULL
                    307: # endif
                    308: 
                    309: /* Maximal type.  */
                    310: # if __WORDSIZE == 64
                    311: #  define INTMAX_C(c)  c ## L
                    312: #  define UINTMAX_C(c) c ## UL
                    313: # else
                    314: #  define INTMAX_C(c)  c ## LL
                    315: #  define UINTMAX_C(c) c ## ULL
                    316: # endif
                    317: 
                    318: #endif /* C++ && constant macros */
                    319: 
                    320: #endif /* stdint.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.