File indexing completed on 2024-05-19 04:06:42

0001 #ifndef _LIBIDN_LIB_IDN_INT_H
0002 #define _LIBIDN_LIB_IDN_INT_H 1
0003 #ifndef _GENERATED_STDINT_H
0004 #define _GENERATED_STDINT_H "libidn 0.3.1"
0005 /* generated using gnu compiler gcc (GCC) 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r1, propolice) */
0006 #define _STDINT_HAVE_STDINT_H 1
0007 
0008 /* ................... shortcircuit part ........................... */
0009 
0010 #if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
0011 
0012 /*#include <qglobal.h> */
0013 /*#ifdef Q_OS_WIN32 */
0014 #include "qint.h"
0015 /*#else */
0016 /*#include <stdint.h> */
0017 /*#endif */
0018 
0019 #else
0020 #include <stddef.h>
0021 
0022 /* .................... configured part ............................ */
0023 
0024 /* whether we have a C99 compatible stdint header file */
0025 /* #undef _STDINT_HEADER_INTPTR */
0026 /* whether we have a C96 compatible inttypes header file */
0027 /* #undef _STDINT_HEADER_UINT32 */
0028 /* whether we have a BSD compatible inet types header */
0029 /* #undef _STDINT_HEADER_U_INT32 */
0030 
0031 /* which 64bit typedef has been found */
0032 /* #undef _STDINT_HAVE_UINT64_T */
0033 /* #undef _STDINT_HAVE_U_INT64_T */
0034 
0035 /* which type model has been detected */
0036 /* #undef _STDINT_CHAR_MODEL /// skipped  */
0037 /* #undef _STDINT_LONG_MODEL / skipped  */
0038 
0039 /* whether int_least types were detected */
0040 /* #undef _STDINT_HAVE_INT_LEAST32_T */
0041 /* whether int_fast types were detected */
0042 /* #undef _STDINT_HAVE_INT_FAST32_T */
0043 /* whether intmax_t type was detected */
0044 /* #undef _STDINT_HAVE_INTMAX_T */
0045 
0046 /* .................... detections part ............................ */
0047 
0048 /* whether we need to define bitspecific types from compiler base types */
0049 #ifndef _STDINT_HEADER_INTPTR
0050 #ifndef _STDINT_HEADER_UINT32
0051 #ifndef _STDINT_HEADER_U_INT32
0052 #define _STDINT_NEED_INT_MODEL_T
0053 #else
0054 #define _STDINT_HAVE_U_INT_TYPES
0055 #endif
0056 #endif
0057 #endif
0058 
0059 #ifdef _STDINT_HAVE_U_INT_TYPES
0060 #undef _STDINT_NEED_INT_MODEL_T
0061 #endif
0062 
0063 #ifdef  _STDINT_CHAR_MODEL
0064 #if     _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
0065 #ifndef _STDINT_BYTE_MODEL
0066 #define _STDINT_BYTE_MODEL 12
0067 #endif
0068 #endif
0069 #endif
0070 
0071 #ifndef _STDINT_HAVE_INT_LEAST32_T
0072 #define _STDINT_NEED_INT_LEAST_T
0073 #endif
0074 
0075 #ifndef _STDINT_HAVE_INT_FAST32_T
0076 #define _STDINT_NEED_INT_FAST_T
0077 #endif
0078 
0079 #ifndef _STDINT_HEADER_INTPTR
0080 #define _STDINT_NEED_INTPTR_T
0081 #ifndef _STDINT_HAVE_INTMAX_T
0082 #define _STDINT_NEED_INTMAX_T
0083 #endif
0084 #endif
0085 
0086 
0087 /* .................... definition part ............................ */
0088 
0089 /* some system headers have good uint64_t */
0090 #ifndef _HAVE_UINT64_T
0091 #if     defined _STDINT_HAVE_UINT64_T  || defined HAVE_UINT64_T
0092 #define _HAVE_UINT64_T
0093 #elif   defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
0094 #define _HAVE_UINT64_T
0095 typedef u_int64_t uint64_t;
0096 #endif
0097 #endif
0098 
0099 #ifndef _HAVE_UINT64_T
0100 /* .. here are some common heuristics using compiler runtime specifics */
0101 #if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
0102 #define _HAVE_UINT64_T
0103 typedef long long int64_t;
0104 typedef unsigned long long uint64_t;
0105 
0106 #elif !defined __STRICT_ANSI__
0107 #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
0108 #define _HAVE_UINT64_T
0109 typedef __int64 int64_t;
0110 typedef unsigned __int64 uint64_t;
0111 
0112 #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
0113 /* note: all ELF-systems seem to have loff-support which needs 64-bit */
0114 #if !defined _NO_LONGLONG
0115 #define _HAVE_UINT64_T
0116 typedef long long int64_t;
0117 typedef unsigned long long uint64_t;
0118 #endif
0119 
0120 #elif defined __alpha || (defined __mips && defined _ABIN32)
0121 #if !defined _NO_LONGLONG
0122 typedef long int64_t;
0123 typedef unsigned long uint64_t;
0124 #endif
0125   /* compiler/cpu type to define int64_t */
0126 #endif
0127 #endif
0128 #endif
0129 
0130 #if defined _STDINT_HAVE_U_INT_TYPES
0131 /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */
0132 typedef u_int8_t uint8_t;
0133 typedef u_int16_t uint16_t;
0134 typedef u_int32_t uint32_t;
0135 
0136 /* glibc compatibility */
0137 #ifndef __int8_t_defined
0138 #define __int8_t_defined
0139 #endif
0140 #endif
0141 
0142 #ifdef _STDINT_NEED_INT_MODEL_T
0143 /* we must guess all the basic types. Apart from byte-adressable system, */
0144 /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
0145 /* (btw, those nibble-addressable systems are way off, or so we assume) */
0146 
0147 
0148 #if defined _STDINT_BYTE_MODEL
0149 #if _STDINT_LONG_MODEL+0 == 242
0150 /* 2:4:2 =  IP16 = a normal 16-bit system                */
0151 typedef unsigned char   uint8_t;
0152 typedef unsigned short  uint16_t;
0153 typedef unsigned long   uint32_t;
0154 #ifndef __int8_t_defined
0155 #define __int8_t_defined
0156 typedef          char    int8_t;
0157 typedef          short   int16_t;
0158 typedef          long    int32_t;
0159 #endif
0160 #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
0161 /* 2:4:4 =  LP32 = a 32-bit system derived from a 16-bit */
0162 /* 4:4:4 = ILP32 = a normal 32-bit system                */
0163 typedef unsigned char   uint8_t;
0164 typedef unsigned short  uint16_t;
0165 typedef unsigned int    uint32_t;
0166 #ifndef __int8_t_defined
0167 #define __int8_t_defined
0168 typedef          char    int8_t;
0169 typedef          short   int16_t;
0170 typedef          int     int32_t;
0171 #endif
0172 #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
0173 /* 4:8:4 =  IP32 = a 32-bit system prepared for 64-bit    */
0174 /* 4:8:8 =  LP64 = a normal 64-bit system                 */
0175 typedef unsigned char   uint8_t;
0176 typedef unsigned short  uint16_t;
0177 typedef unsigned int    uint32_t;
0178 #ifndef __int8_t_defined
0179 #define __int8_t_defined
0180 typedef          char    int8_t;
0181 typedef          short   int16_t;
0182 typedef          int     int32_t;
0183 #endif
0184 /* this system has a "long" of 64bit */
0185 #ifndef _HAVE_UINT64_T
0186 #define _HAVE_UINT64_T
0187 typedef unsigned long   uint64_t;
0188 typedef          long    int64_t;
0189 #endif
0190 #elif _STDINT_LONG_MODEL+0 == 448
0191 /*      LLP64   a 64-bit system derived from a 32-bit system */
0192 typedef unsigned char   uint8_t;
0193 typedef unsigned short  uint16_t;
0194 typedef unsigned int    uint32_t;
0195 #ifndef __int8_t_defined
0196 #define __int8_t_defined
0197 typedef          char    int8_t;
0198 typedef          short   int16_t;
0199 typedef          int     int32_t;
0200 #endif
0201 /* assuming the system has a "long long" */
0202 #ifndef _HAVE_UINT64_T
0203 #define _HAVE_UINT64_T
0204 typedef unsigned long long uint64_t;
0205 typedef          long long  int64_t;
0206 #endif
0207 #else
0208 #define _STDINT_NO_INT32_T
0209 #endif
0210 #else
0211 #define _STDINT_NO_INT8_T
0212 #define _STDINT_NO_INT32_T
0213 #endif
0214 #endif
0215 
0216 /*
0217  * quote from SunOS-5.8 sys/inttypes.h:
0218  * Use at your own risk.  As of February 1996, the committee is squarely
0219  * behind the fixed sized types; the "least" and "fast" types are still being
0220  * discussed.  The probability that the "fast" types may be removed before
0221  * the standard is finalized is high enough that they are not currently
0222  * implemented.
0223  */
0224 
0225 #if defined _STDINT_NEED_INT_LEAST_T
0226 typedef  int8_t    int_least8_t;
0227 typedef  int16_t   int_least16_t;
0228 typedef  int32_t   int_least32_t;
0229 #ifdef _HAVE_UINT64_T
0230 typedef  int64_t   int_least64_t;
0231 #endif
0232 
0233 typedef uint8_t   uint_least8_t;
0234 typedef uint16_t  uint_least16_t;
0235 typedef uint32_t  uint_least32_t;
0236 #ifdef _HAVE_UINT64_T
0237 typedef uint64_t  uint_least64_t;
0238 #endif
0239   /* least types */
0240 #endif
0241 
0242 #if defined _STDINT_NEED_INT_FAST_T
0243 typedef  int8_t    int_fast8_t;
0244 typedef  int       int_fast16_t;
0245 typedef  int32_t   int_fast32_t;
0246 #ifdef _HAVE_UINT64_T
0247 typedef  int64_t   int_fast64_t;
0248 #endif
0249 
0250 typedef uint8_t   uint_fast8_t;
0251 typedef unsigned  uint_fast16_t;
0252 typedef uint32_t  uint_fast32_t;
0253 #ifdef _HAVE_UINT64_T
0254 typedef uint64_t  uint_fast64_t;
0255 #endif
0256   /* fast types */
0257 #endif
0258 
0259 #ifdef _STDINT_NEED_INTMAX_T
0260 #ifdef _HAVE_UINT64_T
0261 typedef  int64_t       intmax_t;
0262 typedef uint64_t      uintmax_t;
0263 #else
0264 typedef          long  intmax_t;
0265 typedef unsigned long uintmax_t;
0266 #endif
0267 #endif
0268 
0269 #ifdef _STDINT_NEED_INTPTR_T
0270 #ifndef __intptr_t_defined
0271 #define __intptr_t_defined
0272 /* we encourage using "long" to store pointer values, never use "int" ! */
0273 #if   _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
0274 typedef  unsinged int   uintptr_t;
0275 typedef           int    intptr_t;
0276 #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
0277 typedef  unsigned long  uintptr_t;
0278 typedef           long   intptr_t;
0279 #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
0280 typedef        uint64_t uintptr_t;
0281 typedef         int64_t  intptr_t;
0282 #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */
0283 typedef  unsigned long  uintptr_t;
0284 typedef           long   intptr_t;
0285 #endif
0286 #endif
0287 #endif
0288 
0289   /* shortcircuit*/
0290 #endif
0291   /* once */
0292 #endif
0293 #endif