Annotation of win32/apache22/srclib/apr/include/apr.h.in, revision 1.1

1.1     ! moko        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     @arpa_ineth@
        !            73: #define APR_HAVE_CONIO_H         @conioh@
        !            74: #define APR_HAVE_CRYPT_H         @crypth@
        !            75: #define APR_HAVE_CTYPE_H         @ctypeh@
        !            76: #define APR_HAVE_DIRENT_H        @direnth@
        !            77: #define APR_HAVE_ERRNO_H         @errnoh@
        !            78: #define APR_HAVE_FCNTL_H         @fcntlh@
        !            79: #define APR_HAVE_IO_H            @ioh@
        !            80: #define APR_HAVE_LIMITS_H        @limitsh@
        !            81: #define APR_HAVE_NETDB_H         @netdbh@
        !            82: #define APR_HAVE_NETINET_IN_H    @netinet_inh@
        !            83: #define APR_HAVE_NETINET_SCTP_H  @netinet_sctph@
        !            84: #define APR_HAVE_NETINET_SCTP_UIO_H @netinet_sctp_uioh@
        !            85: #define APR_HAVE_NETINET_TCP_H   @netinet_tcph@
        !            86: #define APR_HAVE_PROCESS_H       @processh@
        !            87: #define APR_HAVE_PTHREAD_H       @pthreadh@
        !            88: #define APR_HAVE_SEMAPHORE_H     @semaphoreh@
        !            89: #define APR_HAVE_SIGNAL_H        @signalh@
        !            90: #define APR_HAVE_STDARG_H        @stdargh@
        !            91: #define APR_HAVE_STDINT_H        @stdint@
        !            92: #define APR_HAVE_STDIO_H         @stdioh@
        !            93: #define APR_HAVE_STDLIB_H        @stdlibh@
        !            94: #define APR_HAVE_STRING_H        @stringh@
        !            95: #define APR_HAVE_STRINGS_H       @stringsh@
        !            96: #define APR_HAVE_SYS_IOCTL_H     @sys_ioctlh@
        !            97: #define APR_HAVE_SYS_SENDFILE_H  @sys_sendfileh@
        !            98: #define APR_HAVE_SYS_SIGNAL_H    @sys_signalh@
        !            99: #define APR_HAVE_SYS_SOCKET_H    @sys_socketh@
        !           100: #define APR_HAVE_SYS_SOCKIO_H    @sys_sockioh@
        !           101: #define APR_HAVE_SYS_SYSLIMITS_H @sys_syslimitsh@
        !           102: #define APR_HAVE_SYS_TIME_H      @sys_timeh@
        !           103: #define APR_HAVE_SYS_TYPES_H     @sys_typesh@
        !           104: #define APR_HAVE_SYS_UIO_H       @sys_uioh@
        !           105: #define APR_HAVE_SYS_UN_H        @sys_unh@
        !           106: #define APR_HAVE_SYS_WAIT_H      @sys_waith@
        !           107: #define APR_HAVE_TIME_H          @timeh@
        !           108: #define APR_HAVE_UNISTD_H        @unistdh@
        !           109: #define APR_HAVE_WINDOWS_H       @windowsh@
        !           110: #define APR_HAVE_WINSOCK2_H      @winsock2h@
        !           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
        !           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     @havemmaptmp@
        !           212: #define APR_HAVE_SHMEM_MMAP_SHM     @havemmapshm@
        !           213: #define APR_HAVE_SHMEM_MMAP_ZERO    @havemmapzero@
        !           214: #define APR_HAVE_SHMEM_SHMGET_ANON  @haveshmgetanon@
        !           215: #define APR_HAVE_SHMEM_SHMGET       @haveshmget@
        !           216: #define APR_HAVE_SHMEM_MMAP_ANON    @havemmapanon@
        !           217: #define APR_HAVE_SHMEM_BEOS         @havebeosarea@
        !           218: 
        !           219: #define APR_USE_SHMEM_MMAP_TMP     @usemmaptmp@
        !           220: #define APR_USE_SHMEM_MMAP_SHM     @usemmapshm@
        !           221: #define APR_USE_SHMEM_MMAP_ZERO    @usemmapzero@
        !           222: #define APR_USE_SHMEM_SHMGET_ANON  @useshmgetanon@
        !           223: #define APR_USE_SHMEM_SHMGET       @useshmget@
        !           224: #define APR_USE_SHMEM_MMAP_ANON    @usemmapanon@
        !           225: #define APR_USE_SHMEM_BEOS         @usebeosarea@
        !           226: 
        !           227: #define APR_USE_FLOCK_SERIALIZE           @flockser@ 
        !           228: #define APR_USE_SYSVSEM_SERIALIZE         @sysvser@
        !           229: #define APR_USE_POSIXSEM_SERIALIZE        @posixser@
        !           230: #define APR_USE_FCNTL_SERIALIZE           @fcntlser@
        !           231: #define APR_USE_PROC_PTHREAD_SERIALIZE    @procpthreadser@ 
        !           232: #define APR_USE_PTHREAD_SERIALIZE         @pthreadser@ 
        !           233: 
        !           234: #define APR_HAS_FLOCK_SERIALIZE           @hasflockser@
        !           235: #define APR_HAS_SYSVSEM_SERIALIZE         @hassysvser@
        !           236: #define APR_HAS_POSIXSEM_SERIALIZE        @hasposixser@
        !           237: #define APR_HAS_FCNTL_SERIALIZE           @hasfcntlser@
        !           238: #define APR_HAS_PROC_PTHREAD_SERIALIZE    @hasprocpthreadser@
        !           239: 
        !           240: #define APR_PROCESS_LOCK_IS_GLOBAL        @proclockglobal@
        !           241: 
        !           242: #define APR_HAVE_CORKABLE_TCP   @have_corkable_tcp@ 
        !           243: #define APR_HAVE_GETRLIMIT      @have_getrlimit@
        !           244: #define APR_HAVE_IN_ADDR        @have_in_addr@
        !           245: #define APR_HAVE_INET_ADDR      @have_inet_addr@
        !           246: #define APR_HAVE_INET_NETWORK   @have_inet_network@
        !           247: #define APR_HAVE_IPV6           @have_ipv6@
        !           248: #define APR_HAVE_MEMMOVE        @have_memmove@
        !           249: #define APR_HAVE_SETRLIMIT      @have_setrlimit@
        !           250: #define APR_HAVE_SIGACTION      @have_sigaction@
        !           251: #define APR_HAVE_SIGSUSPEND     @have_sigsuspend@
        !           252: #define APR_HAVE_SIGWAIT        @have_sigwait@
        !           253: #define APR_HAVE_SA_STORAGE     @have_sa_storage@
        !           254: #define APR_HAVE_STRCASECMP     @have_strcasecmp@
        !           255: #define APR_HAVE_STRDUP         @have_strdup@
        !           256: #define APR_HAVE_STRICMP        @have_stricmp@
        !           257: #define APR_HAVE_STRNCASECMP    @have_strncasecmp@
        !           258: #define APR_HAVE_STRNICMP       @have_strnicmp@
        !           259: #define APR_HAVE_STRSTR         @have_strstr@
        !           260: #define APR_HAVE_MEMCHR         @have_memchr@
        !           261: #define APR_HAVE_STRUCT_RLIMIT  @struct_rlimit@
        !           262: #define APR_HAVE_UNION_SEMUN    @have_union_semun@
        !           263: #define APR_HAVE_SCTP           @have_sctp@
        !           264: #define APR_HAVE_IOVEC          @have_iovec@
        !           265: 
        !           266: /*  APR Feature Macros */
        !           267: #define APR_HAS_SHARED_MEMORY     @sharedmem@
        !           268: #define APR_HAS_THREADS           @threads@
        !           269: #define APR_HAS_SENDFILE          @sendfile@
        !           270: #define APR_HAS_MMAP              @mmap@
        !           271: #define APR_HAS_FORK              @fork@
        !           272: #define APR_HAS_RANDOM            @rand@
        !           273: #define APR_HAS_OTHER_CHILD       @oc@
        !           274: #define APR_HAS_DSO               @aprdso@
        !           275: #define APR_HAS_SO_ACCEPTFILTER   @acceptfilter@
        !           276: #define APR_HAS_UNICODE_FS        @have_unicode_fs@
        !           277: #define APR_HAS_PROC_INVOKED      @have_proc_invoked@
        !           278: #define APR_HAS_USER              @apr_has_user@
        !           279: #define APR_HAS_LARGE_FILES       @aprlfs@
        !           280: #define APR_HAS_XTHREAD_FILES     @apr_has_xthread_files@
        !           281: #define APR_HAS_OS_UUID           @osuuid@
        !           282: 
        !           283: #define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD @apr_procattr_user_set_requires_password@
        !           284: 
        !           285: /* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible
        !           286:  * to poll on files/pipes.
        !           287:  */
        !           288: #define APR_FILES_AS_SOCKETS      @file_as_socket@
        !           289: 
        !           290: /* This macro indicates whether or not EBCDIC is the native character set.
        !           291:  */
        !           292: #define APR_CHARSET_EBCDIC        @apr_charset_ebcdic@
        !           293: 
        !           294: /* If we have a TCP implementation that can be "corked", what flag
        !           295:  * do we use?
        !           296:  */
        !           297: #define APR_TCP_NOPUSH_FLAG       @apr_tcp_nopush_flag@
        !           298: 
        !           299: /* Is the TCP_NODELAY socket option inherited from listening sockets?
        !           300: */
        !           301: #define APR_TCP_NODELAY_INHERITED @tcp_nodelay_inherited@
        !           302: 
        !           303: /* Is the O_NONBLOCK flag inherited from listening sockets?
        !           304: */
        !           305: #define APR_O_NONBLOCK_INHERITED @o_nonblock_inherited@
        !           306: 
        !           307: /* Typedefs that APR needs. */
        !           308: 
        !           309: typedef  unsigned char           apr_byte_t;
        !           310: 
        !           311: typedef  @short_value@           apr_int16_t;
        !           312: typedef  unsigned @short_value@  apr_uint16_t;
        !           313: 
        !           314: typedef  @int_value@             apr_int32_t;
        !           315: typedef  unsigned @int_value@    apr_uint32_t;
        !           316: 
        !           317: #define APR_SIZEOF_VOIDP @voidp_size@
        !           318: 
        !           319: /*
        !           320:  * Darwin 10's default compiler (gcc42) builds for both 64 and
        !           321:  * 32 bit architectures unless specifically told not to.
        !           322:  * In those cases, we need to override types depending on how
        !           323:  * we're being built at compile time.
        !           324:  * NOTE: This is an ugly work-around for Darwin's
        !           325:  * concept of universal binaries, a single package
        !           326:  * (executable, lib, etc...) which contains both 32
        !           327:  * and 64 bit versions. The issue is that if APR is
        !           328:  * built universally, if something else is compiled
        !           329:  * against it, some bit sizes will depend on whether
        !           330:  * it is 32 or 64 bit. This is determined by the __LP64__
        !           331:  * flag. Since we need to support both, we have to
        !           332:  * handle OS X unqiuely.
        !           333:  */
        !           334: #ifdef DARWIN_10
        !           335: #undef APR_SIZEOF_VOIDP
        !           336: #undef INT64_C
        !           337: #undef UINT64_C
        !           338: #ifdef __LP64__
        !           339:  typedef  long            apr_int64_t;
        !           340:  typedef  unsigned long   apr_uint64_t;
        !           341:  #define APR_SIZEOF_VOIDP     8
        !           342:  #define INT64_C(v)   (v ## L)
        !           343:  #define UINT64_C(v)  (v ## UL)
        !           344: #else
        !           345:  typedef  long long            apr_int64_t;
        !           346:  typedef  unsigned long long   apr_uint64_t;
        !           347:  #define APR_SIZEOF_VOIDP     4
        !           348:  #define INT64_C(v)   (v ## LL)
        !           349:  #define UINT64_C(v)  (v ## ULL)
        !           350: #endif
        !           351: #else
        !           352:  typedef  @long_value@            apr_int64_t;
        !           353:  typedef  unsigned @long_value@   apr_uint64_t;
        !           354: #endif
        !           355: 
        !           356: typedef  @size_t_value@          apr_size_t;
        !           357: typedef  @ssize_t_value@         apr_ssize_t;
        !           358: typedef  @off_t_value@           apr_off_t;
        !           359: typedef  @socklen_t_value@       apr_socklen_t;
        !           360: typedef  @ino_t_value@           apr_ino_t;
        !           361: 
        !           362: #if APR_SIZEOF_VOIDP == 8
        !           363: typedef  apr_uint64_t            apr_uintptr_t;
        !           364: #else
        !           365: typedef  apr_uint32_t            apr_uintptr_t;
        !           366: #endif
        !           367: 
        !           368: /* Are we big endian? */
        !           369: #define APR_IS_BIGENDIAN       @bigendian@
        !           370: 
        !           371: /* Mechanisms to properly type numeric literals */
        !           372: @int64_literal@
        !           373: @uint64_literal@
        !           374: 
        !           375: #ifdef INT16_MIN
        !           376: #define APR_INT16_MIN   INT16_MIN
        !           377: #else
        !           378: #define APR_INT16_MIN   (-0x7fff - 1)
        !           379: #endif
        !           380: 
        !           381: #ifdef INT16_MAX
        !           382: #define APR_INT16_MAX  INT16_MAX
        !           383: #else
        !           384: #define APR_INT16_MAX   (0x7fff)
        !           385: #endif
        !           386: 
        !           387: #ifdef UINT16_MAX
        !           388: #define APR_UINT16_MAX  UINT16_MAX
        !           389: #else
        !           390: #define APR_UINT16_MAX  (0xffff)
        !           391: #endif
        !           392: 
        !           393: #ifdef INT32_MIN
        !           394: #define APR_INT32_MIN   INT32_MIN
        !           395: #else
        !           396: #define APR_INT32_MIN   (-0x7fffffff - 1)
        !           397: #endif
        !           398: 
        !           399: #ifdef INT32_MAX
        !           400: #define APR_INT32_MAX  INT32_MAX
        !           401: #else
        !           402: #define APR_INT32_MAX  0x7fffffff
        !           403: #endif
        !           404: 
        !           405: #ifdef UINT32_MAX
        !           406: #define APR_UINT32_MAX  UINT32_MAX
        !           407: #else
        !           408: #define APR_UINT32_MAX  (0xffffffffU)
        !           409: #endif
        !           410: 
        !           411: #ifdef INT64_MIN
        !           412: #define APR_INT64_MIN   INT64_MIN
        !           413: #else
        !           414: #define APR_INT64_MIN   (APR_INT64_C(-0x7fffffffffffffff) - 1)
        !           415: #endif
        !           416: 
        !           417: #ifdef INT64_MAX
        !           418: #define APR_INT64_MAX   INT64_MAX
        !           419: #else
        !           420: #define APR_INT64_MAX   APR_INT64_C(0x7fffffffffffffff)
        !           421: #endif
        !           422: 
        !           423: #ifdef UINT64_MAX
        !           424: #define APR_UINT64_MAX  UINT64_MAX
        !           425: #else
        !           426: #define APR_UINT64_MAX  APR_UINT64_C(0xffffffffffffffff)
        !           427: #endif
        !           428: 
        !           429: #define APR_SIZE_MAX    (~((apr_size_t)0))
        !           430: 
        !           431: 
        !           432: /* Definitions that APR programs need to work properly. */
        !           433: 
        !           434: /**
        !           435:  * APR public API wrap for C++ compilers.
        !           436:  */
        !           437: #ifdef __cplusplus
        !           438: #define APR_BEGIN_DECLS     extern "C" {
        !           439: #define APR_END_DECLS       }
        !           440: #else
        !           441: #define APR_BEGIN_DECLS
        !           442: #define APR_END_DECLS
        !           443: #endif
        !           444: 
        !           445: /** 
        !           446:  * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, 
        !           447:  * so that they follow the platform's calling convention.
        !           448:  * <PRE>
        !           449:  *
        !           450:  * void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
        !           451:  *
        !           452:  * </PRE>
        !           453:  */
        !           454: #define APR_THREAD_FUNC       @apr_thread_func@
        !           455: 
        !           456: /**
        !           457:  * The public APR functions are declared with APR_DECLARE(), so they may
        !           458:  * use the most appropriate calling convention.  Public APR functions with 
        !           459:  * variable arguments must use APR_DECLARE_NONSTD().
        !           460:  *
        !           461:  * @remark Both the declaration and implementations must use the same macro.
        !           462:  *
        !           463:  * <PRE>
        !           464:  * APR_DECLARE(rettype) apr_func(args)
        !           465:  * </PRE>
        !           466:  * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
        !           467:  * @remark Note that when APR compiles the library itself, it passes the 
        !           468:  * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) 
        !           469:  * to export public symbols from the dynamic library build.\n
        !           470:  * The user must define the APR_DECLARE_STATIC when compiling to target
        !           471:  * the static APR library on some platforms (e.g. Win32.)  The public symbols 
        !           472:  * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
        !           473:  * By default, compiling an application and including the APR public
        !           474:  * headers, without defining APR_DECLARE_STATIC, will prepare the code to be
        !           475:  * linked to the dynamic library.
        !           476:  */
        !           477: #define APR_DECLARE(type)            type 
        !           478: 
        !           479: /**
        !           480:  * The public APR functions using variable arguments are declared with 
        !           481:  * APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
        !           482:  * @see APR_DECLARE @see APR_DECLARE_DATA
        !           483:  * @remark Both the declaration and implementations must use the same macro.
        !           484:  * <PRE>
        !           485:  *
        !           486:  * APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
        !           487:  *
        !           488:  * </PRE>
        !           489:  */
        !           490: #define APR_DECLARE_NONSTD(type)     type
        !           491: 
        !           492: /**
        !           493:  * The public APR variables are declared with AP_MODULE_DECLARE_DATA.
        !           494:  * This assures the appropriate indirection is invoked at compile time.
        !           495:  * @see APR_DECLARE @see APR_DECLARE_NONSTD
        !           496:  * @remark Note that the declaration and implementations use different forms,
        !           497:  * but both must include the macro.
        !           498:  * 
        !           499:  * <PRE>
        !           500:  *
        !           501:  * extern APR_DECLARE_DATA type apr_variable;\n
        !           502:  * APR_DECLARE_DATA type apr_variable = value;
        !           503:  *
        !           504:  * </PRE>
        !           505:  */
        !           506: #define APR_DECLARE_DATA
        !           507: 
        !           508: /* Define APR_SSIZE_T_FMT.  
        !           509:  * If ssize_t is an integer we define it to be "d",
        !           510:  * if ssize_t is a long int we define it to be "ld",
        !           511:  * if ssize_t is neither we declare an error here.
        !           512:  * I looked for a better way to define this here, but couldn't find one, so
        !           513:  * to find the logic for this definition search for "ssize_t_fmt" in
        !           514:  * configure.in.
        !           515:  */
        !           516: 
        !           517: @ssize_t_fmt@
        !           518: 
        !           519: /* And APR_SIZE_T_FMT */
        !           520: @size_t_fmt@
        !           521: 
        !           522: /* And APR_OFF_T_FMT */
        !           523: @off_t_fmt@
        !           524: 
        !           525: /* And APR_PID_T_FMT */
        !           526: @pid_t_fmt@
        !           527: 
        !           528: /* And APR_INT64_T_FMT */
        !           529: @int64_t_fmt@
        !           530: 
        !           531: /* And APR_UINT64_T_FMT */
        !           532: @uint64_t_fmt@
        !           533: 
        !           534: /* And APR_UINT64_T_HEX_FMT */
        !           535: @uint64_t_hex_fmt@
        !           536: 
        !           537: /*
        !           538:  * Ensure we work with universal binaries on Darwin
        !           539:  */
        !           540: #ifdef DARWIN_10
        !           541: 
        !           542: #undef APR_HAS_LARGE_FILES
        !           543: #undef APR_SIZEOF_VOIDP
        !           544: #undef APR_INT64_T_FMT
        !           545: #undef APR_UINT64_T_FMT
        !           546: #undef APR_UINT64_T_HEX_FMT
        !           547: 
        !           548: #ifdef __LP64__
        !           549:  #define APR_HAS_LARGE_FILES  0
        !           550:  #define APR_SIZEOF_VOIDP     8
        !           551:  #define APR_INT64_T_FMT      "ld"
        !           552:  #define APR_UINT64_T_FMT     "lu"
        !           553:  #define APR_UINT64_T_HEX_FMT "lx"
        !           554: #else
        !           555:  #define APR_HAS_LARGE_FILES  1
        !           556:  #define APR_SIZEOF_VOIDP     4
        !           557:  #define APR_INT64_T_FMT      "lld"
        !           558:  #define APR_UINT64_T_FMT     "llu"
        !           559:  #define APR_UINT64_T_HEX_FMT "llx"
        !           560: #endif
        !           561: 
        !           562: #undef APR_IS_BIGENDIAN
        !           563: #ifdef __BIG_ENDIAN__
        !           564:  #define APR_IS_BIGENDIAN      1
        !           565: #else
        !           566:  #define APR_IS_BIGENDIAN      0
        !           567: #endif
        !           568: 
        !           569: #undef APR_OFF_T_FMT
        !           570: #define APR_OFF_T_FMT "lld"
        !           571: 
        !           572: #endif /* DARWIN_10 */
        !           573: 
        !           574: /* Does the proc mutex lock threads too */
        !           575: #define APR_PROC_MUTEX_IS_GLOBAL      @proc_mutex_is_global@
        !           576: 
        !           577: /* Local machine definition for console and log output. */
        !           578: #define APR_EOL_STR              "@eolstr@"
        !           579: 
        !           580: #if APR_HAVE_SYS_WAIT_H
        !           581: #ifdef WEXITSTATUS
        !           582: #define apr_wait_t       int
        !           583: #else
        !           584: #define apr_wait_t       union wait
        !           585: #define WEXITSTATUS(status)    (int)((status).w_retcode)
        !           586: #define WTERMSIG(status)       (int)((status).w_termsig)
        !           587: #endif /* !WEXITSTATUS */
        !           588: #elif defined(__MINGW32__)
        !           589: typedef int apr_wait_t;
        !           590: #endif /* HAVE_SYS_WAIT_H */
        !           591: 
        !           592: #if defined(PATH_MAX)
        !           593: #define APR_PATH_MAX       PATH_MAX
        !           594: #elif defined(_POSIX_PATH_MAX)
        !           595: #define APR_PATH_MAX       _POSIX_PATH_MAX
        !           596: #else
        !           597: #error no decision has been made on APR_PATH_MAX for your platform
        !           598: #endif
        !           599: 
        !           600: #define APR_DSOPATH "@shlibpath_var@"
        !           601: 
        !           602: /** @} */
        !           603: 
        !           604: /* Definitions that only Win32 programs need to compile properly. */
        !           605: 
        !           606: /* XXX These simply don't belong here, perhaps in apr_portable.h
        !           607:  * based on some APR_HAVE_PID/GID/UID?
        !           608:  */
        !           609: #ifdef __MINGW32__
        !           610: #ifndef __GNUC__
        !           611: typedef  int         pid_t;
        !           612: #endif
        !           613: typedef  int         uid_t;
        !           614: typedef  int         gid_t;
        !           615: #endif
        !           616: 
        !           617: #ifdef __cplusplus
        !           618: }
        !           619: #endif
        !           620: 
        !           621: #endif /* APR_H */

E-mail: