annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/curl/system.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
rev   line source
jpayne@69 1 #ifndef CURLINC_SYSTEM_H
jpayne@69 2 #define CURLINC_SYSTEM_H
jpayne@69 3 /***************************************************************************
jpayne@69 4 * _ _ ____ _
jpayne@69 5 * Project ___| | | | _ \| |
jpayne@69 6 * / __| | | | |_) | |
jpayne@69 7 * | (__| |_| | _ <| |___
jpayne@69 8 * \___|\___/|_| \_\_____|
jpayne@69 9 *
jpayne@69 10 * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
jpayne@69 11 *
jpayne@69 12 * This software is licensed as described in the file COPYING, which
jpayne@69 13 * you should have received as part of this distribution. The terms
jpayne@69 14 * are also available at https://curl.se/docs/copyright.html.
jpayne@69 15 *
jpayne@69 16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
jpayne@69 17 * copies of the Software, and permit persons to whom the Software is
jpayne@69 18 * furnished to do so, under the terms of the COPYING file.
jpayne@69 19 *
jpayne@69 20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
jpayne@69 21 * KIND, either express or implied.
jpayne@69 22 *
jpayne@69 23 * SPDX-License-Identifier: curl
jpayne@69 24 *
jpayne@69 25 ***************************************************************************/
jpayne@69 26
jpayne@69 27 /*
jpayne@69 28 * Try to keep one section per platform, compiler and architecture, otherwise,
jpayne@69 29 * if an existing section is reused for a different one and later on the
jpayne@69 30 * original is adjusted, probably the piggybacking one can be adversely
jpayne@69 31 * changed.
jpayne@69 32 *
jpayne@69 33 * In order to differentiate between platforms/compilers/architectures use
jpayne@69 34 * only compiler built in predefined preprocessor symbols.
jpayne@69 35 *
jpayne@69 36 * curl_off_t
jpayne@69 37 * ----------
jpayne@69 38 *
jpayne@69 39 * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit
jpayne@69 40 * wide signed integral data type. The width of this data type must remain
jpayne@69 41 * constant and independent of any possible large file support settings.
jpayne@69 42 *
jpayne@69 43 * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit
jpayne@69 44 * wide signed integral data type if there is no 64-bit type.
jpayne@69 45 *
jpayne@69 46 * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall
jpayne@69 47 * only be violated if off_t is the only 64-bit data type available and the
jpayne@69 48 * size of off_t is independent of large file support settings. Keep your
jpayne@69 49 * build on the safe side avoiding an off_t gating. If you have a 64-bit
jpayne@69 50 * off_t then take for sure that another 64-bit data type exists, dig deeper
jpayne@69 51 * and you will find it.
jpayne@69 52 *
jpayne@69 53 */
jpayne@69 54
jpayne@69 55 #if defined(__DJGPP__) || defined(__GO32__)
jpayne@69 56 # if defined(__DJGPP__) && (__DJGPP__ > 1)
jpayne@69 57 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 58 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 59 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 60 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 61 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 62 # else
jpayne@69 63 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 64 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 65 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 66 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 67 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 68 # endif
jpayne@69 69 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 70
jpayne@69 71 #elif defined(__SALFORDC__)
jpayne@69 72 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 73 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 74 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 75 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 76 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 77 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 78
jpayne@69 79 #elif defined(__BORLANDC__)
jpayne@69 80 # if (__BORLANDC__ < 0x520)
jpayne@69 81 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 82 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 83 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 84 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 85 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 86 # else
jpayne@69 87 # define CURL_TYPEOF_CURL_OFF_T __int64
jpayne@69 88 # define CURL_FORMAT_CURL_OFF_T "I64d"
jpayne@69 89 # define CURL_FORMAT_CURL_OFF_TU "I64u"
jpayne@69 90 # define CURL_SUFFIX_CURL_OFF_T i64
jpayne@69 91 # define CURL_SUFFIX_CURL_OFF_TU ui64
jpayne@69 92 # endif
jpayne@69 93 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 94
jpayne@69 95 #elif defined(__TURBOC__)
jpayne@69 96 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 97 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 98 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 99 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 100 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 101 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 102
jpayne@69 103 #elif defined(__POCC__)
jpayne@69 104 # if (__POCC__ < 280)
jpayne@69 105 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 106 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 107 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 108 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 109 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 110 # elif defined(_MSC_VER)
jpayne@69 111 # define CURL_TYPEOF_CURL_OFF_T __int64
jpayne@69 112 # define CURL_FORMAT_CURL_OFF_T "I64d"
jpayne@69 113 # define CURL_FORMAT_CURL_OFF_TU "I64u"
jpayne@69 114 # define CURL_SUFFIX_CURL_OFF_T i64
jpayne@69 115 # define CURL_SUFFIX_CURL_OFF_TU ui64
jpayne@69 116 # else
jpayne@69 117 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 118 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 119 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 120 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 121 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 122 # endif
jpayne@69 123 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 124
jpayne@69 125 #elif defined(__LCC__)
jpayne@69 126 # if defined(__MCST__) /* MCST eLbrus Compiler Collection */
jpayne@69 127 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 128 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 129 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 130 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 131 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 132 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 133 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 134 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 135 # else /* Local (or Little) C Compiler */
jpayne@69 136 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 137 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 138 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 139 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 140 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 141 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 142 # endif
jpayne@69 143
jpayne@69 144 #elif defined(__SYMBIAN32__)
jpayne@69 145 # if defined(__EABI__) /* Treat all ARM compilers equally */
jpayne@69 146 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 147 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 148 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 149 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 150 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 151 # elif defined(__CW32__)
jpayne@69 152 # pragma longlong on
jpayne@69 153 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 154 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 155 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 156 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 157 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 158 # elif defined(__VC32__)
jpayne@69 159 # define CURL_TYPEOF_CURL_OFF_T __int64
jpayne@69 160 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 161 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 162 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 163 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 164 # endif
jpayne@69 165 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
jpayne@69 166
jpayne@69 167 #elif defined(macintosh)
jpayne@69 168 # include <ConditionalMacros.h>
jpayne@69 169 # if TYPE_LONGLONG
jpayne@69 170 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 171 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 172 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 173 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 174 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 175 # else
jpayne@69 176 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 177 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 178 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 179 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 180 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 181 # endif
jpayne@69 182 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
jpayne@69 183
jpayne@69 184 #elif defined(__TANDEM)
jpayne@69 185 # if ! defined(__LP64)
jpayne@69 186 /* Required for 32-bit NonStop builds only. */
jpayne@69 187 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 188 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 189 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 190 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 191 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 192 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 193 # endif
jpayne@69 194
jpayne@69 195 #elif defined(_WIN32_WCE)
jpayne@69 196 # define CURL_TYPEOF_CURL_OFF_T __int64
jpayne@69 197 # define CURL_FORMAT_CURL_OFF_T "I64d"
jpayne@69 198 # define CURL_FORMAT_CURL_OFF_TU "I64u"
jpayne@69 199 # define CURL_SUFFIX_CURL_OFF_T i64
jpayne@69 200 # define CURL_SUFFIX_CURL_OFF_TU ui64
jpayne@69 201 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 202
jpayne@69 203 #elif defined(__MINGW32__)
jpayne@69 204 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 205 # define CURL_FORMAT_CURL_OFF_T "I64d"
jpayne@69 206 # define CURL_FORMAT_CURL_OFF_TU "I64u"
jpayne@69 207 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 208 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 209 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 210 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 211 # define CURL_PULL_WS2TCPIP_H 1
jpayne@69 212
jpayne@69 213 #elif defined(__VMS)
jpayne@69 214 # if defined(__VAX)
jpayne@69 215 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 216 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 217 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 218 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 219 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 220 # else
jpayne@69 221 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 222 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 223 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 224 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 225 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 226 # endif
jpayne@69 227 # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
jpayne@69 228
jpayne@69 229 #elif defined(__OS400__)
jpayne@69 230 # if defined(__ILEC400__)
jpayne@69 231 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 232 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 233 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 234 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 235 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 236 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 237 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 238 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 239 # endif
jpayne@69 240
jpayne@69 241 #elif defined(__MVS__)
jpayne@69 242 # if defined(__IBMC__) || defined(__IBMCPP__)
jpayne@69 243 # if defined(_ILP32)
jpayne@69 244 # elif defined(_LP64)
jpayne@69 245 # endif
jpayne@69 246 # if defined(_LONG_LONG)
jpayne@69 247 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 248 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 249 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 250 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 251 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 252 # elif defined(_LP64)
jpayne@69 253 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 254 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 255 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 256 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 257 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 258 # else
jpayne@69 259 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 260 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 261 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 262 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 263 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 264 # endif
jpayne@69 265 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 266 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 267 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 268 # endif
jpayne@69 269
jpayne@69 270 #elif defined(__370__)
jpayne@69 271 # if defined(__IBMC__) || defined(__IBMCPP__)
jpayne@69 272 # if defined(_ILP32)
jpayne@69 273 # elif defined(_LP64)
jpayne@69 274 # endif
jpayne@69 275 # if defined(_LONG_LONG)
jpayne@69 276 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 277 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 278 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 279 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 280 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 281 # elif defined(_LP64)
jpayne@69 282 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 283 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 284 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 285 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 286 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 287 # else
jpayne@69 288 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 289 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 290 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 291 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 292 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 293 # endif
jpayne@69 294 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 295 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 296 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 297 # endif
jpayne@69 298
jpayne@69 299 #elif defined(TPF)
jpayne@69 300 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 301 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 302 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 303 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 304 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 305 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 306
jpayne@69 307 #elif defined(__TINYC__) /* also known as tcc */
jpayne@69 308 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 309 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 310 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 311 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 312 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 313 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 314 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 315 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 316
jpayne@69 317 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
jpayne@69 318 # if !defined(__LP64) && (defined(__ILP32) || \
jpayne@69 319 defined(__i386) || \
jpayne@69 320 defined(__sparcv8) || \
jpayne@69 321 defined(__sparcv8plus))
jpayne@69 322 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 323 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 324 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 325 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 326 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 327 # elif defined(__LP64) || \
jpayne@69 328 defined(__amd64) || defined(__sparcv9)
jpayne@69 329 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 330 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 331 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 332 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 333 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 334 # endif
jpayne@69 335 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 336 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 337 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 338
jpayne@69 339 #elif defined(__xlc__) /* IBM xlc compiler */
jpayne@69 340 # if !defined(_LP64)
jpayne@69 341 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 342 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 343 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 344 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 345 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 346 # else
jpayne@69 347 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 348 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 349 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 350 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 351 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 352 # endif
jpayne@69 353 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 354 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 355 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 356
jpayne@69 357 /* ===================================== */
jpayne@69 358 /* KEEP MSVC THE PENULTIMATE ENTRY */
jpayne@69 359 /* ===================================== */
jpayne@69 360
jpayne@69 361 #elif defined(_MSC_VER)
jpayne@69 362 # if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
jpayne@69 363 # define CURL_TYPEOF_CURL_OFF_T __int64
jpayne@69 364 # define CURL_FORMAT_CURL_OFF_T "I64d"
jpayne@69 365 # define CURL_FORMAT_CURL_OFF_TU "I64u"
jpayne@69 366 # define CURL_SUFFIX_CURL_OFF_T i64
jpayne@69 367 # define CURL_SUFFIX_CURL_OFF_TU ui64
jpayne@69 368 # else
jpayne@69 369 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 370 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 371 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 372 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 373 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 374 # endif
jpayne@69 375 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 376
jpayne@69 377 /* ===================================== */
jpayne@69 378 /* KEEP GENERIC GCC THE LAST ENTRY */
jpayne@69 379 /* ===================================== */
jpayne@69 380
jpayne@69 381 #elif defined(__GNUC__) && !defined(_SCO_DS)
jpayne@69 382 # if !defined(__LP64__) && \
jpayne@69 383 (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \
jpayne@69 384 defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \
jpayne@69 385 defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
jpayne@69 386 defined(__XTENSA__) || \
jpayne@69 387 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
jpayne@69 388 (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
jpayne@69 389 # define CURL_TYPEOF_CURL_OFF_T long long
jpayne@69 390 # define CURL_FORMAT_CURL_OFF_T "lld"
jpayne@69 391 # define CURL_FORMAT_CURL_OFF_TU "llu"
jpayne@69 392 # define CURL_SUFFIX_CURL_OFF_T LL
jpayne@69 393 # define CURL_SUFFIX_CURL_OFF_TU ULL
jpayne@69 394 # elif defined(__LP64__) || \
jpayne@69 395 defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
jpayne@69 396 defined(__e2k__) || \
jpayne@69 397 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
jpayne@69 398 (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
jpayne@69 399 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 400 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 401 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 402 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 403 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 404 # endif
jpayne@69 405 # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
jpayne@69 406 # define CURL_PULL_SYS_TYPES_H 1
jpayne@69 407 # define CURL_PULL_SYS_SOCKET_H 1
jpayne@69 408
jpayne@69 409 #else
jpayne@69 410 /* generic "safe guess" on old 32 bit style */
jpayne@69 411 # define CURL_TYPEOF_CURL_OFF_T long
jpayne@69 412 # define CURL_FORMAT_CURL_OFF_T "ld"
jpayne@69 413 # define CURL_FORMAT_CURL_OFF_TU "lu"
jpayne@69 414 # define CURL_SUFFIX_CURL_OFF_T L
jpayne@69 415 # define CURL_SUFFIX_CURL_OFF_TU UL
jpayne@69 416 # define CURL_TYPEOF_CURL_SOCKLEN_T int
jpayne@69 417 #endif
jpayne@69 418
jpayne@69 419 #ifdef _AIX
jpayne@69 420 /* AIX needs <sys/poll.h> */
jpayne@69 421 #define CURL_PULL_SYS_POLL_H
jpayne@69 422 #endif
jpayne@69 423
jpayne@69 424
jpayne@69 425 /* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */
jpayne@69 426 /* ws2tcpip.h is required here to properly make type definitions below. */
jpayne@69 427 #ifdef CURL_PULL_WS2TCPIP_H
jpayne@69 428 # include <winsock2.h>
jpayne@69 429 # include <windows.h>
jpayne@69 430 # include <ws2tcpip.h>
jpayne@69 431 #endif
jpayne@69 432
jpayne@69 433 /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */
jpayne@69 434 /* sys/types.h is required here to properly make type definitions below. */
jpayne@69 435 #ifdef CURL_PULL_SYS_TYPES_H
jpayne@69 436 # include <sys/types.h>
jpayne@69 437 #endif
jpayne@69 438
jpayne@69 439 /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
jpayne@69 440 /* sys/socket.h is required here to properly make type definitions below. */
jpayne@69 441 #ifdef CURL_PULL_SYS_SOCKET_H
jpayne@69 442 # include <sys/socket.h>
jpayne@69 443 #endif
jpayne@69 444
jpayne@69 445 /* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */
jpayne@69 446 /* sys/poll.h is required here to properly make type definitions below. */
jpayne@69 447 #ifdef CURL_PULL_SYS_POLL_H
jpayne@69 448 # include <sys/poll.h>
jpayne@69 449 #endif
jpayne@69 450
jpayne@69 451 /* Data type definition of curl_socklen_t. */
jpayne@69 452 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
jpayne@69 453 typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
jpayne@69 454 #endif
jpayne@69 455
jpayne@69 456 /* Data type definition of curl_off_t. */
jpayne@69 457
jpayne@69 458 #ifdef CURL_TYPEOF_CURL_OFF_T
jpayne@69 459 typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
jpayne@69 460 #endif
jpayne@69 461
jpayne@69 462 /*
jpayne@69 463 * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
jpayne@69 464 * these to be visible and exported by the external libcurl interface API,
jpayne@69 465 * while also making them visible to the library internals, simply including
jpayne@69 466 * curl_setup.h, without actually needing to include curl.h internally.
jpayne@69 467 * If some day this section would grow big enough, all this should be moved
jpayne@69 468 * to its own header file.
jpayne@69 469 */
jpayne@69 470
jpayne@69 471 /*
jpayne@69 472 * Figure out if we can use the ## preprocessor operator, which is supported
jpayne@69 473 * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
jpayne@69 474 * or __cplusplus so we need to carefully check for them too.
jpayne@69 475 */
jpayne@69 476
jpayne@69 477 #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
jpayne@69 478 defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
jpayne@69 479 defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
jpayne@69 480 defined(__ILEC400__)
jpayne@69 481 /* This compiler is believed to have an ISO compatible preprocessor */
jpayne@69 482 #define CURL_ISOCPP
jpayne@69 483 #else
jpayne@69 484 /* This compiler is believed NOT to have an ISO compatible preprocessor */
jpayne@69 485 #undef CURL_ISOCPP
jpayne@69 486 #endif
jpayne@69 487
jpayne@69 488 /*
jpayne@69 489 * Macros for minimum-width signed and unsigned curl_off_t integer constants.
jpayne@69 490 */
jpayne@69 491
jpayne@69 492 #if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
jpayne@69 493 # define CURLINC_OFF_T_C_HLPR2(x) x
jpayne@69 494 # define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
jpayne@69 495 # define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
jpayne@69 496 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
jpayne@69 497 # define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
jpayne@69 498 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
jpayne@69 499 #else
jpayne@69 500 # ifdef CURL_ISOCPP
jpayne@69 501 # define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
jpayne@69 502 # else
jpayne@69 503 # define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
jpayne@69 504 # endif
jpayne@69 505 # define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
jpayne@69 506 # define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
jpayne@69 507 # define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
jpayne@69 508 #endif
jpayne@69 509
jpayne@69 510 #endif /* CURLINC_SYSTEM_H */