summaryrefslogtreecommitdiff
path: root/sysdeps/wordsize-32
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-02-15 19:31:34 +0000
committerUlrich Drepper <drepper@redhat.com>1998-02-15 19:31:34 +0000
commit14ea22e96c0b6fce54e2451c69c96c429177b62c (patch)
tree4fa8964f6ae07342ee56de737e944c60f6a4cf63 /sysdeps/wordsize-32
parentdc30f461575342ffeb6c0f2d5931493c1c3a91c0 (diff)
downloadglibc-14ea22e96c0b6fce54e2451c69c96c429177b62c.tar.gz
Update.
1998-02-15 Ulrich Drepper <drepper@cygnus.com> * nss/nsswitch.c (__nss_lookup): Return 1 if this was the last module. * nss/getXXent_r.c: If no more module is found don't try to call setXXent functions but leave unsuccessfully. * malloc/obstack.h: Cleanups. * sysdeps/wordsize-32/stdint.h: New file. * sysdeps/wordsize-64/stdint.h: New file. * sysdeps/generic/stdint.h: New file. * sysdeps/wordsize-32/inttypes.h: Adopt to use stdint.h. * sysdeps/wordsize-64/inttypes.h: Likewise. * stdlib/Makefile (headers): Add stdint.h. 1998-02-03 Paul Eggert <eggert@twinsun.com> * malloc/obstack.h (PTR_INT_TYPE): Use __PTRDIFF_TYPE__ if available. 1998-02-13 17:59 Zack Weinberg <zack@rabi.phys.columbia.edu> * timezone: New directory. * time/README, time/africa, time/antarctica, time/asia, time/australasia, time/backward, time/checktab.awk, time/etcetera, time/europe, time/factory, time/ialloc.c, time/iso3166.tab, time/leapseconds, time/northamerica, time/pacificnew, time/private.h, time/scheck.c, time/solar87, time/solar88, time/solar89, time/southamerica, time/systemv, time/test-tz.c, time/tzfile.h, time/tzselect.ksh, time/yearistype, time/zdump.c, time/zic.c, time/zone.tab: Moved to timezone. * time/tzfile.c: Include tzfile.h from timezone subdir. * time/tzset.c: Likewise. * time/Makefile: Cut out all code relating to timezones... * timezone/Makefile: ...and paste it in here. * Makefile (subdirs): Add timezone. 1998-02-13 18:45 H.J. Lu <hjl@gnu.org> * libc.map (_sys_nerr): Added. * sysdeps/unix/sysv/linux/errlist.c (_sys_nerr): Make it versioned symbol. 1998-02-15 17:16 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/bits/socket.h: Define PF_KEY and pseudo_AF_KEY instead of pseudo_PF_KEY and AF_KEY. Reported by Craig Metz <cmetz@inner.net>. 1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): Use __strcasecmp instead of strcasecmp. * nss/nss_files/files-alias.c (get_next_alias): Likewise. * wctype/wctype.h (_ISwbit): Avoid warning with gcc before 2.8. 1998-02-15 16:55 Ulrich Drepper <drepper@cygnus.com> * socket/sys/socket.h (setsockopt): Make OPTVAL parameter const. Patch by Dean Gaudet <dgaudet@arctic.org>. 1998-02-15 16:53 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/Dist: Add getresgid.c and getresuid.c. 1998-02-15 10:49 Zack Weinberg <zack@rabi.phys.columbia.edu> * sysdeps/unix/sysv/linux/poll.c: If compiled against a kernel with no poll syscall, just include the BSD version. * sysdeps/unix/sysv/linux/getresuid.c: If compiled against a kernel without the syscall, include the stub version. * sysdeps/unix/sysv/linux/getresgid.c: Likewise. * sysdeps/generic/getresuid.c: New file. * sysdeps/generic/getresgid.c: New file. 1998-02-15 Ulrich Drepper <drepper@cygnus.com> * stdio-common/vfscanf.c: Correct last change a bit.
Diffstat (limited to 'sysdeps/wordsize-32')
-rw-r--r--sysdeps/wordsize-32/inttypes.h425
-rw-r--r--sysdeps/wordsize-32/stdint.h214
2 files changed, 331 insertions, 308 deletions
diff --git a/sysdeps/wordsize-32/inttypes.h b/sysdeps/wordsize-32/inttypes.h
index 9200b8c2b8..188f4def4a 100644
--- a/sysdeps/wordsize-32/inttypes.h
+++ b/sysdeps/wordsize-32/inttypes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,369 +17,176 @@
Boston, MA 02111-1307, USA. */
/*
- * ISO C 9X: 7.4 Integral types <inttypes.h>
+ * ISO C 9X: 7.5 Format conversion of integer types <inttypes.h>
*/
#ifndef _INTTYPES_H
-
#define _INTTYPES_H 1
-#include <features.h>
-
-#define __need_wchar_t
-#include <stddef.h>
-
-/* Exact integral types. */
-
-/* Signed. */
-
-/* There is some amount of overlap with <sys/types.h> as known by inet code */
-#ifndef __int8_t_defined
-# define __int8_t_defined
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-typedef long long int int64_t;
-#endif
-
-/* Unsigned. */
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long int uint64_t;
-
-
-/* Largest integral types. */
-typedef long long int intmax_t;
-typedef unsigned long long int uintmax_t;
-
-
-/* Types for `void *' pointers. */
-typedef int intptr_t;
-typedef unsigned int uintptr_t;
-
-
-/* Efficient types. */
-typedef int intfast_t;
-typedef unsigned int uintfast_t;
-
-
-/* Small types. */
-
-/* Signed. */
-typedef signed char int_least8_t;
-typedef short int int_least16_t;
-typedef int int_least32_t;
-typedef long long int int_least64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_least8_t;
-typedef unsigned short int uint_least16_t;
-typedef unsigned int uint_least32_t;
-typedef unsigned long long int uint_least64_t;
-
-
-/* Fast types. */
-
-/* Signed. */
-typedef signed char int_fast8_t;
-typedef int int_fast16_t;
-typedef int int_fast32_t;
-typedef long long int int_fast64_t;
-
-/* Unsigned. */
-typedef unsigned char uint_fast8_t;
-typedef unsigned int uint_fast16_t;
-typedef unsigned int uint_fast32_t;
-typedef unsigned long long int uint_fast64_t;
-
-
-/* Limits of integral types. */
-
-/* Minimum of signed integral types. */
-#define INT8_MIN (-128)
-#define INT16_MIN (-32767-1)
-#define INT32_MIN (-2147483647-1)
-#define INT64_MIN (-9223372036854775807LL-1)
-/* Maximum of signed integral types. */
-#define INT8_MAX (127)
-#define INT16_MAX (32767)
-#define INT32_MAX (2147483647)
-#define INT64_MAX (9223372036854775807LL)
-
-/* Maximum of unsigned integral types. */
-#define UINT8_MAX (255U)
-#define UINT16_MAX (65535U)
-#define UINT32_MAX (4294967295U)
-#define UINT64_MAX (18446744073709551615uLL)
-
-
-/* Minimum of signed integral types having a minimum size. */
-#define INT_LEAST8_MIN (-128)
-#define INT_LEAST16_MIN (-32767-1)
-#define INT_LEAST32_MIN (-2147483647-1)
-#define INT_LEAST64_MIN (-9223372036854775807LL-1)
-/* Maximum of signed integral types having a minimum size. */
-#define INT_LEAST8_MAX (127)
-#define INT_LEAST16_MAX (32767)
-#define INT_LEAST32_MAX (2147483647)
-#define INT_LEAST64_MAX (9223372036854775807LL)
-/* Maximum of unsigned integral types having a minimum size. */
-#define UINT_LEAST8_MAX (255U)
-#define UINT_LEAST16_MAX (65535U)
-#define UINT_LEAST32_MAX (4294967295U)
-#define UINT_LEAST64_MAX (18446744073709551615uLL)
-
-
-/* Minimum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MIN (-128)
-#define INT_FAST16_MIN (-2147483647-1)
-#define INT_FAST32_MIN (-2147483647-1)
-#define INT_FAST64_MIN (-9223372036854775807LL-1)
-/* Maximum of fast signed integral types having a minimum size. */
-#define INT_FAST8_MAX (127)
-#define INT_FAST16_MAX (2147483647)
-#define INT_FAST32_MAX (2147483647)
-#define INT_FAST64_MAX (9223372036854775807LL)
-
-/* Maximum of fast unsigned integral types having a minimum size. */
-#define UINT_FAST8_MAX (255U)
-#define UINT_FAST16_MAX (4294967295U)
-#define UINT_FAST32_MAX (4294967295U)
-#define UINT_FAST64_MAX (18446744073709551615uLL)
-
-
-/* Minimum for most efficient signed integral types. */
-#define INTFAST_MIN (-2147483647-1)
-/* Maximum for most efficient signed integral types. */
-#define INTFAST_MAX (2147483647)
-
-/* Maximum for most efficient unsigned integral types. */
-#define UINTFAST_MAX (4294967295U)
-
-
-/* Minimum for largest signed integral type. */
-#define INTMAX_MIN (-9223372036854775807LL-1)
-/* Maximum for largest signed integral type. */
-#define INTMAX_MAX (9223372036854775807LL)
-
-/* Maximum for largest unsigned integral type. */
-#define UINTMAX_MAX (18446744073709551615uLL)
-
-
-/* Values to test for integral types holding `void *' pointer. */
-#define INTPTR_MAX (2147483647)
-#define UINTPTR_MAX (4294967295U)
+#include <features.h>
+/* Get the type definitions. */
+#include <stdint.h>
-/* Signed. */
-#define INT8_C(c) ((int8_t) c)
-#define INT16_C(c) ((int16_t) c)
-#define INT32_C(c) ((int32_t) c)
-#define INT64_C(c) ((int64_t) __CONCAT (c,ll))
-
-/* Unsigned. */
-#define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
-#define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
-#define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
-#define UINT64_C(c) ((uint64_t) __CONCAT (c,ull))
-
-/* Maximal type. */
-#define INTMAX_C(c) ((intmax_t) __CONCAT (c,ll))
-#define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ull))
-
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_FORMAT_MACROS
/* Macros for printing format specifiers. */
/* Decimal notation. */
-#define PRId8 "d"
-#define PRId16 "d"
-#define PRId32 "d"
-#define PRId64 "lld"
+# define PRId8 "d"
+# define PRId16 "d"
+# define PRId32 "d"
+# define PRId64 "lld"
-#define PRIdLEAST8 "d"
-#define PRIdLEAST16 "d"
-#define PRIdLEAST32 "d"
-#define PRIdLEAST64 "lld"
+# define PRIdLEAST8 "d"
+# define PRIdLEAST16 "d"
+# define PRIdLEAST32 "d"
+# define PRIdLEAST64 "lld"
-#define PRIdFAST8 "d"
-#define PRIdFAST16 "d"
-#define PRIdFAST32 "d"
-#define PRIdFAST64 "lld"
+# define PRIdFAST8 "d"
+# define PRIdFAST16 "d"
+# define PRIdFAST32 "d"
+# define PRIdFAST64 "lld"
-#define PRIi8 "i"
-#define PRIi16 "i"
-#define PRIi32 "i"
-#define PRIi64 "lli"
+# define PRIi8 "i"
+# define PRIi16 "i"
+# define PRIi32 "i"
+# define PRIi64 "lli"
-#define PRIiLEAST8 "i"
-#define PRIiLEAST16 "i"
-#define PRIiLEAST32 "i"
-#define PRIiLEAST64 "lli"
+# define PRIiLEAST8 "i"
+# define PRIiLEAST16 "i"
+# define PRIiLEAST32 "i"
+# define PRIiLEAST64 "lli"
-#define PRIiFAST8 "i"
-#define PRIiFAST16 "i"
-#define PRIiFAST32 "i"
-#define PRIiFAST64 "lli"
+# define PRIiFAST8 "i"
+# define PRIiFAST16 "i"
+# define PRIiFAST32 "i"
+# define PRIiFAST64 "lli"
/* Octal notation. */
-#define PRIo8 "o"
-#define PRIo16 "o"
-#define PRIo32 "o"
-#define PRIo64 "llo"
+# define PRIo8 "o"
+# define PRIo16 "o"
+# define PRIo32 "o"
+# define PRIo64 "llo"
-#define PRIoLEAST8 "o"
-#define PRIoLEAST16 "o"
-#define PRIoLEAST32 "o"
-#define PRIoLEAST64 "llo"
+# define PRIoLEAST8 "o"
+# define PRIoLEAST16 "o"
+# define PRIoLEAST32 "o"
+# define PRIoLEAST64 "llo"
-#define PRIoFAST8 "o"
-#define PRIoFAST16 "o"
-#define PRIoFAST32 "o"
-#define PRIoFAST64 "llo"
+# define PRIoFAST8 "o"
+# define PRIoFAST16 "o"
+# define PRIoFAST32 "o"
+# define PRIoFAST64 "llo"
/* lowercase hexadecimal notation. */
-#define PRIx8 "x"
-#define PRIx16 "x"
-#define PRIx32 "x"
-#define PRIx64 "llx"
+# define PRIx8 "x"
+# define PRIx16 "x"
+# define PRIx32 "x"
+# define PRIx64 "llx"
-#define PRIxLEAST8 "x"
-#define PRIxLEAST16 "x"
-#define PRIxLEAST32 "x"
-#define PRIxLEAST64 "llx"
+# define PRIxLEAST8 "x"
+# define PRIxLEAST16 "x"
+# define PRIxLEAST32 "x"
+# define PRIxLEAST64 "llx"
-#define PRIxFAST8 "x"
-#define PRIxFAST16 "x"
-#define PRIxFAST32 "x"
-#define PRIxFAST64 "llx"
+# define PRIxFAST8 "x"
+# define PRIxFAST16 "x"
+# define PRIxFAST32 "x"
+# define PRIxFAST64 "llx"
/* UPPERCASE hexadecimal notation. */
-#define PRIX8 "X"
-#define PRIX16 "X"
-#define PRIX32 "X"
-#define PRIX64 "llX"
+# define PRIX8 "X"
+# define PRIX16 "X"
+# define PRIX32 "X"
+# define PRIX64 "llX"
-#define PRIXLEAST8 "X"
-#define PRIXLEAST16 "X"
-#define PRIXLEAST32 "X"
-#define PRIXLEAST64 "llX"
+# define PRIXLEAST8 "X"
+# define PRIXLEAST16 "X"
+# define PRIXLEAST32 "X"
+# define PRIXLEAST64 "llX"
-#define PRIXFAST8 "X"
-#define PRIXFAST16 "X"
-#define PRIXFAST32 "X"
-#define PRIXFAST64 "llX"
+# define PRIXFAST8 "X"
+# define PRIXFAST16 "X"
+# define PRIXFAST32 "X"
+# define PRIXFAST64 "llX"
/* Unsigned integers. */
-#define PRIu8 "u"
-#define PRIu16 "u"
-#define PRIu32 "u"
-#define PRIu64 "llu"
+# define PRIu8 "u"
+# define PRIu16 "u"
+# define PRIu32 "u"
+# define PRIu64 "llu"
-#define PRIuLEAST8 "u"
-#define PRIuLEAST16 "u"
-#define PRIuLEAST32 "u"
-#define PRIuLEAST64 "llu"
+# define PRIuLEAST8 "u"
+# define PRIuLEAST16 "u"
+# define PRIuLEAST32 "u"
+# define PRIuLEAST64 "llu"
-#define PRIuFAST8 "u"
-#define PRIuFAST16 "u"
-#define PRIuFAST32 "u"
-#define PRIuFAST64 "llu"
+# define PRIuFAST8 "u"
+# define PRIuFAST16 "u"
+# define PRIuFAST32 "u"
+# define PRIuFAST64 "llu"
/* Macros for printing `intmax_t' and `uintmax_t'. */
-#define PRIdMAX "lld"
-#define PRIoMAX "llo"
-#define PRIxMAX "llx"
-#define PRIuMAX "llu"
-
-
-/* Macros for printing `intfast_t' and `uintfast_t'. */
-#define PRIdFAST "d"
-#define PRIoFAST "o"
-#define PRIxFAST "x"
-#define PRIuFAST "u"
+# define PRIdMAX "lld"
+# define PRIoMAX "llo"
+# define PRIxMAX "llx"
+# define PRIuMAX "llu"
/* Macros for printing `intptr_t' and `uintptr_t'. */
-#define PRIdPTR "d"
-#define PRIoPTR "o"
-#define PRIxPTR "x"
-#define PRIuPTR "u"
+# define PRIdPTR "d"
+# define PRIoPTR "o"
+# define PRIxPTR "x"
+# define PRIuPTR "u"
-/* Macros for printing format specifiers. */
+/* Macros for scanning format specifiers. */
/* Decimal notation. */
-#define SCNd8 "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 "lld"
+# define SCNd8 "hhd"
+# define SCNd16 "hd"
+# define SCNd32 "d"
+# define SCNd64 "lld"
-#define SCNi8 "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 "lli"
+# define SCNi8 "hhi"
+# define SCNi16 "hi"
+# define SCNi32 "i"
+# define SCNi64 "lli"
-#define SCNu8 "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 "llu"
+# define SCNu8 "hhu"
+# define SCNu16 "hu"
+# define SCNu32 "u"
+# define SCNu64 "llu"
/* Octal notation. */
-#define SCNo8 "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 "llo"
+# define SCNo8 "hho"
+# define SCNo16 "ho"
+# define SCNo32 "o"
+# define SCNo64 "llo"
/* Hexadecimal notation. */
-#define SCNx8 "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 "llx"
-
+# define SCNx8 "hhx"
+# define SCNx16 "hx"
+# define SCNx32 "x"
+# define SCNx64 "llx"
-/* Macros for scaning `intfast_t' and `uintfast_t'. */
-#define SCNdFAST "d"
-#define SCNiFAST "i"
-#define SCNoFAST "o"
-#define SCNxFAST "x"
/* Macros for scaning `intptr_t' and `uintptr_t'. */
-#define SCNdPTR "d"
-#define SCNiPTR "i"
-#define SCNoPTR "o"
-#define SCNxPTR "x"
-
-
-/* Limits of other integer types. */
+# define SCNdPTR "d"
+# define SCNiPTR "i"
+# define SCNoPTR "o"
+# define SCNxPTR "x"
-/* Limits of `ptrdiff_t' type. */
-#define PTRDIFF_MIN (-2147483647-1)
-#define PTRDIFF_MAX (2147483647)
+#endif /* C++ && format macros */
-/* Limits of `sig_atomic_t'. */
-#define SIG_ATOMIC_MIN (-2147483647-1)
-#define SIG_ATOMIC_MAX (2147483647)
-/* Limit of `size_t' type. */
-#define SIZE_MAX (4294967295U)
-
-/* Limits of `wchar_t'. */
-#ifndef WCHAR_MIN
-/* These constants might also be defined in <wchar.h>. */
-# define WCHAR_MIN (-2147483647-1)
-# define WCHAR_MAX (2147483647)
-#endif
-
-/* Limits of `wint_t'. */
-#define WINT_MIN (0)
-#define WINT_MAX (4294967295U)
-
-
-/* Macros for string conversion. */
+__BEGIN_DECLS
/* Like `strtol' but convert to `intmax_t'. */
extern intmax_t strtoimax __P ((__const char *__restrict __nptr,
@@ -462,4 +269,6 @@ wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
}
#endif /* GCC and Optimization. */
+__END_DECLS
+
#endif /* inttypes.h */
diff --git a/sysdeps/wordsize-32/stdint.h b/sysdeps/wordsize-32/stdint.h
new file mode 100644
index 0000000000..c3a9e3027d
--- /dev/null
+++ b/sysdeps/wordsize-32/stdint.h
@@ -0,0 +1,214 @@
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/*
+ * ISO C 9X: 7.4 Integer types <stdint.h>
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H 1
+
+#include <features.h>
+#define __need_wchar_t
+#include <stddef.h>
+
+/* Exact integral types. */
+
+/* Signed. */
+
+/* There is some amount of overlap with <sys/types.h> as known by inet code */
+#ifndef __int8_t_defined
+# define __int8_t_defined
+typedef signed char int8_t;
+typedef short int int16_t;
+typedef int int32_t;
+typedef long long int int64_t;
+#endif
+
+/* Unsigned. */
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long int uint64_t;
+
+
+/* Small types. */
+
+/* Signed. */
+typedef signed char int_least8_t;
+typedef short int int_least16_t;
+typedef int int_least32_t;
+typedef long long int int_least64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_least8_t;
+typedef unsigned short int uint_least16_t;
+typedef unsigned int uint_least32_t;
+typedef unsigned long long int uint_least64_t;
+
+
+/* Fast types. */
+
+/* Signed. */
+typedef signed char int_fast8_t;
+typedef int int_fast16_t;
+typedef int int_fast32_t;
+typedef long long int int_fast64_t;
+
+/* Unsigned. */
+typedef unsigned char uint_fast8_t;
+typedef unsigned int uint_fast16_t;
+typedef unsigned int uint_fast32_t;
+typedef unsigned long long int uint_fast64_t;
+
+
+/* Types for `void *' pointers. */
+typedef int intptr_t;
+typedef unsigned int uintptr_t;
+
+
+/* Largest integral types. */
+typedef long long int intmax_t;
+typedef unsigned long long int uintmax_t;
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* Limits of integral types. */
+
+/* Minimum of signed integral types. */
+# define INT8_MIN (-128)
+# define INT16_MIN (-32767-1)
+# define INT32_MIN (-2147483647-1)
+# define INT64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types. */
+# define INT8_MAX (127)
+# define INT16_MAX (32767)
+# define INT32_MAX (2147483647)
+# define INT64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types. */
+# define UINT8_MAX (255U)
+# define UINT16_MAX (65535U)
+# define UINT32_MAX (4294967295U)
+# define UINT64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of signed integral types having a minimum size. */
+# define INT_LEAST8_MIN (-128)
+# define INT_LEAST16_MIN (-32767-1)
+# define INT_LEAST32_MIN (-2147483647-1)
+# define INT_LEAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of signed integral types having a minimum size. */
+# define INT_LEAST8_MAX (127)
+# define INT_LEAST16_MAX (32767)
+# define INT_LEAST32_MAX (2147483647)
+# define INT_LEAST64_MAX (9223372036854775807LL)
+
+/* Maximum of unsigned integral types having a minimum size. */
+# define UINT_LEAST8_MAX (255U)
+# define UINT_LEAST16_MAX (65535U)
+# define UINT_LEAST32_MAX (4294967295U)
+# define UINT_LEAST64_MAX (18446744073709551615uLL)
+
+
+/* Minimum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MIN (-128)
+# define INT_FAST16_MIN (-2147483647-1)
+# define INT_FAST32_MIN (-2147483647-1)
+# define INT_FAST64_MIN (-9223372036854775807LL-1)
+/* Maximum of fast signed integral types having a minimum size. */
+# define INT_FAST8_MAX (127)
+# define INT_FAST16_MAX (2147483647)
+# define INT_FAST32_MAX (2147483647)
+# define INT_FAST64_MAX (9223372036854775807LL)
+
+/* Maximum of fast unsigned integral types having a minimum size. */
+# define UINT_FAST8_MAX (255U)
+# define UINT_FAST16_MAX (4294967295U)
+# define UINT_FAST32_MAX (4294967295U)
+# define UINT_FAST64_MAX (18446744073709551615uLL)
+
+
+/* Values to test for integral types holding `void *' pointer. */
+# define INTPTR_MIN (-2147483647-1)
+# define INTPTR_MAX (2147483647)
+# define UINTPTR_MAX (4294967295U)
+
+
+/* Minimum for largest signed integral type. */
+# define INTMAX_MIN (-9223372036854775807LL-1)
+/* Maximum for largest signed integral type. */
+# define INTMAX_MAX (9223372036854775807LL)
+
+/* Maximum for largest unsigned integral type. */
+# define UINTMAX_MAX (18446744073709551615uLL)
+
+
+/* Limits of other integer types. */
+
+/* Limits of `ptrdiff_t' type. */
+# define PTRDIFF_MIN (-2147483647-1)
+# define PTRDIFF_MAX (2147483647)
+
+/* Limits of `sig_atomic_t'. */
+# define SIG_ATOMIC_MIN (-2147483647-1)
+# define SIG_ATOMIC_MAX (2147483647)
+
+/* Limit of `size_t' type. */
+# define SIZE_MAX (4294967295U)
+
+/* Limits of `wchar_t'. */
+# ifndef WCHAR_MIN
+/* These constants might also be defined in <wchar.h>. */
+# define WCHAR_MIN (-2147483647-1)
+# define WCHAR_MAX (2147483647)
+# endif
+
+/* Limits of `wint_t'. */
+# define WINT_MIN (0)
+# define WINT_MAX (4294967295U)
+
+#endif /* C++ && limit macros */
+
+
+/* The ISO C 9X standard specifies that these macros must only be
+ defined if explicitly requested. */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* Signed. */
+# define INT8_C(c) ((int8_t) c)
+# define INT16_C(c) ((int16_t) c)
+# define INT32_C(c) ((int32_t) c)
+# define INT64_C(c) ((int64_t) __CONCAT (c,ll))
+
+/* Unsigned. */
+# define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
+# define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
+# define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
+# define UINT64_C(c) ((uint64_t) __CONCAT (c,ull))
+
+/* Maximal type. */
+# define INTMAX_C(c) ((intmax_t) __CONCAT (c,ll))
+# define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ull))
+
+#endif /* C++ && constant macros */
+
+#endif /* stdint.h */