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 */
|