1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
21
/* GENERATED FILE WARNING! DO NOT EDIT apr.h
23
* You must modify apr.hw instead.
25
* And please, make an effort to stub apr.hnw and apr.h.in in the process.
27
* This is the Win32 specific version of apr.h. It is copied from
28
* apr.hw by the apr.dsp and libapr.dsp projects.
33
* @brief APR Platform Definitions
34
* @remark This is a generated header generated from include/apr.h.in by
35
* ./configure, or copied from include/apr.hw or include/apr.hnw
36
* for Win32 or Netware by those build environments, respectively.
39
#if defined(WIN32) || defined(DOXYGEN)
41
/* Ignore most warnings (back down to /W3) for poorly constructed headers
43
#if defined(_MSC_VER) && _MSC_VER >= 1200
44
#pragma warning(push, 3)
47
/* disable or reduce the frequency of...
48
* C4057: indirection to slightly different base types
49
* C4075: slight indirection changes (unsigned short* vs short[])
50
* C4100: unreferenced formal parameter
51
* C4127: conditional expression is constant
52
* C4163: '_rotl64' : not available as an intrinsic function
53
* C4201: nonstandard extension nameless struct/unions
54
* C4244: int to char/short - precision loss
55
* C4514: unreferenced inline function removed
57
#pragma warning(disable: 4100 4127 4163 4201 4514; once: 4057 4075 4244)
59
/* Ignore Microsoft's interpretation of secure development
60
* and the POSIX string handling API
62
#if defined(_MSC_VER) && _MSC_VER >= 1400
63
#ifndef _CRT_SECURE_NO_DEPRECATE
64
#define _CRT_SECURE_NO_DEPRECATE
66
#pragma warning(disable: 4996)
69
/* Has windows.h already been included? If so, our preferences don't matter,
70
* but we will still need the winsock things no matter what was included.
71
* If not, include a restricted set of windows headers to our tastes.
74
#ifndef WIN32_LEAN_AND_MEAN
75
#define WIN32_LEAN_AND_MEAN
79
/* Restrict the server to a subset of Windows NT 4.0 header files by default
81
#define _WIN32_WINNT 0x0400
94
* Add a _very_few_ declarations missing from the restricted set of headers
95
* (If this list becomes extensive, re-enable the required headers above!)
96
* winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
100
#include <winsock2.h>
102
#include <ws2tcpip.h>
106
#endif /* !_WINDOWS_ */
109
* @defgroup apr_platform Platform Definitions
114
#define APR_INLINE __inline
115
#define APR_HAS_INLINE 1
116
#if !defined(__GNUC__) && !defined(__attribute__)
117
#define __attribute__(__x)
121
#define APR_HAVE_ARPA_INET_H 0
122
#define APR_HAVE_CONIO_H 1
123
#define APR_HAVE_CRYPT_H 0
124
#define APR_HAVE_CTYPE_H 1
125
#define APR_HAVE_DIRENT_H 0
126
#define APR_HAVE_ERRNO_H 1
127
#define APR_HAVE_FCNTL_H 1
128
#define APR_HAVE_IO_H 1
129
#define APR_HAVE_LIMITS_H 1
130
#define APR_HAVE_NETDB_H 0
131
#define APR_HAVE_NETINET_IN_H 0
132
#define APR_HAVE_NETINET_SCTP_H 0
133
#define APR_HAVE_NETINET_SCTP_UIO_H 0
134
#define APR_HAVE_NETINET_TCP_H 0
135
#define APR_HAVE_PTHREAD_H 0
136
#define APR_HAVE_SIGNAL_H 1
137
#define APR_HAVE_STDARG_H 1
138
#define APR_HAVE_STDINT_H 0
139
#define APR_HAVE_STDIO_H 1
140
#define APR_HAVE_STDLIB_H 1
141
#define APR_HAVE_STRING_H 1
142
#define APR_HAVE_STRINGS_H 0
143
#define APR_HAVE_SYS_SENDFILE_H 0
144
#define APR_HAVE_SYS_SIGNAL_H 0
145
#define APR_HAVE_SYS_SOCKET_H 0
146
#define APR_HAVE_SYS_SOCKIO_H 0
147
#define APR_HAVE_SYS_SYSLIMITS_H 0
148
#define APR_HAVE_SYS_TIME_H 0
149
#define APR_HAVE_SYS_TYPES_H 1
150
#define APR_HAVE_SYS_UIO_H 0
151
#define APR_HAVE_SYS_WAIT_H 0
152
#define APR_HAVE_UNISTD_H 0
153
#define APR_HAVE_STDDEF_H 1
154
#define APR_HAVE_PROCESS_H 1
155
#define APR_HAVE_TIME_H 1
157
#define APR_HAVE_ARPA_INET_H 0
158
#define APR_HAVE_CONIO_H 0
159
#define APR_HAVE_CRYPT_H 0
160
#define APR_HAVE_CTYPE_H 0
161
#define APR_HAVE_DIRENT_H 0
162
#define APR_HAVE_ERRNO_H 0
163
#define APR_HAVE_FCNTL_H 0
164
#define APR_HAVE_IO_H 0
165
#define APR_HAVE_LIMITS_H 0
166
#define APR_HAVE_NETDB_H 0
167
#define APR_HAVE_NETINET_IN_H 0
168
#define APR_HAVE_NETINET_TCP_H 0
169
#define APR_HAVE_PTHREAD_H 0
170
#define APR_HAVE_SIGNAL_H 0
171
#define APR_HAVE_STDARG_H 0
172
#define APR_HAVE_STDINT_H 0
173
#define APR_HAVE_STDIO_H 1
174
#define APR_HAVE_STDLIB_H 1
175
#define APR_HAVE_STRING_H 1
176
#define APR_HAVE_STRINGS_H 0
177
#define APR_HAVE_SYS_SENDFILE_H 0
178
#define APR_HAVE_SYS_SIGNAL_H 0
179
#define APR_HAVE_SYS_SOCKET_H 0
180
#define APR_HAVE_SYS_SYSLIMITS_H 0
181
#define APR_HAVE_SYS_TIME_H 0
182
#define APR_HAVE_SYS_TYPES_H 0
183
#define APR_HAVE_SYS_UIO_H 0
184
#define APR_HAVE_SYS_WAIT_H 0
185
#define APR_HAVE_UNISTD_H 0
186
#define APR_HAVE_STDDEF_H 0
187
#define APR_HAVE_PROCESS_H 0
188
#define APR_HAVE_TIME_H 0
191
#define APR_USE_FLOCK_SERIALIZE 0
192
#define APR_USE_SYSVSEM_SERIALIZE 0
193
#define APR_USE_FCNTL_SERIALIZE 0
194
#define APR_USE_PROC_PTHREAD_SERIALIZE 0
195
#define APR_USE_PTHREAD_SERIALIZE 0
197
#define APR_HAS_FLOCK_SERIALIZE 0
198
#define APR_HAS_SYSVSEM_SERIALIZE 0
199
#define APR_HAS_FCNTL_SERIALIZE 0
200
#define APR_HAS_PROC_PTHREAD_SERIALIZE 0
201
#define APR_HAS_RWLOCK_SERIALIZE 0
203
#define APR_HAS_LOCK_CREATE_NP 0
205
#define APR_PROCESS_LOCK_IS_GLOBAL 0
207
#define APR_USES_ANONYMOUS_SHM 0
208
#define APR_USES_FILEBASED_SHM 0
209
#define APR_USES_KEYBASED_SHM 0
211
#define APR_FILE_BASED_SHM 0
212
#define APR_MEM_BASED_SHM 0
214
#define APR_HAVE_CORKABLE_TCP 0
215
#define APR_HAVE_GETRLIMIT 0
216
#define APR_HAVE_ICONV 0
217
#define APR_HAVE_IN_ADDR 1
218
#define APR_HAVE_INET_ADDR 1
219
#define APR_HAVE_INET_NETWORK 0
220
#define APR_HAVE_IPV6 0
221
#define APR_HAVE_MEMMOVE 1
222
#define APR_HAVE_SETRLIMIT 0
223
#define APR_HAVE_SIGACTION 0
224
#define APR_HAVE_SIGSUSPEND 0
225
#define APR_HAVE_SIGWAIT 0
226
#define APR_HAVE_STRCASECMP 0
227
#define APR_HAVE_STRDUP 1
228
#define APR_HAVE_STRNCASECMP 0
229
#define APR_HAVE_STRSTR 1
230
#define APR_HAVE_MEMCHR 1
231
#define APR_HAVE_STRUCT_RLIMIT 0
232
#define APR_HAVE_UNION_SEMUN 0
233
#define APR_HAVE_SCTP 0
236
#define APR_HAVE_STRICMP 1
237
#define APR_HAVE_STRNICMP 1
238
#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 1
240
#define APR_HAVE_STRICMP 0
241
#define APR_HAVE_STRNICMP 0
242
#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0
247
/* We don't include our conditional headers within the doxyblocks
248
* or the extern "C" namespace
251
#if APR_HAVE_STDLIB_H
257
#if APR_HAVE_SYS_TYPES_H
258
#include <sys/types.h>
260
#if APR_HAVE_STDDEF_H
266
#if APR_HAVE_PROCESS_H
270
#include <ws2tcpip.h>
278
* @addtogroup apr_platform
283
/* APR Feature Macros */
284
#define APR_HAS_SHARED_MEMORY 1
285
#define APR_HAS_THREADS 1
286
#define APR_HAS_MMAP 1
287
#define APR_HAS_FORK 0
288
#define APR_HAS_RANDOM 1
289
#define APR_HAS_OTHER_CHILD 1
290
#define APR_HAS_DSO 1
291
#define APR_HAS_SO_ACCEPTFILTER 0
292
#define APR_HAS_UNICODE_FS 1
293
#define APR_HAS_PROC_INVOKED 1
295
#define APR_HAS_SENDFILE 1
296
#define APR_HAS_USER 1
297
#define APR_HAS_LARGE_FILES 1
298
#define APR_HAS_XTHREAD_FILES 1
300
#define APR_HAS_SENDFILE 0
301
#define APR_HAS_USER 0
302
#define APR_HAS_LARGE_FILES 0
303
#define APR_HAS_XTHREAD_FILES 0
305
#define APR_HAS_OS_UUID 1
307
/* Win32 cannot poll [just yet] on files/pipes.
309
#define APR_FILES_AS_SOCKETS 0
311
/* This macro indicates whether or not EBCDIC is the native character set.
313
#define APR_CHARSET_EBCDIC 0
315
/* Is the TCP_NODELAY socket option inherited from listening sockets?
317
#define APR_TCP_NODELAY_INHERITED 1
319
/* Is the O_NONBLOCK flag inherited from listening sockets?
321
#define APR_O_NONBLOCK_INHERITED 1
323
/* Typedefs that APR needs. */
325
typedef unsigned char apr_byte_t;
327
typedef short apr_int16_t;
328
typedef unsigned short apr_uint16_t;
330
typedef int apr_int32_t;
331
typedef unsigned int apr_uint32_t;
333
typedef __int64 apr_int64_t;
334
typedef unsigned __int64 apr_uint64_t;
336
typedef size_t apr_size_t;
337
#if APR_HAVE_STDDEF_H
338
typedef ptrdiff_t apr_ssize_t;
340
typedef int apr_ssize_t;
342
#if APR_HAS_LARGE_FILES
343
typedef __int64 apr_off_t;
345
typedef int apr_off_t;
347
typedef int apr_socklen_t;
349
/* Are we big endian? */
350
/* XXX: Fatal assumption on Alpha platforms */
351
#define APR_IS_BIGENDIAN 0
354
#define APR_SIZEOF_VOIDP 8
356
#define APR_SIZEOF_VOIDP 4
359
/* XXX These simply don't belong here, perhaps in apr_portable.h
360
* based on some APR_HAVE_PID/GID/UID?
368
/* Mechanisms to properly type numeric literals */
371
#define APR_INT64_C(val) (val##i64)
372
#define APR_UINT64_C(val) (val##Ui64)
374
#define APR_INT64_C(val) (val##LL)
375
#define APR_UINT64_C(val) (val##ULL)
380
/* Appears in later flavors, not the originals. */
382
#define in6_addr in_addr6
385
#ifndef WS2TCPIP_INLINE
386
#define IN6_IS_ADDR_V4MAPPED(a) \
387
( (*(const apr_uint64_t *)(const void *)(&(a)->s6_addr[0]) == 0) \
388
&& (*(const apr_uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
391
#endif /* APR_HAS_IPV6 */
393
/* Definitions that APR programs need to work properly. */
396
* Thread callbacks from APR functions must be declared with APR_THREAD_FUNC,
397
* so that they follow the platform's calling convention.
400
/** void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
402
#define APR_THREAD_FUNC __stdcall
405
#if defined(DOXYGEN) || !defined(WIN32)
408
* The public APR functions are declared with APR_DECLARE(), so they may
409
* use the most appropriate calling convention. Public APR functions with
410
* variable arguments must use APR_DECLARE_NONSTD().
412
* @remark Both the declaration and implementations must use the same macro.
415
/** APR_DECLARE(rettype) apr_func(args)
416
* @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
417
* @remark Note that when APR compiles the library itself, it passes the
418
* symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32)
419
* to export public symbols from the dynamic library build.\n
420
* The user must define the APR_DECLARE_STATIC when compiling to target
421
* the static APR library on some platforms (e.g. Win32.) The public symbols
422
* are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
423
* By default, compiling an application and including the APR public
424
* headers, without defining APR_DECLARE_STATIC, will prepare the code to be
425
* linked to the dynamic library.
427
#define APR_DECLARE(type) type
430
* The public APR functions using variable arguments are declared with
431
* APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
432
* @see APR_DECLARE @see APR_DECLARE_DATA
433
* @remark Both the declaration and implementations must use the same macro.
436
/** APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
438
#define APR_DECLARE_NONSTD(type) type
441
* The public APR variables are declared with AP_MODULE_DECLARE_DATA.
442
* This assures the appropriate indirection is invoked at compile time.
443
* @see APR_DECLARE @see APR_DECLARE_NONSTD
444
* @remark Note that the declaration and implementations use different forms,
445
* but both must include the macro.
448
/** extern APR_DECLARE_DATA type apr_variable;\n
449
* APR_DECLARE_DATA type apr_variable = value;
451
#define APR_DECLARE_DATA
453
#elif defined(APR_DECLARE_STATIC)
454
#define APR_DECLARE(type) type __stdcall
455
#define APR_DECLARE_NONSTD(type) type __cdecl
456
#define APR_DECLARE_DATA
457
#elif defined(APR_DECLARE_EXPORT)
458
#define APR_DECLARE(type) __declspec(dllexport) type __stdcall
459
#define APR_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
460
#define APR_DECLARE_DATA __declspec(dllexport)
462
#define APR_DECLARE(type) __declspec(dllimport) type __stdcall
463
#define APR_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl
464
#define APR_DECLARE_DATA __declspec(dllimport)
468
#define APR_SSIZE_T_FMT "I64d"
469
#define APR_SIZE_T_FMT "I64d"
471
#define APR_SSIZE_T_FMT "d"
472
#define APR_SIZE_T_FMT "d"
475
#if APR_HAS_LARGE_FILES
476
#define APR_OFF_T_FMT "I64d"
478
#define APR_OFF_T_FMT "d"
481
#define APR_PID_T_FMT "d"
483
#define APR_INT64_T_FMT "I64d"
484
#define APR_UINT64_T_FMT "I64u"
485
#define APR_UINT64_T_HEX_FMT "I64x"
487
/* Local machine definition for console and log output. */
488
#define APR_EOL_STR "\r\n"
490
/* No difference between PROC and GLOBAL mutex */
491
#define APR_PROC_MUTEX_IS_GLOBAL 1
493
typedef int apr_wait_t;
495
/* struct iovec is needed to emulate Unix writev */
501
/* Nasty Win32 .h ommissions we really need */
502
#define STDIN_FILENO 0
503
#define STDOUT_FILENO 1
504
#define STDERR_FILENO 2
506
#if APR_HAS_UNICODE_FS
507
/* An arbitrary size that is digestable. True max is a bit less than 32000 */
508
#define APR_PATH_MAX 8192
509
#else /* !APR_HAS_UNICODE_FS */
510
#define APR_PATH_MAX MAX_PATH
519
/* Done with badly written headers
521
#if defined(_MSC_VER) && _MSC_VER >= 1200
523
#pragma warning(disable: 4996)