Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/curl/system.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #ifndef CURLINC_SYSTEM_H
0002 #define CURLINC_SYSTEM_H
0003 /***************************************************************************
0004  *                                  _   _ ____  _
0005  *  Project                     ___| | | |  _ \| |
0006  *                             / __| | | | |_) | |
0007  *                            | (__| |_| |  _ <| |___
0008  *                             \___|\___/|_| \_\_____|
0009  *
0010  * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
0011  *
0012  * This software is licensed as described in the file COPYING, which
0013  * you should have received as part of this distribution. The terms
0014  * are also available at https://curl.se/docs/copyright.html.
0015  *
0016  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
0017  * copies of the Software, and permit persons to whom the Software is
0018  * furnished to do so, under the terms of the COPYING file.
0019  *
0020  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
0021  * KIND, either express or implied.
0022  *
0023  * SPDX-License-Identifier: curl
0024  *
0025  ***************************************************************************/
0026 
0027 /*
0028  * Try to keep one section per platform, compiler and architecture, otherwise,
0029  * if an existing section is reused for a different one and later on the
0030  * original is adjusted, probably the piggybacking one can be adversely
0031  * changed.
0032  *
0033  * In order to differentiate between platforms/compilers/architectures use
0034  * only compiler built-in predefined preprocessor symbols.
0035  *
0036  * curl_off_t
0037  * ----------
0038  *
0039  * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit
0040  * wide signed integral data type. The width of this data type must remain
0041  * constant and independent of any possible large file support settings.
0042  *
0043  * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit
0044  * wide signed integral data type if there is no 64-bit type.
0045  *
0046  * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall
0047  * only be violated if off_t is the only 64-bit data type available and the
0048  * size of off_t is independent of large file support settings. Keep your
0049  * build on the safe side avoiding an off_t gating. If you have a 64-bit
0050  * off_t then take for sure that another 64-bit data type exists, dig deeper
0051  * and you will find it.
0052  *
0053  */
0054 
0055 #if defined(__DJGPP__) || defined(__GO32__)
0056 #  if defined(__DJGPP__) && (__DJGPP__ > 1)
0057 #    define CURL_TYPEOF_CURL_OFF_T     long long
0058 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0059 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0060 #    define CURL_SUFFIX_CURL_OFF_T     LL
0061 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0062 #  else
0063 #    define CURL_TYPEOF_CURL_OFF_T     long
0064 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0065 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0066 #    define CURL_SUFFIX_CURL_OFF_T     L
0067 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0068 #  endif
0069 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0070 
0071 #elif defined(__SALFORDC__)
0072 #  define CURL_TYPEOF_CURL_OFF_T     long
0073 #  define CURL_FORMAT_CURL_OFF_T     "ld"
0074 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
0075 #  define CURL_SUFFIX_CURL_OFF_T     L
0076 #  define CURL_SUFFIX_CURL_OFF_TU    UL
0077 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0078 
0079 #elif defined(__BORLANDC__)
0080 #  if (__BORLANDC__ < 0x520)
0081 #    define CURL_TYPEOF_CURL_OFF_T     long
0082 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0083 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0084 #    define CURL_SUFFIX_CURL_OFF_T     L
0085 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0086 #  else
0087 #    define CURL_TYPEOF_CURL_OFF_T     __int64
0088 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
0089 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
0090 #    define CURL_SUFFIX_CURL_OFF_T     i64
0091 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
0092 #  endif
0093 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0094 
0095 #elif defined(__TURBOC__)
0096 #  define CURL_TYPEOF_CURL_OFF_T     long
0097 #  define CURL_FORMAT_CURL_OFF_T     "ld"
0098 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
0099 #  define CURL_SUFFIX_CURL_OFF_T     L
0100 #  define CURL_SUFFIX_CURL_OFF_TU    UL
0101 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0102 
0103 #elif defined(__POCC__)
0104 #  if (__POCC__ < 280)
0105 #    define CURL_TYPEOF_CURL_OFF_T     long
0106 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0107 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0108 #    define CURL_SUFFIX_CURL_OFF_T     L
0109 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0110 #  elif defined(_MSC_VER)
0111 #    define CURL_TYPEOF_CURL_OFF_T     __int64
0112 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
0113 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
0114 #    define CURL_SUFFIX_CURL_OFF_T     i64
0115 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
0116 #  else
0117 #    define CURL_TYPEOF_CURL_OFF_T     long long
0118 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0119 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0120 #    define CURL_SUFFIX_CURL_OFF_T     LL
0121 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0122 #  endif
0123 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0124 
0125 #elif defined(__LCC__)
0126 #  if defined(__MCST__) /* MCST eLbrus Compiler Collection */
0127 #    define CURL_TYPEOF_CURL_OFF_T     long
0128 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0129 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0130 #    define CURL_SUFFIX_CURL_OFF_T     L
0131 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0132 #    define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0133 #    define CURL_PULL_SYS_TYPES_H      1
0134 #    define CURL_PULL_SYS_SOCKET_H     1
0135 #  else                /* Local (or Little) C Compiler */
0136 #    define CURL_TYPEOF_CURL_OFF_T     long
0137 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0138 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0139 #    define CURL_SUFFIX_CURL_OFF_T     L
0140 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0141 #    define CURL_TYPEOF_CURL_SOCKLEN_T int
0142 #  endif
0143 
0144 #elif defined(macintosh)
0145 #  include <ConditionalMacros.h>
0146 #  if TYPE_LONGLONG
0147 #    define CURL_TYPEOF_CURL_OFF_T     long long
0148 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0149 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0150 #    define CURL_SUFFIX_CURL_OFF_T     LL
0151 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0152 #  else
0153 #    define CURL_TYPEOF_CURL_OFF_T     long
0154 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0155 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0156 #    define CURL_SUFFIX_CURL_OFF_T     L
0157 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0158 #  endif
0159 #  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
0160 
0161 #elif defined(__TANDEM)
0162 # if ! defined(__LP64)
0163    /* Required for 32-bit NonStop builds only. */
0164 #  define CURL_TYPEOF_CURL_OFF_T     long long
0165 #  define CURL_FORMAT_CURL_OFF_T     "lld"
0166 #  define CURL_FORMAT_CURL_OFF_TU    "llu"
0167 #  define CURL_SUFFIX_CURL_OFF_T     LL
0168 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
0169 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0170 # endif
0171 
0172 #elif defined(_WIN32_WCE)
0173 #  define CURL_TYPEOF_CURL_OFF_T     __int64
0174 #  define CURL_FORMAT_CURL_OFF_T     "I64d"
0175 #  define CURL_FORMAT_CURL_OFF_TU    "I64u"
0176 #  define CURL_SUFFIX_CURL_OFF_T     i64
0177 #  define CURL_SUFFIX_CURL_OFF_TU    ui64
0178 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0179 
0180 #elif defined(__MINGW32__)
0181 #  include <inttypes.h>
0182 #  define CURL_TYPEOF_CURL_OFF_T     long long
0183 #  define CURL_FORMAT_CURL_OFF_T     PRId64
0184 #  define CURL_FORMAT_CURL_OFF_TU    PRIu64
0185 #  define CURL_SUFFIX_CURL_OFF_T     LL
0186 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
0187 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0188 #  define CURL_PULL_SYS_TYPES_H      1
0189 
0190 #elif defined(__VMS)
0191 #  if defined(__VAX)
0192 #    define CURL_TYPEOF_CURL_OFF_T     long
0193 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0194 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0195 #    define CURL_SUFFIX_CURL_OFF_T     L
0196 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0197 #  else
0198 #    define CURL_TYPEOF_CURL_OFF_T     long long
0199 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0200 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0201 #    define CURL_SUFFIX_CURL_OFF_T     LL
0202 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0203 #  endif
0204 #  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
0205 
0206 #elif defined(__OS400__)
0207 #  define CURL_TYPEOF_CURL_OFF_T     long long
0208 #  define CURL_FORMAT_CURL_OFF_T     "lld"
0209 #  define CURL_FORMAT_CURL_OFF_TU    "llu"
0210 #  define CURL_SUFFIX_CURL_OFF_T     LL
0211 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
0212 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0213 #  define CURL_PULL_SYS_TYPES_H      1
0214 #  define CURL_PULL_SYS_SOCKET_H     1
0215 
0216 #elif defined(__MVS__)
0217 #  if defined(_LONG_LONG)
0218 #    define CURL_TYPEOF_CURL_OFF_T     long long
0219 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0220 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0221 #    define CURL_SUFFIX_CURL_OFF_T     LL
0222 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0223 #  elif defined(_LP64)
0224 #    define CURL_TYPEOF_CURL_OFF_T     long
0225 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0226 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0227 #    define CURL_SUFFIX_CURL_OFF_T     L
0228 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0229 #  else
0230 #    define CURL_TYPEOF_CURL_OFF_T     long
0231 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0232 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0233 #    define CURL_SUFFIX_CURL_OFF_T     L
0234 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0235 #  endif
0236 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0237 #  define CURL_PULL_SYS_TYPES_H      1
0238 #  define CURL_PULL_SYS_SOCKET_H     1
0239 
0240 #elif defined(__370__)
0241 #  if defined(__IBMC__) || defined(__IBMCPP__)
0242 #    if defined(_ILP32)
0243 #    elif defined(_LP64)
0244 #    endif
0245 #    if defined(_LONG_LONG)
0246 #      define CURL_TYPEOF_CURL_OFF_T     long long
0247 #      define CURL_FORMAT_CURL_OFF_T     "lld"
0248 #      define CURL_FORMAT_CURL_OFF_TU    "llu"
0249 #      define CURL_SUFFIX_CURL_OFF_T     LL
0250 #      define CURL_SUFFIX_CURL_OFF_TU    ULL
0251 #    elif defined(_LP64)
0252 #      define CURL_TYPEOF_CURL_OFF_T     long
0253 #      define CURL_FORMAT_CURL_OFF_T     "ld"
0254 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
0255 #      define CURL_SUFFIX_CURL_OFF_T     L
0256 #      define CURL_SUFFIX_CURL_OFF_TU    UL
0257 #    else
0258 #      define CURL_TYPEOF_CURL_OFF_T     long
0259 #      define CURL_FORMAT_CURL_OFF_T     "ld"
0260 #      define CURL_FORMAT_CURL_OFF_TU    "lu"
0261 #      define CURL_SUFFIX_CURL_OFF_T     L
0262 #      define CURL_SUFFIX_CURL_OFF_TU    UL
0263 #    endif
0264 #    define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0265 #    define CURL_PULL_SYS_TYPES_H      1
0266 #    define CURL_PULL_SYS_SOCKET_H     1
0267 #  endif
0268 
0269 #elif defined(TPF)
0270 #  define CURL_TYPEOF_CURL_OFF_T     long
0271 #  define CURL_FORMAT_CURL_OFF_T     "ld"
0272 #  define CURL_FORMAT_CURL_OFF_TU    "lu"
0273 #  define CURL_SUFFIX_CURL_OFF_T     L
0274 #  define CURL_SUFFIX_CURL_OFF_TU    UL
0275 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0276 
0277 #elif defined(__TINYC__) /* also known as tcc */
0278 #  define CURL_TYPEOF_CURL_OFF_T     long long
0279 #  define CURL_FORMAT_CURL_OFF_T     "lld"
0280 #  define CURL_FORMAT_CURL_OFF_TU    "llu"
0281 #  define CURL_SUFFIX_CURL_OFF_T     LL
0282 #  define CURL_SUFFIX_CURL_OFF_TU    ULL
0283 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0284 #  define CURL_PULL_SYS_TYPES_H      1
0285 #  define CURL_PULL_SYS_SOCKET_H     1
0286 
0287 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
0288 #  if !defined(__LP64) && (defined(__ILP32) ||                          \
0289                            defined(__i386) ||                           \
0290                            defined(__sparcv8) ||                        \
0291                            defined(__sparcv8plus))
0292 #    define CURL_TYPEOF_CURL_OFF_T     long long
0293 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0294 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0295 #    define CURL_SUFFIX_CURL_OFF_T     LL
0296 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0297 #  elif defined(__LP64) || \
0298         defined(__amd64) || defined(__sparcv9)
0299 #    define CURL_TYPEOF_CURL_OFF_T     long
0300 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0301 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0302 #    define CURL_SUFFIX_CURL_OFF_T     L
0303 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0304 #  endif
0305 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0306 #  define CURL_PULL_SYS_TYPES_H      1
0307 #  define CURL_PULL_SYS_SOCKET_H     1
0308 
0309 #elif defined(__xlc__) /* IBM xlc compiler */
0310 #  if !defined(_LP64)
0311 #    define CURL_TYPEOF_CURL_OFF_T     long long
0312 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0313 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0314 #    define CURL_SUFFIX_CURL_OFF_T     LL
0315 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0316 #  else
0317 #    define CURL_TYPEOF_CURL_OFF_T     long
0318 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0319 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0320 #    define CURL_SUFFIX_CURL_OFF_T     L
0321 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0322 #  endif
0323 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0324 #  define CURL_PULL_SYS_TYPES_H      1
0325 #  define CURL_PULL_SYS_SOCKET_H     1
0326 
0327 #elif defined(__hpux) /* HP aCC compiler */
0328 #  if !defined(_LP64)
0329 #    define CURL_TYPEOF_CURL_OFF_T     long long
0330 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0331 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0332 #    define CURL_SUFFIX_CURL_OFF_T     LL
0333 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0334 #  else
0335 #    define CURL_TYPEOF_CURL_OFF_T     long
0336 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0337 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0338 #    define CURL_SUFFIX_CURL_OFF_T     L
0339 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0340 #  endif
0341 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0342 #  define CURL_PULL_SYS_TYPES_H      1
0343 #  define CURL_PULL_SYS_SOCKET_H     1
0344 
0345 /* ===================================== */
0346 /*    KEEP MSVC THE PENULTIMATE ENTRY    */
0347 /* ===================================== */
0348 
0349 #elif defined(_MSC_VER)
0350 #  if (_MSC_VER >= 1800)
0351 #    include <inttypes.h>
0352 #    define CURL_TYPEOF_CURL_OFF_T     __int64
0353 #    define CURL_FORMAT_CURL_OFF_T     PRId64
0354 #    define CURL_FORMAT_CURL_OFF_TU    PRIu64
0355 #    define CURL_SUFFIX_CURL_OFF_T     i64
0356 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
0357 #  elif (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
0358 #    define CURL_TYPEOF_CURL_OFF_T     __int64
0359 #    define CURL_FORMAT_CURL_OFF_T     "I64d"
0360 #    define CURL_FORMAT_CURL_OFF_TU    "I64u"
0361 #    define CURL_SUFFIX_CURL_OFF_T     i64
0362 #    define CURL_SUFFIX_CURL_OFF_TU    ui64
0363 #  else
0364 #    define CURL_TYPEOF_CURL_OFF_T     long
0365 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0366 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0367 #    define CURL_SUFFIX_CURL_OFF_T     L
0368 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0369 #  endif
0370 #  define CURL_TYPEOF_CURL_SOCKLEN_T int
0371 
0372 /* ===================================== */
0373 /*    KEEP GENERIC GCC THE LAST ENTRY    */
0374 /* ===================================== */
0375 
0376 #elif defined(__GNUC__) && !defined(_SCO_DS)
0377 #  if !defined(__LP64__) &&                                             \
0378   (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) ||      \
0379    defined(__ppc__) || defined(__powerpc__) || defined(__arm__) ||      \
0380    defined(__sparc__) || defined(__mips__) || defined(__sh__) ||        \
0381    defined(__XTENSA__) ||                                               \
0382    (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4)  ||               \
0383    (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
0384 #    define CURL_TYPEOF_CURL_OFF_T     long long
0385 #    define CURL_FORMAT_CURL_OFF_T     "lld"
0386 #    define CURL_FORMAT_CURL_OFF_TU    "llu"
0387 #    define CURL_SUFFIX_CURL_OFF_T     LL
0388 #    define CURL_SUFFIX_CURL_OFF_TU    ULL
0389 #  elif defined(__LP64__) || \
0390         defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
0391         defined(__e2k__) || \
0392         (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
0393         (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
0394 #    define CURL_TYPEOF_CURL_OFF_T     long
0395 #    define CURL_FORMAT_CURL_OFF_T     "ld"
0396 #    define CURL_FORMAT_CURL_OFF_TU    "lu"
0397 #    define CURL_SUFFIX_CURL_OFF_T     L
0398 #    define CURL_SUFFIX_CURL_OFF_TU    UL
0399 #  endif
0400 #  define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
0401 #  define CURL_PULL_SYS_TYPES_H      1
0402 #  define CURL_PULL_SYS_SOCKET_H     1
0403 
0404 #else
0405 /* generic "safe guess" on old 32-bit style */
0406 # define CURL_TYPEOF_CURL_OFF_T     long
0407 # define CURL_FORMAT_CURL_OFF_T     "ld"
0408 # define CURL_FORMAT_CURL_OFF_TU    "lu"
0409 # define CURL_SUFFIX_CURL_OFF_T     L
0410 # define CURL_SUFFIX_CURL_OFF_TU    UL
0411 # define CURL_TYPEOF_CURL_SOCKLEN_T int
0412 #endif
0413 
0414 #ifdef _AIX
0415 /* AIX needs <sys/poll.h> */
0416 #define CURL_PULL_SYS_POLL_H
0417 #endif
0418 
0419 /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file  */
0420 /* sys/types.h is required here to properly make type definitions below. */
0421 #ifdef CURL_PULL_SYS_TYPES_H
0422 #  include <sys/types.h>
0423 #endif
0424 
0425 /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file  */
0426 /* sys/socket.h is required here to properly make type definitions below. */
0427 #ifdef CURL_PULL_SYS_SOCKET_H
0428 #  include <sys/socket.h>
0429 #endif
0430 
0431 /* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file    */
0432 /* sys/poll.h is required here to properly make type definitions below.   */
0433 #ifdef CURL_PULL_SYS_POLL_H
0434 #  include <sys/poll.h>
0435 #endif
0436 
0437 /* Data type definition of curl_socklen_t. */
0438 #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
0439   typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
0440 #endif
0441 
0442 /* Data type definition of curl_off_t. */
0443 
0444 #ifdef CURL_TYPEOF_CURL_OFF_T
0445   typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
0446 #endif
0447 
0448 /*
0449  * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
0450  * these to be visible and exported by the external libcurl interface API,
0451  * while also making them visible to the library internals, simply including
0452  * curl_setup.h, without actually needing to include curl.h internally.
0453  * If some day this section would grow big enough, all this should be moved
0454  * to its own header file.
0455  */
0456 
0457 /*
0458  * Figure out if we can use the ## preprocessor operator, which is supported
0459  * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
0460  * or  __cplusplus so we need to carefully check for them too.
0461  */
0462 
0463 #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
0464   defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
0465   defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
0466   defined(__ILEC400__)
0467   /* This compiler is believed to have an ISO compatible preprocessor */
0468 #define CURL_ISOCPP
0469 #else
0470   /* This compiler is believed NOT to have an ISO compatible preprocessor */
0471 #undef CURL_ISOCPP
0472 #endif
0473 
0474 /*
0475  * Macros for minimum-width signed and unsigned curl_off_t integer constants.
0476  */
0477 
0478 #if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
0479 #  define CURLINC_OFF_T_C_HLPR2(x) x
0480 #  define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
0481 #  define CURL_OFF_T_C(Val)  CURLINC_OFF_T_C_HLPR1(Val) ## \
0482                              CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
0483 #  define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
0484                              CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
0485 #else
0486 #  ifdef CURL_ISOCPP
0487 #    define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
0488 #  else
0489 #    define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
0490 #  endif
0491 #  define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
0492 #  define CURL_OFF_T_C(Val)  CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
0493 #  define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
0494 #endif
0495 
0496 #endif /* CURLINC_SYSTEM_H */