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