Apache Portable Runtime
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
apr.h
Go to the documentation of this file.
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
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
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.
15
*/
16
17
18
#ifndef APR_H
19
#define APR_H
20
21
/* GENERATED FILE WARNING! DO NOT EDIT apr.h
22
*
23
* You must modify apr.h.in instead.
24
*
25
* And please, make an effort to stub apr.hw and apr.hnw in the process.
26
*/
27
28
/**
29
* @file apr.h
30
* @brief APR Platform Definitions
31
* @remark This is a generated header generated from include/apr.h.in by
32
* ./configure, or copied from include/apr.hw or include/apr.hnw
33
* for Win32 or Netware by those build environments, respectively.
34
*/
35
36
/**
37
* @defgroup APR Apache Portability Runtime library
38
* @{
39
*/
40
/**
41
* @defgroup apr_platform Platform Definitions
42
* @{
43
* @warning
44
* <strong><em>The actual values of macros and typedefs on this page<br>
45
* are platform specific and should NOT be relied upon!</em></strong>
46
*/
47
48
/* So that we can use inline on some critical functions, and use
49
* GNUC attributes (such as to get -Wall warnings for printf-like
50
* functions). Only do this in gcc 2.7 or later ... it may work
51
* on earlier stuff, but why chance it.
52
*
53
* We've since discovered that the gcc shipped with NeXT systems
54
* as "cc" is completely broken. It claims to be __GNUC__ and so
55
* on, but it doesn't implement half of the things that __GNUC__
56
* means. In particular it's missing inline and the __attribute__
57
* stuff. So we hack around it. PR#1613. -djg
58
*/
59
#if !defined(__GNUC__) || __GNUC__ < 2 || \
60
(__GNUC__ == 2 && __GNUC_MINOR__ < 7) ||\
61
defined(NEXT)
62
#ifndef __attribute__
63
#define __attribute__(__x)
64
#endif
65
#define APR_INLINE
66
#define APR_HAS_INLINE 0
67
#else
68
#define APR_INLINE __inline__
69
#define APR_HAS_INLINE 1
70
#endif
71
72
#define APR_HAVE_ARPA_INET_H 1
73
#define APR_HAVE_CONIO_H 0
74
#define APR_HAVE_CRYPT_H 1
75
#define APR_HAVE_CTYPE_H 1
76
#define APR_HAVE_DIRENT_H 1
77
#define APR_HAVE_ERRNO_H 1
78
#define APR_HAVE_FCNTL_H 1
79
#define APR_HAVE_IO_H 0
80
#define APR_HAVE_LIMITS_H 1
81
#define APR_HAVE_NETDB_H 1
82
#define APR_HAVE_NETINET_IN_H 1
83
#define APR_HAVE_NETINET_SCTP_H 0
84
#define APR_HAVE_NETINET_SCTP_UIO_H 0
85
#define APR_HAVE_NETINET_TCP_H 1
86
#define APR_HAVE_PROCESS_H 0
87
#define APR_HAVE_PTHREAD_H 1
88
#define APR_HAVE_SEMAPHORE_H 1
89
#define APR_HAVE_SIGNAL_H 1
90
#define APR_HAVE_STDARG_H 1
91
#define APR_HAVE_STDINT_H 1
92
#define APR_HAVE_STDIO_H 1
93
#define APR_HAVE_STDLIB_H 1
94
#define APR_HAVE_STRING_H 1
95
#define APR_HAVE_STRINGS_H 1
96
#define APR_HAVE_SYS_IOCTL_H 1
97
#define APR_HAVE_SYS_SENDFILE_H 1
98
#define APR_HAVE_SYS_SIGNAL_H 1
99
#define APR_HAVE_SYS_SOCKET_H 1
100
#define APR_HAVE_SYS_SOCKIO_H 0
101
#define APR_HAVE_SYS_SYSLIMITS_H 0
102
#define APR_HAVE_SYS_TIME_H 1
103
#define APR_HAVE_SYS_TYPES_H 1
104
#define APR_HAVE_SYS_UIO_H 1
105
#define APR_HAVE_SYS_UN_H 1
106
#define APR_HAVE_SYS_WAIT_H 1
107
#define APR_HAVE_TIME_H 1
108
#define APR_HAVE_UNISTD_H 1
109
#define APR_HAVE_WINDOWS_H 0
110
#define APR_HAVE_WINSOCK2_H 0
111
112
/** @} */
113
/** @} */
114
115
/* We don't include our conditional headers within the doxyblocks
116
* or the extern "C" namespace
117
*/
118
119
#if APR_HAVE_WINDOWS_H && defined(WIN32)
120
/* If windows.h was already included, our preferences don't matter.
121
* If not, include a restricted set of windows headers to our tastes.
122
*/
123
#ifndef _WINDOWS_
124
125
#ifndef WIN32_LEAN_AND_MEAN
126
#define WIN32_LEAN_AND_MEAN
127
#endif
128
129
#ifndef _WIN32_WINNT
130
/* Restrict the server to a subset of Windows XP header files by default
131
*/
132
#define _WIN32_WINNT 0x0501
133
#endif
134
135
#ifndef NOUSER
136
#define NOUSER
137
#endif
138
#ifndef NOMCX
139
#define NOMCX
140
#endif
141
#ifndef NOIME
142
#define NOIME
143
#endif
144
145
#include <windows.h>
146
/*
147
* Add a _very_few_ declarations missing from the restricted set of headers
148
* (If this list becomes extensive, re-enable the required headers above!)
149
* winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
150
*/
151
#define SW_HIDE 0
152
#ifndef _WIN32_WCE
153
#include <winsock2.h>
154
#include <ws2tcpip.h>
155
#include <mswsock.h>
156
#else
157
#include <winsock.h>
158
#endif
159
160
#endif
/* ndef _WINDOWS_ */
161
#endif
/* APR_HAVE_WINDOWS_H */
162
163
#if APR_HAVE_SYS_TYPES_H
164
#include <sys/types.h>
165
#endif
166
167
#if APR_HAVE_SYS_SOCKET_H
168
#include <sys/socket.h>
169
#endif
170
171
#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS)
172
/* C99 7.18.4 requires that stdint.h only exposes INT64_C
173
* and UINT64_C for C++ implementations if this is defined: */
174
#define __STDC_CONSTANT_MACROS
175
#endif
176
177
#if APR_HAVE_STDINT_H
178
#include <stdint.h>
179
#endif
180
181
#if APR_HAVE_SYS_WAIT_H
182
#include <sys/wait.h>
183
#endif
184
185
#ifdef OS2
186
#define INCL_DOS
187
#define INCL_DOSERRORS
188
#include <os2.h>
189
#endif
190
191
/* header files for PATH_MAX, _POSIX_PATH_MAX */
192
#if APR_HAVE_LIMITS_H
193
#include <limits.h>
194
#else
195
#if APR_HAVE_SYS_SYSLIMITS_H
196
#include <sys/syslimits.h>
197
#endif
198
#endif
199
200
201
#ifdef __cplusplus
202
extern
"C"
{
203
#endif
204
205
/**
206
* @addtogroup apr_platform
207
* @ingroup APR
208
* @{
209
*/
210
211
#define APR_HAVE_SHMEM_MMAP_TMP 1
212
#define APR_HAVE_SHMEM_MMAP_SHM 1
213
#define APR_HAVE_SHMEM_MMAP_ZERO 1
214
#define APR_HAVE_SHMEM_SHMGET_ANON 1
215
#define APR_HAVE_SHMEM_SHMGET 1
216
#define APR_HAVE_SHMEM_MMAP_ANON 1
217
#define APR_HAVE_SHMEM_BEOS 0
218
219
#define APR_USE_SHMEM_MMAP_TMP 0
220
#define APR_USE_SHMEM_MMAP_SHM 0
221
#define APR_USE_SHMEM_MMAP_ZERO 0
222
#define APR_USE_SHMEM_SHMGET_ANON 0
223
#define APR_USE_SHMEM_SHMGET 1
224
#define APR_USE_SHMEM_MMAP_ANON 1
225
#define APR_USE_SHMEM_BEOS 0
226
227
#define APR_USE_FLOCK_SERIALIZE 0
228
#define APR_USE_SYSVSEM_SERIALIZE 1
229
#define APR_USE_POSIXSEM_SERIALIZE 0
230
#define APR_USE_FCNTL_SERIALIZE 0
231
#define APR_USE_PROC_PTHREAD_SERIALIZE 0
232
#define APR_USE_PTHREAD_SERIALIZE 1
233
234
#define APR_HAS_FLOCK_SERIALIZE 1
235
#define APR_HAS_SYSVSEM_SERIALIZE 1
236
#define APR_HAS_POSIXSEM_SERIALIZE 1
237
#define APR_HAS_FCNTL_SERIALIZE 1
238
#define APR_HAS_PROC_PTHREAD_SERIALIZE 1
239
240
#define APR_PROCESS_LOCK_IS_GLOBAL 0
241
242
#define APR_HAVE_CORKABLE_TCP 1
243
#define APR_HAVE_GETRLIMIT 1
244
#define APR_HAVE_IN_ADDR 1
245
#define APR_HAVE_INET_ADDR 1
246
#define APR_HAVE_INET_NETWORK 1
247
#define APR_HAVE_IPV6 1
248
#define APR_HAVE_SOCKADDR_UN 1
249
#define APR_HAVE_MEMMOVE 1
250
#define APR_HAVE_SETRLIMIT 1
251
#define APR_HAVE_SIGACTION 1
252
#define APR_HAVE_SIGSUSPEND 1
253
#define APR_HAVE_SIGWAIT 1
254
#define APR_HAVE_SA_STORAGE 1
255
#define APR_HAVE_STRCASECMP 1
256
#define APR_HAVE_STRDUP 1
257
#define APR_HAVE_STRICMP 0
258
#define APR_HAVE_STRNCASECMP 1
259
#define APR_HAVE_STRNICMP 0
260
#define APR_HAVE_STRSTR 1
261
#define APR_HAVE_MEMCHR 1
262
#define APR_HAVE_STRUCT_RLIMIT 1
263
#define APR_HAVE_UNION_SEMUN 0
264
#define APR_HAVE_SCTP 0
265
#define APR_HAVE_IOVEC 1
266
267
/* APR Feature Macros */
268
#define APR_HAS_SHARED_MEMORY 1
269
#define APR_HAS_THREADS 1
270
#define APR_HAS_SENDFILE 1
271
#define APR_HAS_MMAP 1
272
#define APR_HAS_FORK 1
273
#define APR_HAS_RANDOM 1
274
#define APR_HAS_OTHER_CHILD 1
275
#define APR_HAS_DSO 1
276
#define APR_HAS_SO_ACCEPTFILTER 0
277
#define APR_HAS_UNICODE_FS 0
278
#define APR_HAS_PROC_INVOKED 0
279
#define APR_HAS_USER 1
280
#define APR_HAS_LARGE_FILES 0
281
#define APR_HAS_XTHREAD_FILES 0
282
#define APR_HAS_OS_UUID 1
283
284
#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0
285
286
/* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible
287
* to poll on files/pipes.
288
*/
289
#define APR_FILES_AS_SOCKETS 1
290
291
/* This macro indicates whether or not EBCDIC is the native character set.
292
*/
293
#define APR_CHARSET_EBCDIC 0
294
295
/* If we have a TCP implementation that can be "corked", what flag
296
* do we use?
297
*/
298
#define APR_TCP_NOPUSH_FLAG TCP_CORK
299
300
/* Is the TCP_NODELAY socket option inherited from listening sockets?
301
*/
302
#define APR_TCP_NODELAY_INHERITED 1
303
304
/* Is the O_NONBLOCK flag inherited from listening sockets?
305
*/
306
#define APR_O_NONBLOCK_INHERITED 0
307
308
/* Typedefs that APR needs. */
309
310
typedef
unsigned
char
apr_byte_t;
311
312
typedef
short
apr_int16_t;
313
typedef
unsigned
short
apr_uint16_t;
314
315
typedef
int
apr_int32_t;
316
typedef
unsigned
int
apr_uint32_t;
317
318
#define APR_SIZEOF_VOIDP 8
319
320
/*
321
* Darwin 10's default compiler (gcc42) builds for both 64 and
322
* 32 bit architectures unless specifically told not to.
323
* In those cases, we need to override types depending on how
324
* we're being built at compile time.
325
* NOTE: This is an ugly work-around for Darwin's
326
* concept of universal binaries, a single package
327
* (executable, lib, etc...) which contains both 32
328
* and 64 bit versions. The issue is that if APR is
329
* built universally, if something else is compiled
330
* against it, some bit sizes will depend on whether
331
* it is 32 or 64 bit. This is determined by the __LP64__
332
* flag. Since we need to support both, we have to
333
* handle OS X unqiuely.
334
*/
335
#ifdef DARWIN_10
336
#undef APR_SIZEOF_VOIDP
337
#undef INT64_C
338
#undef UINT64_C
339
#ifdef __LP64__
340
typedef
long
apr_int64_t;
341
typedef
unsigned
long
apr_uint64_t;
342
#define APR_SIZEOF_VOIDP 8
343
#define INT64_C(v) (v ## L)
344
#define UINT64_C(v) (v ## UL)
345
#else
346
typedef
long
long
apr_int64_t;
347
typedef
unsigned
long
long
apr_uint64_t;
348
#define APR_SIZEOF_VOIDP 4
349
#define INT64_C(v) (v ## LL)
350
#define UINT64_C(v) (v ## ULL)
351
#endif
352
#else
353
typedef
long
apr_int64_t;
354
typedef
unsigned
long
apr_uint64_t;
355
#endif
356
357
typedef
size_t
apr_size_t;
358
typedef
ssize_t apr_ssize_t;
359
typedef
off_t apr_off_t;
360
typedef
socklen_t apr_socklen_t;
361
typedef
ino_t apr_ino_t;
362
363
#if APR_SIZEOF_VOIDP == 8
364
typedef
apr_uint64_t apr_uintptr_t;
365
#else
366
typedef
apr_uint32_t apr_uintptr_t;
367
#endif
368
369
/* Are we big endian? */
370
#define APR_IS_BIGENDIAN 0
371
372
/* Mechanisms to properly type numeric literals */
373
#define APR_INT64_C(val) INT64_C(val)
374
#define APR_UINT64_C(val) UINT64_C(val)
375
376
#ifdef INT16_MIN
377
#define APR_INT16_MIN INT16_MIN
378
#else
379
#define APR_INT16_MIN (-0x7fff - 1)
380
#endif
381
382
#ifdef INT16_MAX
383
#define APR_INT16_MAX INT16_MAX
384
#else
385
#define APR_INT16_MAX (0x7fff)
386
#endif
387
388
#ifdef UINT16_MAX
389
#define APR_UINT16_MAX UINT16_MAX
390
#else
391
#define APR_UINT16_MAX (0xffff)
392
#endif
393
394
#ifdef INT32_MIN
395
#define APR_INT32_MIN INT32_MIN
396
#else
397
#define APR_INT32_MIN (-0x7fffffff - 1)
398
#endif
399
400
#ifdef INT32_MAX
401
#define APR_INT32_MAX INT32_MAX
402
#else
403
#define APR_INT32_MAX 0x7fffffff
404
#endif
405
406
#ifdef UINT32_MAX
407
#define APR_UINT32_MAX UINT32_MAX
408
#else
409
#define APR_UINT32_MAX (0xffffffffU)
410
#endif
411
412
#ifdef INT64_MIN
413
#define APR_INT64_MIN INT64_MIN
414
#else
415
#define APR_INT64_MIN (APR_INT64_C(-0x7fffffffffffffff) - 1)
416
#endif
417
418
#ifdef INT64_MAX
419
#define APR_INT64_MAX INT64_MAX
420
#else
421
#define APR_INT64_MAX APR_INT64_C(0x7fffffffffffffff)
422
#endif
423
424
#ifdef UINT64_MAX
425
#define APR_UINT64_MAX UINT64_MAX
426
#else
427
#define APR_UINT64_MAX APR_UINT64_C(0xffffffffffffffff)
428
#endif
429
430
#define APR_SIZE_MAX (~((apr_size_t)0))
431
432
433
/* Definitions that APR programs need to work properly. */
434
435
/**
436
* APR public API wrap for C++ compilers.
437
*/
438
#ifdef __cplusplus
439
#define APR_BEGIN_DECLS extern "C" {
440
#define APR_END_DECLS }
441
#else
442
#define APR_BEGIN_DECLS
443
#define APR_END_DECLS
444
#endif
445
446
/**
447
* Thread callbacks from APR functions must be declared with APR_THREAD_FUNC,
448
* so that they follow the platform's calling convention.
449
* <PRE>
450
*
451
* void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
452
*
453
* </PRE>
454
*/
455
#define APR_THREAD_FUNC
456
457
#if defined(DOXYGEN) || !defined(WIN32)
458
459
/**
460
* The public APR functions are declared with APR_DECLARE(), so they may
461
* use the most appropriate calling convention. Public APR functions with
462
* variable arguments must use APR_DECLARE_NONSTD().
463
*
464
* @remark Both the declaration and implementations must use the same macro.
465
*
466
* <PRE>
467
* APR_DECLARE(rettype) apr_func(args)
468
* </PRE>
469
* @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
470
* @remark Note that when APR compiles the library itself, it passes the
471
* symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32)
472
* to export public symbols from the dynamic library build.\n
473
* The user must define the APR_DECLARE_STATIC when compiling to target
474
* the static APR library on some platforms (e.g. Win32.) The public symbols
475
* are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
476
* By default, compiling an application and including the APR public
477
* headers, without defining APR_DECLARE_STATIC, will prepare the code to be
478
* linked to the dynamic library.
479
*/
480
#define APR_DECLARE(type) type
481
482
/**
483
* The public APR functions using variable arguments are declared with
484
* APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
485
* @see APR_DECLARE @see APR_DECLARE_DATA
486
* @remark Both the declaration and implementations must use the same macro.
487
* <PRE>
488
*
489
* APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
490
*
491
* </PRE>
492
*/
493
#define APR_DECLARE_NONSTD(type) type
494
495
/**
496
* The public APR variables are declared with AP_MODULE_DECLARE_DATA.
497
* This assures the appropriate indirection is invoked at compile time.
498
* @see APR_DECLARE @see APR_DECLARE_NONSTD
499
* @remark Note that the declaration and implementations use different forms,
500
* but both must include the macro.
501
*
502
* <PRE>
503
*
504
* extern APR_DECLARE_DATA type apr_variable;\n
505
* APR_DECLARE_DATA type apr_variable = value;
506
*
507
* </PRE>
508
*/
509
#define APR_DECLARE_DATA
510
511
#elif defined(APR_DECLARE_STATIC)
512
#define APR_DECLARE(type) type __stdcall
513
#define APR_DECLARE_NONSTD(type) type __cdecl
514
#define APR_DECLARE_DATA
515
#elif defined(APR_DECLARE_EXPORT)
516
#define APR_DECLARE(type) __declspec(dllexport) type __stdcall
517
#define APR_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
518
#define APR_DECLARE_DATA __declspec(dllexport)
519
#else
520
#define APR_DECLARE(type) __declspec(dllimport) type __stdcall
521
#define APR_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl
522
#define APR_DECLARE_DATA __declspec(dllimport)
523
#endif
524
525
/* Define APR_SSIZE_T_FMT.
526
* If ssize_t is an integer we define it to be "d",
527
* if ssize_t is a long int we define it to be "ld",
528
* if ssize_t is neither we declare an error here.
529
* I looked for a better way to define this here, but couldn't find one, so
530
* to find the logic for this definition search for "ssize_t_fmt" in
531
* configure.in.
532
*/
533
534
#define APR_SSIZE_T_FMT "ld"
535
536
/* And APR_SIZE_T_FMT */
537
#define APR_SIZE_T_FMT "lu"
538
539
/* And APR_OFF_T_FMT */
540
#define APR_OFF_T_FMT "ld"
541
542
/* And APR_PID_T_FMT */
543
#define APR_PID_T_FMT "d"
544
545
/* And APR_INT64_T_FMT */
546
#define APR_INT64_T_FMT "ld"
547
548
/* And APR_UINT64_T_FMT */
549
#define APR_UINT64_T_FMT "lu"
550
551
/* And APR_UINT64_T_HEX_FMT */
552
#define APR_UINT64_T_HEX_FMT "lx"
553
554
/*
555
* Ensure we work with universal binaries on Darwin
556
*/
557
#ifdef DARWIN_10
558
559
#undef APR_HAS_LARGE_FILES
560
#undef APR_SIZEOF_VOIDP
561
#undef APR_INT64_T_FMT
562
#undef APR_UINT64_T_FMT
563
#undef APR_UINT64_T_HEX_FMT
564
565
#ifdef __LP64__
566
#define APR_HAS_LARGE_FILES 0
567
#define APR_SIZEOF_VOIDP 8
568
#define APR_INT64_T_FMT "ld"
569
#define APR_UINT64_T_FMT "lu"
570
#define APR_UINT64_T_HEX_FMT "lx"
571
#else
572
#define APR_HAS_LARGE_FILES 1
573
#define APR_SIZEOF_VOIDP 4
574
#define APR_INT64_T_FMT "lld"
575
#define APR_UINT64_T_FMT "llu"
576
#define APR_UINT64_T_HEX_FMT "llx"
577
#endif
578
579
#undef APR_IS_BIGENDIAN
580
#ifdef __BIG_ENDIAN__
581
#define APR_IS_BIGENDIAN 1
582
#else
583
#define APR_IS_BIGENDIAN 0
584
#endif
585
586
#undef APR_OFF_T_FMT
587
#define APR_OFF_T_FMT "lld"
588
589
#endif
/* DARWIN_10 */
590
591
/* Does the proc mutex lock threads too */
592
#define APR_PROC_MUTEX_IS_GLOBAL 0
593
594
/* Local machine definition for console and log output. */
595
#define APR_EOL_STR "\n"
596
597
#if APR_HAVE_SYS_WAIT_H
598
#ifdef WEXITSTATUS
599
#define apr_wait_t int
600
#else
601
#define apr_wait_t union wait
602
#define WEXITSTATUS(status) (int)((status).w_retcode)
603
#define WTERMSIG(status) (int)((status).w_termsig)
604
#endif
/* !WEXITSTATUS */
605
#elif defined(__MINGW32__)
606
typedef
int
apr_wait_t;
607
#endif
/* HAVE_SYS_WAIT_H */
608
609
#if defined(PATH_MAX)
610
#define APR_PATH_MAX PATH_MAX
611
#elif defined(_POSIX_PATH_MAX)
612
#define APR_PATH_MAX _POSIX_PATH_MAX
613
#else
614
#error no decision has been made on APR_PATH_MAX for your platform
615
#endif
616
617
#define APR_DSOPATH "LD_LIBRARY_PATH"
618
619
/** @} */
620
621
/* Definitions that only Win32 programs need to compile properly. */
622
623
/* XXX These simply don't belong here, perhaps in apr_portable.h
624
* based on some APR_HAVE_PID/GID/UID?
625
*/
626
#ifdef __MINGW32__
627
#ifndef __GNUC__
628
typedef
int
pid_t;
629
#endif
630
typedef
int
uid_t;
631
typedef
int
gid_t;
632
#endif
633
634
#ifdef __cplusplus
635
}
636
#endif
637
638
#endif
/* APR_H */
Generated by
1.8.5