#ifndef __NETTLE_STDINT_H #define __NETTLE_STDINT_H 1 #ifndef _GENERATED_STDINT_H #define _GENERATED_STDINT_H " " /* generated using gnu compiler x86_64-w64-mingw32-gcc (GCC) 4.9.1 */ #define _STDINT_HAVE_STDINT_H 1 /* ................... shortcircuit part ........................... */ #if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H #include #else #include /* .................... configured part ............................ */ /* whether we have a C99 compatible stdint header file */ /* #undef _STDINT_HEADER_INTPTR */ /* whether we have a C96 compatible inttypes header file */ /* #undef _STDINT_HEADER_UINT32 */ /* whether we have a BSD compatible inet types header */ /* #undef _STDINT_HEADER_U_INT32 */ /* which 64bit typedef has been found */ /* #undef _STDINT_HAVE_UINT64_T */ /* #undef _STDINT_HAVE_U_INT64_T */ /* which type model has been detected */ /* #undef _STDINT_CHAR_MODEL // skipped */ /* #undef _STDINT_LONG_MODEL // skipped */ /* whether int_least types were detected */ /* #undef _STDINT_HAVE_INT_LEAST32_T */ /* whether int_fast types were detected */ /* #undef _STDINT_HAVE_INT_FAST32_T */ /* whether intmax_t type was detected */ /* #undef _STDINT_HAVE_INTMAX_T */ /* .................... detections part ............................ */ /* whether we need to define bitspecific types from compiler base types */ #ifndef _STDINT_HEADER_INTPTR #ifndef _STDINT_HEADER_UINT32 #ifndef _STDINT_HEADER_U_INT32 #define _STDINT_NEED_INT_MODEL_T #else #define _STDINT_HAVE_U_INT_TYPES #endif #endif #endif #ifdef _STDINT_HAVE_U_INT_TYPES #undef _STDINT_NEED_INT_MODEL_T #endif #ifdef _STDINT_CHAR_MODEL #if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124 #ifndef _STDINT_BYTE_MODEL #define _STDINT_BYTE_MODEL 12 #endif #endif #endif #ifndef _STDINT_HAVE_INT_LEAST32_T #define _STDINT_NEED_INT_LEAST_T #endif #ifndef _STDINT_HAVE_INT_FAST32_T #define _STDINT_NEED_INT_FAST_T #endif #ifndef _STDINT_HEADER_INTPTR #define _STDINT_NEED_INTPTR_T #ifndef _STDINT_HAVE_INTMAX_T #define _STDINT_NEED_INTMAX_T #endif #endif /* .................... definition part ............................ */ /* some system headers have good uint64_t */ #ifndef _HAVE_UINT64_T #if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T #define _HAVE_UINT64_T #elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T #define _HAVE_UINT64_T typedef u_int64_t uint64_t; #endif #endif #ifndef _HAVE_UINT64_T /* .. here are some common heuristics using compiler runtime specifics */ #if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L #define _HAVE_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #elif !defined __STRICT_ANSI__ #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ #define _HAVE_UINT64_T typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ /* note: all ELF-systems seem to have loff-support which needs 64-bit */ #if !defined _NO_LONGLONG #define _HAVE_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #endif #elif defined __alpha || (defined __mips && defined _ABIN32) #if !defined _NO_LONGLONG typedef long int64_t; typedef unsigned long uint64_t; #endif /* compiler/cpu type to define int64_t */ #endif #endif #endif #if defined _STDINT_HAVE_U_INT_TYPES /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; /* glibc compatibility */ #ifndef __int8_t_defined #define __int8_t_defined #endif #endif #ifdef _STDINT_NEED_INT_MODEL_T /* we must guess all the basic types. Apart from byte-adressable system, */ /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ /* (btw, those nibble-addressable systems are way off, or so we assume) */ #if defined _STDINT_BYTE_MODEL #if _STDINT_LONG_MODEL+0 == 242 /* 2:4:2 = IP16 = a normal 16-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef long int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 /* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ /* 4:4:4 = ILP32 = a normal 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 /* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ /* 4:8:8 = LP64 = a normal 64-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* this system has a "long" of 64bit */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T typedef unsigned long uint64_t; typedef long int64_t; #endif #elif _STDINT_LONG_MODEL+0 == 448 /* LLP64 a 64-bit system derived from a 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* assuming the system has a "long long" */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T typedef unsigned long long uint64_t; typedef long long int64_t; #endif #else #define _STDINT_NO_INT32_T #endif #else #define _STDINT_NO_INT8_T #define _STDINT_NO_INT32_T #endif #endif /* * quote from SunOS-5.8 sys/inttypes.h: * Use at your own risk. As of February 1996, the committee is squarely * behind the fixed sized types; the "least" and "fast" types are still being * discussed. The probability that the "fast" types may be removed before * the standard is finalized is high enough that they are not currently * implemented. */ #if defined _STDINT_NEED_INT_LEAST_T typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_least64_t; #endif typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_least64_t; #endif /* least types */ #endif #if defined _STDINT_NEED_INT_FAST_T typedef int8_t int_fast8_t; typedef int int_fast16_t; typedef int32_t int_fast32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_fast64_t; #endif typedef uint8_t uint_fast8_t; typedef unsigned uint_fast16_t; typedef uint32_t uint_fast32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_fast64_t; #endif /* fast types */ #endif #ifdef _STDINT_NEED_INTMAX_T #ifdef _HAVE_UINT64_T typedef int64_t intmax_t; typedef uint64_t uintmax_t; #else typedef long intmax_t; typedef unsigned long uintmax_t; #endif #endif #ifdef _STDINT_NEED_INTPTR_T #ifndef __intptr_t_defined #define __intptr_t_defined /* we encourage using "long" to store pointer values, never use "int" ! */ #if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 typedef unsinged int uintptr_t; typedef int intptr_t; #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 typedef unsigned long uintptr_t; typedef long intptr_t; #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T typedef uint64_t uintptr_t; typedef int64_t intptr_t; #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ typedef unsigned long uintptr_t; typedef long intptr_t; #endif #endif #endif /* shortcircuit*/ #endif /* once */ #endif #endif