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