Back to index

nagios-plugins  1.4.16
stdint.in.h
Go to the documentation of this file.
00001 /* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc.
00002    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
00003    This file is part of gnulib.
00004 
00005    This program is free software; you can redistribute it and/or modify
00006    it under the terms of the GNU General Public License as published by
00007    the Free Software Foundation; either version 3, or (at your option)
00008    any later version.
00009 
00010    This program is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013    GNU General Public License for more details.
00014 
00015    You should have received a copy of the GNU General Public License
00016    along with this program; if not, write to the Free Software Foundation,
00017    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
00018 
00019 /*
00020  * ISO C 99 <stdint.h> for platforms that lack it.
00021  * <http://www.opengroup.org/susv3xbd/stdint.h.html>
00022  */
00023 
00024 #ifndef _GL_STDINT_H
00025 
00026 #if __GNUC__ >= 3
00027 @PRAGMA_SYSTEM_HEADER@
00028 #endif
00029 
00030 /* When including a system file that in turn includes <inttypes.h>,
00031    use the system <inttypes.h>, not our substitute.  This avoids
00032    problems with (for example) VMS, whose <sys/bitypes.h> includes
00033    <inttypes.h>.  */
00034 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
00035 
00036 /* Get those types that are already defined in other system include
00037    files, so that we can "#define int8_t signed char" below without
00038    worrying about a later system include file containing a "typedef
00039    signed char int8_t;" that will get messed up by our macro.  Our
00040    macros should all be consistent with the system versions, except
00041    for the "fast" types and macros, which we recommend against using
00042    in public interfaces due to compiler differences.  */
00043 
00044 #if @HAVE_STDINT_H@
00045 # if defined __sgi && ! defined __c99
00046    /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
00047       with "This header file is to be used only for c99 mode compilations"
00048       diagnostics.  */
00049 #  define __STDINT_H__
00050 # endif
00051   /* Other systems may have an incomplete or buggy <stdint.h>.
00052      Include it before <inttypes.h>, since any "#include <stdint.h>"
00053      in <inttypes.h> would reinclude us, skipping our contents because
00054      _GL_STDINT_H is defined.
00055      The include_next requires a split double-inclusion guard.  */
00056 # @INCLUDE_NEXT@ @NEXT_STDINT_H@
00057 #endif
00058 
00059 #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
00060 #define _GL_STDINT_H
00061 
00062 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
00063    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
00064    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
00065    MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
00066    relies on the system <stdint.h> definitions, so include
00067    <sys/types.h> after @NEXT_STDINT_H@.  */
00068 #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
00069 # include <sys/types.h>
00070 #endif
00071 
00072 /* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
00073 #include <limits.h>
00074 
00075 #if @HAVE_INTTYPES_H@
00076   /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
00077      int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
00078      <inttypes.h> also defines intptr_t and uintptr_t.  */
00079 # include <inttypes.h>
00080 #elif @HAVE_SYS_INTTYPES_H@
00081   /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
00082      the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
00083 # include <sys/inttypes.h>
00084 #endif
00085 
00086 #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
00087   /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
00088      int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
00089      included by <sys/types.h>.  */
00090 # include <sys/bitypes.h>
00091 #endif
00092 
00093 #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
00094 
00095 /* Minimum and maximum values for a integer type under the usual assumption.
00096    Return an unspecified value if BITS == 0, adding a check to pacify
00097    picky compilers.  */
00098 
00099 #define _STDINT_MIN(signed, bits, zero) \
00100   ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
00101 
00102 #define _STDINT_MAX(signed, bits, zero) \
00103   ((signed) \
00104    ? ~ _STDINT_MIN (signed, bits, zero) \
00105    : /* The expression for the unsigned case.  The subtraction of (signed) \
00106         is a nop in the unsigned case and avoids "signed integer overflow" \
00107         warnings in the signed case.  */ \
00108      ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
00109 
00110 /* 7.18.1.1. Exact-width integer types */
00111 
00112 /* Here we assume a standard architecture where the hardware integer
00113    types have 8, 16, 32, optionally 64 bits.  */
00114 
00115 #undef int8_t
00116 #undef uint8_t
00117 typedef signed char gl_int8_t;
00118 typedef unsigned char gl_uint8_t;
00119 #define int8_t gl_int8_t
00120 #define uint8_t gl_uint8_t
00121 
00122 #undef int16_t
00123 #undef uint16_t
00124 typedef short int gl_int16_t;
00125 typedef unsigned short int gl_uint16_t;
00126 #define int16_t gl_int16_t
00127 #define uint16_t gl_uint16_t
00128 
00129 #undef int32_t
00130 #undef uint32_t
00131 typedef int gl_int32_t;
00132 typedef unsigned int gl_uint32_t;
00133 #define int32_t gl_int32_t
00134 #define uint32_t gl_uint32_t
00135 
00136 /* Do not undefine int64_t if gnulib is not being used with 64-bit
00137    types, since otherwise it breaks platforms like Tandem/NSK.  */
00138 #if LONG_MAX >> 31 >> 31 == 1
00139 # undef int64_t
00140 typedef long int gl_int64_t;
00141 # define int64_t gl_int64_t
00142 # define GL_INT64_T
00143 #elif defined _MSC_VER
00144 # undef int64_t
00145 typedef __int64 gl_int64_t;
00146 # define int64_t gl_int64_t
00147 # define GL_INT64_T
00148 #elif @HAVE_LONG_LONG_INT@
00149 # undef int64_t
00150 typedef long long int gl_int64_t;
00151 # define int64_t gl_int64_t
00152 # define GL_INT64_T
00153 #endif
00154 
00155 #if ULONG_MAX >> 31 >> 31 >> 1 == 1
00156 # undef uint64_t
00157 typedef unsigned long int gl_uint64_t;
00158 # define uint64_t gl_uint64_t
00159 # define GL_UINT64_T
00160 #elif defined _MSC_VER
00161 # undef uint64_t
00162 typedef unsigned __int64 gl_uint64_t;
00163 # define uint64_t gl_uint64_t
00164 # define GL_UINT64_T
00165 #elif @HAVE_UNSIGNED_LONG_LONG_INT@
00166 # undef uint64_t
00167 typedef unsigned long long int gl_uint64_t;
00168 # define uint64_t gl_uint64_t
00169 # define GL_UINT64_T
00170 #endif
00171 
00172 /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
00173 #define _UINT8_T
00174 #define _UINT32_T
00175 #define _UINT64_T
00176 
00177 
00178 /* 7.18.1.2. Minimum-width integer types */
00179 
00180 /* Here we assume a standard architecture where the hardware integer
00181    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
00182    are the same as the corresponding N_t types.  */
00183 
00184 #undef int_least8_t
00185 #undef uint_least8_t
00186 #undef int_least16_t
00187 #undef uint_least16_t
00188 #undef int_least32_t
00189 #undef uint_least32_t
00190 #undef int_least64_t
00191 #undef uint_least64_t
00192 #define int_least8_t int8_t
00193 #define uint_least8_t uint8_t
00194 #define int_least16_t int16_t
00195 #define uint_least16_t uint16_t
00196 #define int_least32_t int32_t
00197 #define uint_least32_t uint32_t
00198 #ifdef GL_INT64_T
00199 # define int_least64_t int64_t
00200 #endif
00201 #ifdef GL_UINT64_T
00202 # define uint_least64_t uint64_t
00203 #endif
00204 
00205 /* 7.18.1.3. Fastest minimum-width integer types */
00206 
00207 /* Note: Other <stdint.h> substitutes may define these types differently.
00208    It is not recommended to use these types in public header files. */
00209 
00210 /* Here we assume a standard architecture where the hardware integer
00211    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
00212    are taken from the same list of types.  Assume that 'long int'
00213    is fast enough for all narrower integers.  */
00214 
00215 #undef int_fast8_t
00216 #undef uint_fast8_t
00217 #undef int_fast16_t
00218 #undef uint_fast16_t
00219 #undef int_fast32_t
00220 #undef uint_fast32_t
00221 #undef int_fast64_t
00222 #undef uint_fast64_t
00223 typedef long int gl_int_fast8_t;
00224 typedef unsigned long int gl_uint_fast8_t;
00225 typedef long int gl_int_fast16_t;
00226 typedef unsigned long int gl_uint_fast16_t;
00227 typedef long int gl_int_fast32_t;
00228 typedef unsigned long int gl_uint_fast32_t;
00229 #define int_fast8_t gl_int_fast8_t
00230 #define uint_fast8_t gl_uint_fast8_t
00231 #define int_fast16_t gl_int_fast16_t
00232 #define uint_fast16_t gl_uint_fast16_t
00233 #define int_fast32_t gl_int_fast32_t
00234 #define uint_fast32_t gl_uint_fast32_t
00235 #ifdef GL_INT64_T
00236 # define int_fast64_t int64_t
00237 #endif
00238 #ifdef GL_UINT64_T
00239 # define uint_fast64_t uint64_t
00240 #endif
00241 
00242 /* 7.18.1.4. Integer types capable of holding object pointers */
00243 
00244 #undef intptr_t
00245 #undef uintptr_t
00246 typedef long int gl_intptr_t;
00247 typedef unsigned long int gl_uintptr_t;
00248 #define intptr_t gl_intptr_t
00249 #define uintptr_t gl_uintptr_t
00250 
00251 /* 7.18.1.5. Greatest-width integer types */
00252 
00253 /* Note: These types are compiler dependent. It may be unwise to use them in
00254    public header files. */
00255 
00256 #undef intmax_t
00257 #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
00258 typedef long long int gl_intmax_t;
00259 # define intmax_t gl_intmax_t
00260 #elif defined GL_INT64_T
00261 # define intmax_t int64_t
00262 #else
00263 typedef long int gl_intmax_t;
00264 # define intmax_t gl_intmax_t
00265 #endif
00266 
00267 #undef uintmax_t
00268 #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
00269 typedef unsigned long long int gl_uintmax_t;
00270 # define uintmax_t gl_uintmax_t
00271 #elif defined GL_UINT64_T
00272 # define uintmax_t uint64_t
00273 #else
00274 typedef unsigned long int gl_uintmax_t;
00275 # define uintmax_t gl_uintmax_t
00276 #endif
00277 
00278 /* Verify that intmax_t and uintmax_t have the same size.  Too much code
00279    breaks if this is not the case.  If this check fails, the reason is likely
00280    to be found in the autoconf macros.  */
00281 typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
00282 
00283 /* 7.18.2. Limits of specified-width integer types */
00284 
00285 #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
00286 
00287 /* 7.18.2.1. Limits of exact-width integer types */
00288 
00289 /* Here we assume a standard architecture where the hardware integer
00290    types have 8, 16, 32, optionally 64 bits.  */
00291 
00292 #undef INT8_MIN
00293 #undef INT8_MAX
00294 #undef UINT8_MAX
00295 #define INT8_MIN  (~ INT8_MAX)
00296 #define INT8_MAX  127
00297 #define UINT8_MAX  255
00298 
00299 #undef INT16_MIN
00300 #undef INT16_MAX
00301 #undef UINT16_MAX
00302 #define INT16_MIN  (~ INT16_MAX)
00303 #define INT16_MAX  32767
00304 #define UINT16_MAX  65535
00305 
00306 #undef INT32_MIN
00307 #undef INT32_MAX
00308 #undef UINT32_MAX
00309 #define INT32_MIN  (~ INT32_MAX)
00310 #define INT32_MAX  2147483647
00311 #define UINT32_MAX  4294967295U
00312 
00313 #undef INT64_MIN
00314 #undef INT64_MAX
00315 #ifdef GL_INT64_T
00316 /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
00317    evaluates the latter incorrectly in preprocessor expressions.  */
00318 # define INT64_MIN  (- INTMAX_C (1) << 63)
00319 # define INT64_MAX  INTMAX_C (9223372036854775807)
00320 #endif
00321 
00322 #undef UINT64_MAX
00323 #ifdef GL_UINT64_T
00324 # define UINT64_MAX  UINTMAX_C (18446744073709551615)
00325 #endif
00326 
00327 /* 7.18.2.2. Limits of minimum-width integer types */
00328 
00329 /* Here we assume a standard architecture where the hardware integer
00330    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
00331    are the same as the corresponding N_t types.  */
00332 
00333 #undef INT_LEAST8_MIN
00334 #undef INT_LEAST8_MAX
00335 #undef UINT_LEAST8_MAX
00336 #define INT_LEAST8_MIN  INT8_MIN
00337 #define INT_LEAST8_MAX  INT8_MAX
00338 #define UINT_LEAST8_MAX  UINT8_MAX
00339 
00340 #undef INT_LEAST16_MIN
00341 #undef INT_LEAST16_MAX
00342 #undef UINT_LEAST16_MAX
00343 #define INT_LEAST16_MIN  INT16_MIN
00344 #define INT_LEAST16_MAX  INT16_MAX
00345 #define UINT_LEAST16_MAX  UINT16_MAX
00346 
00347 #undef INT_LEAST32_MIN
00348 #undef INT_LEAST32_MAX
00349 #undef UINT_LEAST32_MAX
00350 #define INT_LEAST32_MIN  INT32_MIN
00351 #define INT_LEAST32_MAX  INT32_MAX
00352 #define UINT_LEAST32_MAX  UINT32_MAX
00353 
00354 #undef INT_LEAST64_MIN
00355 #undef INT_LEAST64_MAX
00356 #ifdef GL_INT64_T
00357 # define INT_LEAST64_MIN  INT64_MIN
00358 # define INT_LEAST64_MAX  INT64_MAX
00359 #endif
00360 
00361 #undef UINT_LEAST64_MAX
00362 #ifdef GL_UINT64_T
00363 # define UINT_LEAST64_MAX  UINT64_MAX
00364 #endif
00365 
00366 /* 7.18.2.3. Limits of fastest minimum-width integer types */
00367 
00368 /* Here we assume a standard architecture where the hardware integer
00369    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
00370    are taken from the same list of types.  */
00371 
00372 #undef INT_FAST8_MIN
00373 #undef INT_FAST8_MAX
00374 #undef UINT_FAST8_MAX
00375 #define INT_FAST8_MIN  LONG_MIN
00376 #define INT_FAST8_MAX  LONG_MAX
00377 #define UINT_FAST8_MAX  ULONG_MAX
00378 
00379 #undef INT_FAST16_MIN
00380 #undef INT_FAST16_MAX
00381 #undef UINT_FAST16_MAX
00382 #define INT_FAST16_MIN  LONG_MIN
00383 #define INT_FAST16_MAX  LONG_MAX
00384 #define UINT_FAST16_MAX  ULONG_MAX
00385 
00386 #undef INT_FAST32_MIN
00387 #undef INT_FAST32_MAX
00388 #undef UINT_FAST32_MAX
00389 #define INT_FAST32_MIN  LONG_MIN
00390 #define INT_FAST32_MAX  LONG_MAX
00391 #define UINT_FAST32_MAX  ULONG_MAX
00392 
00393 #undef INT_FAST64_MIN
00394 #undef INT_FAST64_MAX
00395 #ifdef GL_INT64_T
00396 # define INT_FAST64_MIN  INT64_MIN
00397 # define INT_FAST64_MAX  INT64_MAX
00398 #endif
00399 
00400 #undef UINT_FAST64_MAX
00401 #ifdef GL_UINT64_T
00402 # define UINT_FAST64_MAX  UINT64_MAX
00403 #endif
00404 
00405 /* 7.18.2.4. Limits of integer types capable of holding object pointers */
00406 
00407 #undef INTPTR_MIN
00408 #undef INTPTR_MAX
00409 #undef UINTPTR_MAX
00410 #define INTPTR_MIN  LONG_MIN
00411 #define INTPTR_MAX  LONG_MAX
00412 #define UINTPTR_MAX  ULONG_MAX
00413 
00414 /* 7.18.2.5. Limits of greatest-width integer types */
00415 
00416 #undef INTMAX_MIN
00417 #undef INTMAX_MAX
00418 #ifdef INT64_MAX
00419 # define INTMAX_MIN  INT64_MIN
00420 # define INTMAX_MAX  INT64_MAX
00421 #else
00422 # define INTMAX_MIN  INT32_MIN
00423 # define INTMAX_MAX  INT32_MAX
00424 #endif
00425 
00426 #undef UINTMAX_MAX
00427 #ifdef UINT64_MAX
00428 # define UINTMAX_MAX  UINT64_MAX
00429 #else
00430 # define UINTMAX_MAX  UINT32_MAX
00431 #endif
00432 
00433 /* 7.18.3. Limits of other integer types */
00434 
00435 /* ptrdiff_t limits */
00436 #undef PTRDIFF_MIN
00437 #undef PTRDIFF_MAX
00438 #if @APPLE_UNIVERSAL_BUILD@
00439 # ifdef _LP64
00440 #  define PTRDIFF_MIN  _STDINT_MIN (1, 64, 0l)
00441 #  define PTRDIFF_MAX  _STDINT_MAX (1, 64, 0l)
00442 # else
00443 #  define PTRDIFF_MIN  _STDINT_MIN (1, 32, 0)
00444 #  define PTRDIFF_MAX  _STDINT_MAX (1, 32, 0)
00445 # endif
00446 #else
00447 # define PTRDIFF_MIN  \
00448     _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
00449 # define PTRDIFF_MAX  \
00450     _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
00451 #endif
00452 
00453 /* sig_atomic_t limits */
00454 #undef SIG_ATOMIC_MIN
00455 #undef SIG_ATOMIC_MAX
00456 #define SIG_ATOMIC_MIN  \
00457    _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
00458                 0@SIG_ATOMIC_T_SUFFIX@)
00459 #define SIG_ATOMIC_MAX  \
00460    _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
00461                 0@SIG_ATOMIC_T_SUFFIX@)
00462 
00463 
00464 /* size_t limit */
00465 #undef SIZE_MAX
00466 #if @APPLE_UNIVERSAL_BUILD@
00467 # ifdef _LP64
00468 #  define SIZE_MAX  _STDINT_MAX (0, 64, 0ul)
00469 # else
00470 #  define SIZE_MAX  _STDINT_MAX (0, 32, 0ul)
00471 # endif
00472 #else
00473 # define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
00474 #endif
00475 
00476 /* wchar_t limits */
00477 /* Get WCHAR_MIN, WCHAR_MAX.
00478    This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
00479    includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
00480    <stdint.h> and assumes its types are already defined.  */
00481 #if ! (defined WCHAR_MIN && defined WCHAR_MAX)
00482 # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
00483 # include <wchar.h>
00484 # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
00485 #endif
00486 #undef WCHAR_MIN
00487 #undef WCHAR_MAX
00488 #define WCHAR_MIN  \
00489    _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
00490 #define WCHAR_MAX  \
00491    _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
00492 
00493 /* wint_t limits */
00494 #undef WINT_MIN
00495 #undef WINT_MAX
00496 #define WINT_MIN  \
00497    _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
00498 #define WINT_MAX  \
00499    _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
00500 
00501 #endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
00502 
00503 /* 7.18.4. Macros for integer constants */
00504 
00505 #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
00506 
00507 /* 7.18.4.1. Macros for minimum-width integer constants */
00508 /* According to ISO C 99 Technical Corrigendum 1 */
00509 
00510 /* Here we assume a standard architecture where the hardware integer
00511    types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
00512 
00513 #undef INT8_C
00514 #undef UINT8_C
00515 #define INT8_C(x) x
00516 #define UINT8_C(x) x
00517 
00518 #undef INT16_C
00519 #undef UINT16_C
00520 #define INT16_C(x) x
00521 #define UINT16_C(x) x
00522 
00523 #undef INT32_C
00524 #undef UINT32_C
00525 #define INT32_C(x) x
00526 #define UINT32_C(x) x ## U
00527 
00528 #undef INT64_C
00529 #undef UINT64_C
00530 #if LONG_MAX >> 31 >> 31 == 1
00531 # define INT64_C(x) x##L
00532 #elif defined _MSC_VER
00533 # define INT64_C(x) x##i64
00534 #elif @HAVE_LONG_LONG_INT@
00535 # define INT64_C(x) x##LL
00536 #endif
00537 #if ULONG_MAX >> 31 >> 31 >> 1 == 1
00538 # define UINT64_C(x) x##UL
00539 #elif defined _MSC_VER
00540 # define UINT64_C(x) x##ui64
00541 #elif @HAVE_UNSIGNED_LONG_LONG_INT@
00542 # define UINT64_C(x) x##ULL
00543 #endif
00544 
00545 /* 7.18.4.2. Macros for greatest-width integer constants */
00546 
00547 #undef INTMAX_C
00548 #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
00549 # define INTMAX_C(x)   x##LL
00550 #elif defined GL_INT64_T
00551 # define INTMAX_C(x)   INT64_C(x)
00552 #else
00553 # define INTMAX_C(x)   x##L
00554 #endif
00555 
00556 #undef UINTMAX_C
00557 #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
00558 # define UINTMAX_C(x)  x##ULL
00559 #elif defined GL_UINT64_T
00560 # define UINTMAX_C(x)  UINT64_C(x)
00561 #else
00562 # define UINTMAX_C(x)  x##UL
00563 #endif
00564 
00565 #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
00566 
00567 #endif /* _GL_STDINT_H */
00568 #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */