Blame sysdeps/generic/stdint.h

Packit 6c4009
/* Copyright (C) 1997-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
/*
Packit 6c4009
 *	ISO C99: 7.18 Integer types <stdint.h>
Packit 6c4009
 */
Packit 6c4009
Packit 6c4009
#ifndef _STDINT_H
Packit 6c4009
#define _STDINT_H	1
Packit 6c4009
Packit 6c4009
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
Packit 6c4009
#include <bits/libc-header-start.h>
Packit 6c4009
#include <bits/types.h>
Packit 6c4009
#include <bits/wchar.h>
Packit 6c4009
#include <bits/wordsize.h>
Packit 6c4009
Packit 6c4009
/* Exact integral types.  */
Packit 6c4009
Packit 6c4009
/* Signed.  */
Packit 6c4009
#include <bits/stdint-intn.h>
Packit 6c4009
Packit 6c4009
/* Unsigned.  */
Packit 6c4009
#include <bits/stdint-uintn.h>
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Small types.  */
Packit 6c4009
Packit 6c4009
/* Signed.  */
Packit 6c4009
typedef __int_least8_t int_least8_t;
Packit 6c4009
typedef __int_least16_t int_least16_t;
Packit 6c4009
typedef __int_least32_t int_least32_t;
Packit 6c4009
typedef __int_least64_t int_least64_t;
Packit 6c4009
Packit 6c4009
/* Unsigned.  */
Packit 6c4009
typedef __uint_least8_t uint_least8_t;
Packit 6c4009
typedef __uint_least16_t uint_least16_t;
Packit 6c4009
typedef __uint_least32_t uint_least32_t;
Packit 6c4009
typedef __uint_least64_t uint_least64_t;
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Fast types.  */
Packit 6c4009
Packit 6c4009
/* Signed.  */
Packit 6c4009
typedef signed char		int_fast8_t;
Packit 6c4009
#if __WORDSIZE == 64
Packit 6c4009
typedef long int		int_fast16_t;
Packit 6c4009
typedef long int		int_fast32_t;
Packit 6c4009
typedef long int		int_fast64_t;
Packit 6c4009
#else
Packit 6c4009
typedef int			int_fast16_t;
Packit 6c4009
typedef int			int_fast32_t;
Packit 6c4009
__extension__
Packit 6c4009
typedef long long int		int_fast64_t;
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* Unsigned.  */
Packit 6c4009
typedef unsigned char		uint_fast8_t;
Packit 6c4009
#if __WORDSIZE == 64
Packit 6c4009
typedef unsigned long int	uint_fast16_t;
Packit 6c4009
typedef unsigned long int	uint_fast32_t;
Packit 6c4009
typedef unsigned long int	uint_fast64_t;
Packit 6c4009
#else
Packit 6c4009
typedef unsigned int		uint_fast16_t;
Packit 6c4009
typedef unsigned int		uint_fast32_t;
Packit 6c4009
__extension__
Packit 6c4009
typedef unsigned long long int	uint_fast64_t;
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Types for `void *' pointers.  */
Packit 6c4009
#if __WORDSIZE == 64
Packit 6c4009
# ifndef __intptr_t_defined
Packit 6c4009
typedef long int		intptr_t;
Packit 6c4009
#  define __intptr_t_defined
Packit 6c4009
# endif
Packit 6c4009
typedef unsigned long int	uintptr_t;
Packit 6c4009
#else
Packit 6c4009
# ifndef __intptr_t_defined
Packit 6c4009
typedef int			intptr_t;
Packit 6c4009
#  define __intptr_t_defined
Packit 6c4009
# endif
Packit 6c4009
typedef unsigned int		uintptr_t;
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Largest integral types.  */
Packit 6c4009
typedef __intmax_t		intmax_t;
Packit 6c4009
typedef __uintmax_t		uintmax_t;
Packit 6c4009
Packit 6c4009
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define __INT64_C(c)	c ## L
Packit 6c4009
#  define __UINT64_C(c)	c ## UL
Packit 6c4009
# else
Packit 6c4009
#  define __INT64_C(c)	c ## LL
Packit 6c4009
#  define __UINT64_C(c)	c ## ULL
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Limits of integral types.  */
Packit 6c4009
Packit 6c4009
/* Minimum of signed integral types.  */
Packit 6c4009
# define INT8_MIN		(-128)
Packit 6c4009
# define INT16_MIN		(-32767-1)
Packit 6c4009
# define INT32_MIN		(-2147483647-1)
Packit 6c4009
# define INT64_MIN		(-__INT64_C(9223372036854775807)-1)
Packit 6c4009
/* Maximum of signed integral types.  */
Packit 6c4009
# define INT8_MAX		(127)
Packit 6c4009
# define INT16_MAX		(32767)
Packit 6c4009
# define INT32_MAX		(2147483647)
Packit 6c4009
# define INT64_MAX		(__INT64_C(9223372036854775807))
Packit 6c4009
Packit 6c4009
/* Maximum of unsigned integral types.  */
Packit 6c4009
# define UINT8_MAX		(255)
Packit 6c4009
# define UINT16_MAX		(65535)
Packit 6c4009
# define UINT32_MAX		(4294967295U)
Packit 6c4009
# define UINT64_MAX		(__UINT64_C(18446744073709551615))
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Minimum of signed integral types having a minimum size.  */
Packit 6c4009
# define INT_LEAST8_MIN		(-128)
Packit 6c4009
# define INT_LEAST16_MIN	(-32767-1)
Packit 6c4009
# define INT_LEAST32_MIN	(-2147483647-1)
Packit 6c4009
# define INT_LEAST64_MIN	(-__INT64_C(9223372036854775807)-1)
Packit 6c4009
/* Maximum of signed integral types having a minimum size.  */
Packit 6c4009
# define INT_LEAST8_MAX		(127)
Packit 6c4009
# define INT_LEAST16_MAX	(32767)
Packit 6c4009
# define INT_LEAST32_MAX	(2147483647)
Packit 6c4009
# define INT_LEAST64_MAX	(__INT64_C(9223372036854775807))
Packit 6c4009
Packit 6c4009
/* Maximum of unsigned integral types having a minimum size.  */
Packit 6c4009
# define UINT_LEAST8_MAX	(255)
Packit 6c4009
# define UINT_LEAST16_MAX	(65535)
Packit 6c4009
# define UINT_LEAST32_MAX	(4294967295U)
Packit 6c4009
# define UINT_LEAST64_MAX	(__UINT64_C(18446744073709551615))
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Minimum of fast signed integral types having a minimum size.  */
Packit 6c4009
# define INT_FAST8_MIN		(-128)
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define INT_FAST16_MIN	(-9223372036854775807L-1)
Packit 6c4009
#  define INT_FAST32_MIN	(-9223372036854775807L-1)
Packit 6c4009
# else
Packit 6c4009
#  define INT_FAST16_MIN	(-2147483647-1)
Packit 6c4009
#  define INT_FAST32_MIN	(-2147483647-1)
Packit 6c4009
# endif
Packit 6c4009
# define INT_FAST64_MIN		(-__INT64_C(9223372036854775807)-1)
Packit 6c4009
/* Maximum of fast signed integral types having a minimum size.  */
Packit 6c4009
# define INT_FAST8_MAX		(127)
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define INT_FAST16_MAX	(9223372036854775807L)
Packit 6c4009
#  define INT_FAST32_MAX	(9223372036854775807L)
Packit 6c4009
# else
Packit 6c4009
#  define INT_FAST16_MAX	(2147483647)
Packit 6c4009
#  define INT_FAST32_MAX	(2147483647)
Packit 6c4009
# endif
Packit 6c4009
# define INT_FAST64_MAX		(__INT64_C(9223372036854775807))
Packit 6c4009
Packit 6c4009
/* Maximum of fast unsigned integral types having a minimum size.  */
Packit 6c4009
# define UINT_FAST8_MAX		(255)
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define UINT_FAST16_MAX	(18446744073709551615UL)
Packit 6c4009
#  define UINT_FAST32_MAX	(18446744073709551615UL)
Packit 6c4009
# else
Packit 6c4009
#  define UINT_FAST16_MAX	(4294967295U)
Packit 6c4009
#  define UINT_FAST32_MAX	(4294967295U)
Packit 6c4009
# endif
Packit 6c4009
# define UINT_FAST64_MAX	(__UINT64_C(18446744073709551615))
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Values to test for integral types holding `void *' pointer.  */
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define INTPTR_MIN		(-9223372036854775807L-1)
Packit 6c4009
#  define INTPTR_MAX		(9223372036854775807L)
Packit 6c4009
#  define UINTPTR_MAX		(18446744073709551615UL)
Packit 6c4009
# else
Packit 6c4009
#  define INTPTR_MIN		(-2147483647-1)
Packit 6c4009
#  define INTPTR_MAX		(2147483647)
Packit 6c4009
#  define UINTPTR_MAX		(4294967295U)
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Minimum for largest signed integral type.  */
Packit 6c4009
# define INTMAX_MIN		(-__INT64_C(9223372036854775807)-1)
Packit 6c4009
/* Maximum for largest signed integral type.  */
Packit 6c4009
# define INTMAX_MAX		(__INT64_C(9223372036854775807))
Packit 6c4009
Packit 6c4009
/* Maximum for largest unsigned integral type.  */
Packit 6c4009
# define UINTMAX_MAX		(__UINT64_C(18446744073709551615))
Packit 6c4009
Packit 6c4009
Packit 6c4009
/* Limits of other integer types.  */
Packit 6c4009
Packit 6c4009
/* Limits of `ptrdiff_t' type.  */
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define PTRDIFF_MIN		(-9223372036854775807L-1)
Packit 6c4009
#  define PTRDIFF_MAX		(9223372036854775807L)
Packit 6c4009
# else
Packit 6c4009
#  if __WORDSIZE32_PTRDIFF_LONG
Packit 6c4009
#   define PTRDIFF_MIN		(-2147483647L-1)
Packit 6c4009
#   define PTRDIFF_MAX		(2147483647L)
Packit 6c4009
#  else
Packit 6c4009
#   define PTRDIFF_MIN		(-2147483647-1)
Packit 6c4009
#   define PTRDIFF_MAX		(2147483647)
Packit 6c4009
#  endif
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Limits of `sig_atomic_t'.  */
Packit 6c4009
# define SIG_ATOMIC_MIN		(-2147483647-1)
Packit 6c4009
# define SIG_ATOMIC_MAX		(2147483647)
Packit 6c4009
Packit 6c4009
/* Limit of `size_t' type.  */
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define SIZE_MAX		(18446744073709551615UL)
Packit 6c4009
# else
Packit 6c4009
#  if __WORDSIZE32_SIZE_ULONG
Packit 6c4009
#   define SIZE_MAX		(4294967295UL)
Packit 6c4009
#  else
Packit 6c4009
#   define SIZE_MAX		(4294967295U)
Packit 6c4009
#  endif
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Limits of `wchar_t'.  */
Packit 6c4009
# ifndef WCHAR_MIN
Packit 6c4009
/* These constants might also be defined in <wchar.h>.  */
Packit 6c4009
#  define WCHAR_MIN		__WCHAR_MIN
Packit 6c4009
#  define WCHAR_MAX		__WCHAR_MAX
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Limits of `wint_t'.  */
Packit 6c4009
# define WINT_MIN		(0u)
Packit 6c4009
# define WINT_MAX		(4294967295u)
Packit 6c4009
Packit 6c4009
/* Signed.  */
Packit 6c4009
# define INT8_C(c)	c
Packit 6c4009
# define INT16_C(c)	c
Packit 6c4009
# define INT32_C(c)	c
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define INT64_C(c)	c ## L
Packit 6c4009
# else
Packit 6c4009
#  define INT64_C(c)	c ## LL
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Unsigned.  */
Packit 6c4009
# define UINT8_C(c)	c
Packit 6c4009
# define UINT16_C(c)	c
Packit 6c4009
# define UINT32_C(c)	c ## U
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define UINT64_C(c)	c ## UL
Packit 6c4009
# else
Packit 6c4009
#  define UINT64_C(c)	c ## ULL
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
/* Maximal type.  */
Packit 6c4009
# if __WORDSIZE == 64
Packit 6c4009
#  define INTMAX_C(c)	c ## L
Packit 6c4009
#  define UINTMAX_C(c)	c ## UL
Packit 6c4009
# else
Packit 6c4009
#  define INTMAX_C(c)	c ## LL
Packit 6c4009
#  define UINTMAX_C(c)	c ## ULL
Packit 6c4009
# endif
Packit 6c4009
Packit 6c4009
#if __GLIBC_USE (IEC_60559_BFP_EXT)
Packit 6c4009
Packit 6c4009
# define INT8_WIDTH 8
Packit 6c4009
# define UINT8_WIDTH 8
Packit 6c4009
# define INT16_WIDTH 16
Packit 6c4009
# define UINT16_WIDTH 16
Packit 6c4009
# define INT32_WIDTH 32
Packit 6c4009
# define UINT32_WIDTH 32
Packit 6c4009
# define INT64_WIDTH 64
Packit 6c4009
# define UINT64_WIDTH 64
Packit 6c4009
Packit 6c4009
# define INT_LEAST8_WIDTH 8
Packit 6c4009
# define UINT_LEAST8_WIDTH 8
Packit 6c4009
# define INT_LEAST16_WIDTH 16
Packit 6c4009
# define UINT_LEAST16_WIDTH 16
Packit 6c4009
# define INT_LEAST32_WIDTH 32
Packit 6c4009
# define UINT_LEAST32_WIDTH 32
Packit 6c4009
# define INT_LEAST64_WIDTH 64
Packit 6c4009
# define UINT_LEAST64_WIDTH 64
Packit 6c4009
Packit 6c4009
# define INT_FAST8_WIDTH 8
Packit 6c4009
# define UINT_FAST8_WIDTH 8
Packit 6c4009
# define INT_FAST16_WIDTH __WORDSIZE
Packit 6c4009
# define UINT_FAST16_WIDTH __WORDSIZE
Packit 6c4009
# define INT_FAST32_WIDTH __WORDSIZE
Packit 6c4009
# define UINT_FAST32_WIDTH __WORDSIZE
Packit 6c4009
# define INT_FAST64_WIDTH 64
Packit 6c4009
# define UINT_FAST64_WIDTH 64
Packit 6c4009
Packit 6c4009
# define INTPTR_WIDTH __WORDSIZE
Packit 6c4009
# define UINTPTR_WIDTH __WORDSIZE
Packit 6c4009
Packit 6c4009
# define INTMAX_WIDTH 64
Packit 6c4009
# define UINTMAX_WIDTH 64
Packit 6c4009
Packit 6c4009
# define PTRDIFF_WIDTH __WORDSIZE
Packit 6c4009
# define SIG_ATOMIC_WIDTH 32
Packit 6c4009
# define SIZE_WIDTH __WORDSIZE
Packit 6c4009
# define WCHAR_WIDTH 32
Packit 6c4009
# define WINT_WIDTH 32
Packit 6c4009
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
#endif /* stdint.h */