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