blob: 8d56b8a4a1baafeb07269540107df68d631e5aee [file] [log] [blame]
xf.li6c8fc1e2023-08-12 00:11:09 -07001#ifndef CURLINC_SYSTEM_H
2#define CURLINC_SYSTEM_H
3/***************************************************************************
4 * _ _ ____ _
5 * Project ___| | | | _ \| |
6 * / __| | | | |_) | |
7 * | (__| |_| | _ <| |___
8 * \___|\___/|_| \_\_____|
9 *
10 * Copyright (C) 1998 - 2022, 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(__SYMBIAN32__)
145# if defined(__EABI__) /* Treat all ARM compilers equally */
146# define CURL_TYPEOF_CURL_OFF_T long long
147# define CURL_FORMAT_CURL_OFF_T "lld"
148# define CURL_FORMAT_CURL_OFF_TU "llu"
149# define CURL_SUFFIX_CURL_OFF_T LL
150# define CURL_SUFFIX_CURL_OFF_TU ULL
151# elif defined(__CW32__)
152# pragma longlong on
153# define CURL_TYPEOF_CURL_OFF_T long long
154# define CURL_FORMAT_CURL_OFF_T "lld"
155# define CURL_FORMAT_CURL_OFF_TU "llu"
156# define CURL_SUFFIX_CURL_OFF_T LL
157# define CURL_SUFFIX_CURL_OFF_TU ULL
158# elif defined(__VC32__)
159# define CURL_TYPEOF_CURL_OFF_T __int64
160# define CURL_FORMAT_CURL_OFF_T "lld"
161# define CURL_FORMAT_CURL_OFF_TU "llu"
162# define CURL_SUFFIX_CURL_OFF_T LL
163# define CURL_SUFFIX_CURL_OFF_TU ULL
164# endif
165# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
166
167#elif defined(__MWERKS__)
168# define CURL_TYPEOF_CURL_OFF_T long long
169# define CURL_FORMAT_CURL_OFF_T "lld"
170# define CURL_FORMAT_CURL_OFF_TU "llu"
171# define CURL_SUFFIX_CURL_OFF_T LL
172# define CURL_SUFFIX_CURL_OFF_TU ULL
173# define CURL_TYPEOF_CURL_SOCKLEN_T int
174
175#elif defined(_WIN32_WCE)
176# define CURL_TYPEOF_CURL_OFF_T __int64
177# define CURL_FORMAT_CURL_OFF_T "I64d"
178# define CURL_FORMAT_CURL_OFF_TU "I64u"
179# define CURL_SUFFIX_CURL_OFF_T i64
180# define CURL_SUFFIX_CURL_OFF_TU ui64
181# define CURL_TYPEOF_CURL_SOCKLEN_T int
182
183#elif defined(__MINGW32__)
184# define CURL_TYPEOF_CURL_OFF_T long long
185# define CURL_FORMAT_CURL_OFF_T "I64d"
186# define CURL_FORMAT_CURL_OFF_TU "I64u"
187# define CURL_SUFFIX_CURL_OFF_T LL
188# define CURL_SUFFIX_CURL_OFF_TU ULL
189# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
190# define CURL_PULL_SYS_TYPES_H 1
191# define CURL_PULL_WS2TCPIP_H 1
192
193#elif defined(__VMS)
194# if defined(__VAX)
195# define CURL_TYPEOF_CURL_OFF_T long
196# define CURL_FORMAT_CURL_OFF_T "ld"
197# define CURL_FORMAT_CURL_OFF_TU "lu"
198# define CURL_SUFFIX_CURL_OFF_T L
199# define CURL_SUFFIX_CURL_OFF_TU UL
200# else
201# define CURL_TYPEOF_CURL_OFF_T long long
202# define CURL_FORMAT_CURL_OFF_T "lld"
203# define CURL_FORMAT_CURL_OFF_TU "llu"
204# define CURL_SUFFIX_CURL_OFF_T LL
205# define CURL_SUFFIX_CURL_OFF_TU ULL
206# endif
207# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
208
209#elif defined(__OS400__)
210# if defined(__ILEC400__)
211# define CURL_TYPEOF_CURL_OFF_T long long
212# define CURL_FORMAT_CURL_OFF_T "lld"
213# define CURL_FORMAT_CURL_OFF_TU "llu"
214# define CURL_SUFFIX_CURL_OFF_T LL
215# define CURL_SUFFIX_CURL_OFF_TU ULL
216# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
217# define CURL_PULL_SYS_TYPES_H 1
218# define CURL_PULL_SYS_SOCKET_H 1
219# endif
220
221#elif defined(__MVS__)
222# if defined(__IBMC__) || defined(__IBMCPP__)
223# if defined(_ILP32)
224# elif defined(_LP64)
225# endif
226# if defined(_LONG_LONG)
227# define CURL_TYPEOF_CURL_OFF_T long long
228# define CURL_FORMAT_CURL_OFF_T "lld"
229# define CURL_FORMAT_CURL_OFF_TU "llu"
230# define CURL_SUFFIX_CURL_OFF_T LL
231# define CURL_SUFFIX_CURL_OFF_TU ULL
232# elif defined(_LP64)
233# define CURL_TYPEOF_CURL_OFF_T long
234# define CURL_FORMAT_CURL_OFF_T "ld"
235# define CURL_FORMAT_CURL_OFF_TU "lu"
236# define CURL_SUFFIX_CURL_OFF_T L
237# define CURL_SUFFIX_CURL_OFF_TU UL
238# else
239# define CURL_TYPEOF_CURL_OFF_T long
240# define CURL_FORMAT_CURL_OFF_T "ld"
241# define CURL_FORMAT_CURL_OFF_TU "lu"
242# define CURL_SUFFIX_CURL_OFF_T L
243# define CURL_SUFFIX_CURL_OFF_TU UL
244# endif
245# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
246# define CURL_PULL_SYS_TYPES_H 1
247# define CURL_PULL_SYS_SOCKET_H 1
248# endif
249
250#elif defined(__370__)
251# if defined(__IBMC__) || defined(__IBMCPP__)
252# if defined(_ILP32)
253# elif defined(_LP64)
254# endif
255# if defined(_LONG_LONG)
256# define CURL_TYPEOF_CURL_OFF_T long long
257# define CURL_FORMAT_CURL_OFF_T "lld"
258# define CURL_FORMAT_CURL_OFF_TU "llu"
259# define CURL_SUFFIX_CURL_OFF_T LL
260# define CURL_SUFFIX_CURL_OFF_TU ULL
261# elif defined(_LP64)
262# define CURL_TYPEOF_CURL_OFF_T long
263# define CURL_FORMAT_CURL_OFF_T "ld"
264# define CURL_FORMAT_CURL_OFF_TU "lu"
265# define CURL_SUFFIX_CURL_OFF_T L
266# define CURL_SUFFIX_CURL_OFF_TU UL
267# else
268# define CURL_TYPEOF_CURL_OFF_T long
269# define CURL_FORMAT_CURL_OFF_T "ld"
270# define CURL_FORMAT_CURL_OFF_TU "lu"
271# define CURL_SUFFIX_CURL_OFF_T L
272# define CURL_SUFFIX_CURL_OFF_TU UL
273# endif
274# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
275# define CURL_PULL_SYS_TYPES_H 1
276# define CURL_PULL_SYS_SOCKET_H 1
277# endif
278
279#elif defined(TPF)
280# define CURL_TYPEOF_CURL_OFF_T long
281# define CURL_FORMAT_CURL_OFF_T "ld"
282# define CURL_FORMAT_CURL_OFF_TU "lu"
283# define CURL_SUFFIX_CURL_OFF_T L
284# define CURL_SUFFIX_CURL_OFF_TU UL
285# define CURL_TYPEOF_CURL_SOCKLEN_T int
286
287#elif defined(__TINYC__) /* also known as tcc */
288# define CURL_TYPEOF_CURL_OFF_T long long
289# define CURL_FORMAT_CURL_OFF_T "lld"
290# define CURL_FORMAT_CURL_OFF_TU "llu"
291# define CURL_SUFFIX_CURL_OFF_T LL
292# define CURL_SUFFIX_CURL_OFF_TU ULL
293# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
294# define CURL_PULL_SYS_TYPES_H 1
295# define CURL_PULL_SYS_SOCKET_H 1
296
297#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
298# if !defined(__LP64) && (defined(__ILP32) || \
299 defined(__i386) || \
300 defined(__sparcv8) || \
301 defined(__sparcv8plus))
302# define CURL_TYPEOF_CURL_OFF_T long long
303# define CURL_FORMAT_CURL_OFF_T "lld"
304# define CURL_FORMAT_CURL_OFF_TU "llu"
305# define CURL_SUFFIX_CURL_OFF_T LL
306# define CURL_SUFFIX_CURL_OFF_TU ULL
307# elif defined(__LP64) || \
308 defined(__amd64) || defined(__sparcv9)
309# define CURL_TYPEOF_CURL_OFF_T long
310# define CURL_FORMAT_CURL_OFF_T "ld"
311# define CURL_FORMAT_CURL_OFF_TU "lu"
312# define CURL_SUFFIX_CURL_OFF_T L
313# define CURL_SUFFIX_CURL_OFF_TU UL
314# endif
315# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
316# define CURL_PULL_SYS_TYPES_H 1
317# define CURL_PULL_SYS_SOCKET_H 1
318
319#elif defined(__xlc__) /* IBM xlc compiler */
320# if !defined(_LP64)
321# define CURL_TYPEOF_CURL_OFF_T long long
322# define CURL_FORMAT_CURL_OFF_T "lld"
323# define CURL_FORMAT_CURL_OFF_TU "llu"
324# define CURL_SUFFIX_CURL_OFF_T LL
325# define CURL_SUFFIX_CURL_OFF_TU ULL
326# else
327# define CURL_TYPEOF_CURL_OFF_T long
328# define CURL_FORMAT_CURL_OFF_T "ld"
329# define CURL_FORMAT_CURL_OFF_TU "lu"
330# define CURL_SUFFIX_CURL_OFF_T L
331# define CURL_SUFFIX_CURL_OFF_TU UL
332# endif
333# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
334# define CURL_PULL_SYS_TYPES_H 1
335# define CURL_PULL_SYS_SOCKET_H 1
336
337/* ===================================== */
338/* KEEP MSVC THE PENULTIMATE ENTRY */
339/* ===================================== */
340
341#elif defined(_MSC_VER)
342# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
343# define CURL_TYPEOF_CURL_OFF_T __int64
344# define CURL_FORMAT_CURL_OFF_T "I64d"
345# define CURL_FORMAT_CURL_OFF_TU "I64u"
346# define CURL_SUFFIX_CURL_OFF_T i64
347# define CURL_SUFFIX_CURL_OFF_TU ui64
348# else
349# define CURL_TYPEOF_CURL_OFF_T long
350# define CURL_FORMAT_CURL_OFF_T "ld"
351# define CURL_FORMAT_CURL_OFF_TU "lu"
352# define CURL_SUFFIX_CURL_OFF_T L
353# define CURL_SUFFIX_CURL_OFF_TU UL
354# endif
355# define CURL_TYPEOF_CURL_SOCKLEN_T int
356
357/* ===================================== */
358/* KEEP GENERIC GCC THE LAST ENTRY */
359/* ===================================== */
360
361#elif defined(__GNUC__) && !defined(_SCO_DS)
362# if !defined(__LP64__) && \
363 (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \
364 defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \
365 defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
366 defined(__XTENSA__) || \
367 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
368 (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
369# define CURL_TYPEOF_CURL_OFF_T long long
370# define CURL_FORMAT_CURL_OFF_T "lld"
371# define CURL_FORMAT_CURL_OFF_TU "llu"
372# define CURL_SUFFIX_CURL_OFF_T LL
373# define CURL_SUFFIX_CURL_OFF_TU ULL
374# elif defined(__LP64__) || \
375 defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
376 defined(__e2k__) || \
377 (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
378 (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
379# define CURL_TYPEOF_CURL_OFF_T long
380# define CURL_FORMAT_CURL_OFF_T "ld"
381# define CURL_FORMAT_CURL_OFF_TU "lu"
382# define CURL_SUFFIX_CURL_OFF_T L
383# define CURL_SUFFIX_CURL_OFF_TU UL
384# endif
385# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
386# define CURL_PULL_SYS_TYPES_H 1
387# define CURL_PULL_SYS_SOCKET_H 1
388
389#else
390/* generic "safe guess" on old 32 bit style */
391# define CURL_TYPEOF_CURL_OFF_T long
392# define CURL_FORMAT_CURL_OFF_T "ld"
393# define CURL_FORMAT_CURL_OFF_TU "lu"
394# define CURL_SUFFIX_CURL_OFF_T L
395# define CURL_SUFFIX_CURL_OFF_TU UL
396# define CURL_TYPEOF_CURL_SOCKLEN_T int
397#endif
398
399#ifdef _AIX
400/* AIX needs <sys/poll.h> */
401#define CURL_PULL_SYS_POLL_H
402#endif
403
404
405/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */
406/* ws2tcpip.h is required here to properly make type definitions below. */
407#ifdef CURL_PULL_WS2TCPIP_H
408# include <winsock2.h>
409# include <windows.h>
410# include <ws2tcpip.h>
411#endif
412
413/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */
414/* sys/types.h is required here to properly make type definitions below. */
415#ifdef CURL_PULL_SYS_TYPES_H
416# include <sys/types.h>
417#endif
418
419/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
420/* sys/socket.h is required here to properly make type definitions below. */
421#ifdef CURL_PULL_SYS_SOCKET_H
422# include <sys/socket.h>
423#endif
424
425/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */
426/* sys/poll.h is required here to properly make type definitions below. */
427#ifdef CURL_PULL_SYS_POLL_H
428# include <sys/poll.h>
429#endif
430
431/* Data type definition of curl_socklen_t. */
432#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
433 typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
434#endif
435
436/* Data type definition of curl_off_t. */
437
438#ifdef CURL_TYPEOF_CURL_OFF_T
439 typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
440#endif
441
442/*
443 * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
444 * these to be visible and exported by the external libcurl interface API,
445 * while also making them visible to the library internals, simply including
446 * curl_setup.h, without actually needing to include curl.h internally.
447 * If some day this section would grow big enough, all this should be moved
448 * to its own header file.
449 */
450
451/*
452 * Figure out if we can use the ## preprocessor operator, which is supported
453 * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
454 * or __cplusplus so we need to carefully check for them too.
455 */
456
457#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
458 defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
459 defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
460 defined(__ILEC400__)
461 /* This compiler is believed to have an ISO compatible preprocessor */
462#define CURL_ISOCPP
463#else
464 /* This compiler is believed NOT to have an ISO compatible preprocessor */
465#undef CURL_ISOCPP
466#endif
467
468/*
469 * Macros for minimum-width signed and unsigned curl_off_t integer constants.
470 */
471
472#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
473# define CURLINC_OFF_T_C_HLPR2(x) x
474# define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
475# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
476 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
477# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
478 CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
479#else
480# ifdef CURL_ISOCPP
481# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
482# else
483# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
484# endif
485# define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
486# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
487# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
488#endif
489
490#endif /* CURLINC_SYSTEM_H */