<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Apache Portable Runtime: apr.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.9.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <div class="nav"> <a class="el" href="dir_000000.html">home</a> / <a class="el" href="dir_000001.html">oden</a> / <a class="el" href="dir_000002.html">RPM</a> / <a class="el" href="dir_000003.html">BUILD</a> / <a class="el" href="dir_000004.html">apr-1.1.1</a> / <a class="el" href="dir_000005.html">include</a></div> <h1>apr.h</h1><a href="apr_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* Copyright 2000-2004 The Apache Software Foundation</span> 00002 <span class="comment"> *</span> 00003 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span> 00004 <span class="comment"> * you may not use this file except in compliance with the License.</span> 00005 <span class="comment"> * You may obtain a copy of the License at</span> 00006 <span class="comment"> *</span> 00007 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span> 00008 <span class="comment"> *</span> 00009 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span> 00010 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span> 00011 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span> 00012 <span class="comment"> * See the License for the specific language governing permissions and</span> 00013 <span class="comment"> * limitations under the License.</span> 00014 <span class="comment"> */</span> 00015 00016 00017 <span class="preprocessor">#ifndef APR_H</span> 00018 <span class="preprocessor"></span><span class="preprocessor">#define APR_H</span> 00019 <span class="preprocessor"></span> 00020 <span class="comment">/* GENERATED FILE WARNING! DO NOT EDIT apr.h</span> 00021 <span class="comment"> *</span> 00022 <span class="comment"> * You must modify apr.h.in instead.</span> 00023 <span class="comment"> *</span> 00024 <span class="comment"> * And please, make an effort to stub apr.hw and apr.hnw in the process.</span> 00025 <span class="comment"> */</span> 00026 <span class="comment"></span> 00027 <span class="comment">/**</span> 00028 <span class="comment"> * @file apr.h</span> 00029 <span class="comment"> * @brief APR Platform Definitions</span> 00030 <span class="comment"> * @remark This is a generated header generated from include/apr.h.in by</span> 00031 <span class="comment"> * ./configure, or copied from include/apr.hw or include/apr.hnw </span> 00032 <span class="comment"> * for Win32 or Netware by those build environments, respectively.</span> 00033 <span class="comment"> */</span> 00034 <span class="comment"></span> 00035 <span class="comment">/**</span> 00036 <span class="comment"> * @defgroup APR Apache Portability Runtime library</span> 00037 <span class="comment"> * @{</span> 00038 <span class="comment"> */</span><span class="comment"></span> 00039 <span class="comment">/**</span> 00040 <span class="comment"> * @defgroup apr_platform Platform Definitions</span> 00041 <span class="comment"> * @{</span> 00042 <span class="comment"> */</span> 00043 00044 <span class="comment">/* So that we can use inline on some critical functions, and use</span> 00045 <span class="comment"> * GNUC attributes (such as to get -Wall warnings for printf-like</span> 00046 <span class="comment"> * functions). Only do this in gcc 2.7 or later ... it may work</span> 00047 <span class="comment"> * on earlier stuff, but why chance it.</span> 00048 <span class="comment"> *</span> 00049 <span class="comment"> * We've since discovered that the gcc shipped with NeXT systems</span> 00050 <span class="comment"> * as "cc" is completely broken. It claims to be __GNUC__ and so</span> 00051 <span class="comment"> * on, but it doesn't implement half of the things that __GNUC__</span> 00052 <span class="comment"> * means. In particular it's missing inline and the __attribute__</span> 00053 <span class="comment"> * stuff. So we hack around it. PR#1613. -djg</span> 00054 <span class="comment"> */</span> 00055 <span class="preprocessor">#if !defined(__GNUC__) || __GNUC__ < 2 || \</span> 00056 <span class="preprocessor"> (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ||\</span> 00057 <span class="preprocessor"> defined(NEXT)</span> 00058 <span class="preprocessor"></span><span class="preprocessor">#ifndef __attribute__</span> 00059 <span class="preprocessor"></span><span class="preprocessor">#define __attribute__(__x)</span> 00060 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00061 <span class="preprocessor"></span><span class="preprocessor">#define APR_INLINE</span> 00062 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_INLINE 0</span> 00063 <span class="preprocessor"></span><span class="preprocessor">#else</span> 00064 <span class="preprocessor"></span><span class="preprocessor">#define APR_INLINE __inline__</span> 00065 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_INLINE 1</span> 00066 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00067 <span class="preprocessor"></span> 00068 <span class="preprocessor">#define APR_HAVE_ARPA_INET_H 1</span> 00069 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_CONIO_H 0</span> 00070 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_CRYPT_H 1</span> 00071 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_CTYPE_H 1</span> 00072 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_DIRENT_H 1</span> 00073 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_ERRNO_H 1</span> 00074 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_FCNTL_H 1</span> 00075 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_IO_H 0</span> 00076 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_LIMITS_H 1</span> 00077 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_NETDB_H 1</span> 00078 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_NETINET_IN_H 1</span> 00079 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_NETINET_SCTP_H 0</span> 00080 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_NETINET_SCTP_UIO_H 0</span> 00081 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_NETINET_TCP_H 1</span> 00082 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_PTHREAD_H 1</span> 00083 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SEMAPHORE_H 1</span> 00084 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SIGNAL_H 1</span> 00085 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STDARG_H 1</span> 00086 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STDINT_H 1</span> 00087 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STDIO_H 1</span> 00088 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STDLIB_H 1</span> 00089 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRING_H 1</span> 00090 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRINGS_H 1</span> 00091 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_IOCTL_H 1</span> 00092 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_SENDFILE_H 1</span> 00093 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_SIGNAL_H 1</span> 00094 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_SOCKET_H 1</span> 00095 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_SOCKIO_H 0</span> 00096 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_SYSLIMITS_H 0</span> 00097 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_TIME_H 1</span> 00098 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_TYPES_H 1</span> 00099 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_UIO_H 1</span> 00100 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_UN_H 1</span> 00101 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SYS_WAIT_H 1</span> 00102 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_TIME_H 1</span> 00103 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_UNISTD_H 1</span> 00104 <span class="preprocessor"></span><span class="comment"></span> 00105 <span class="comment">/** @} */</span> 00106 00107 <span class="comment">/* We don't include our conditional headers within the doxyblocks </span> 00108 <span class="comment"> * or the extern "C" namespace </span> 00109 <span class="comment"> */</span> 00110 00111 <span class="preprocessor">#if APR_HAVE_SYS_TYPES_H</span> 00112 <span class="preprocessor"></span><span class="preprocessor">#include <sys/types.h></span> 00113 <span class="preprocessor">#endif</span> 00114 <span class="preprocessor"></span> 00115 <span class="preprocessor">#if APR_HAVE_SYS_SOCKET_H</span> 00116 <span class="preprocessor"></span><span class="preprocessor">#include <sys/socket.h></span> 00117 <span class="preprocessor">#endif</span> 00118 <span class="preprocessor"></span> 00119 <span class="preprocessor">#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS)</span> 00120 <span class="preprocessor"></span><span class="comment">/* C99 7.18.4 requires that stdint.h only exposes INT64_C </span> 00121 <span class="comment"> * and UINT64_C for C++ implementations if this is defined: */</span> 00122 <span class="preprocessor">#define __STDC_CONSTANT_MACROS</span> 00123 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00124 <span class="preprocessor"></span> 00125 <span class="preprocessor">#if APR_HAVE_STDINT_H</span> 00126 <span class="preprocessor"></span><span class="preprocessor">#include <stdint.h></span> 00127 <span class="preprocessor">#endif</span> 00128 <span class="preprocessor"></span> 00129 <span class="preprocessor">#if APR_HAVE_SYS_WAIT_H</span> 00130 <span class="preprocessor"></span><span class="preprocessor">#include <sys/wait.h></span> 00131 <span class="preprocessor">#endif</span> 00132 <span class="preprocessor"></span> 00133 <span class="preprocessor">#ifdef OS2</span> 00134 <span class="preprocessor"></span><span class="preprocessor">#define INCL_DOS</span> 00135 <span class="preprocessor"></span><span class="preprocessor">#define INCL_DOSERRORS</span> 00136 <span class="preprocessor"></span><span class="preprocessor">#include <os2.h></span> 00137 <span class="preprocessor">#endif</span> 00138 <span class="preprocessor"></span> 00139 <span class="comment">/* header files for PATH_MAX, _POSIX_PATH_MAX */</span> 00140 <span class="preprocessor">#if APR_HAVE_LIMITS_H</span> 00141 <span class="preprocessor"></span><span class="preprocessor">#include <limits.h></span> 00142 <span class="preprocessor">#else</span> 00143 <span class="preprocessor"></span><span class="preprocessor">#if APR_HAVE_SYS_SYSLIMITS_H</span> 00144 <span class="preprocessor"></span><span class="preprocessor">#include <sys/syslimits.h></span> 00145 <span class="preprocessor">#endif</span> 00146 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00147 <span class="preprocessor"></span> 00148 00149 <span class="preprocessor">#ifdef __cplusplus</span> 00150 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { 00151 <span class="preprocessor">#endif</span> 00152 <span class="preprocessor"></span><span class="comment"></span> 00153 <span class="comment">/**</span> 00154 <span class="comment"> * @addtogroup apr_platform</span> 00155 <span class="comment"> * @ingroup APR </span> 00156 <span class="comment"> * @{</span> 00157 <span class="comment"> */</span> 00158 00159 <span class="preprocessor">#define APR_HAVE_SHMEM_MMAP_TMP 1</span> 00160 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_MMAP_SHM 1</span> 00161 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_MMAP_ZERO 1</span> 00162 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_SHMGET_ANON 1</span> 00163 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_SHMGET 1</span> 00164 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_MMAP_ANON 1</span> 00165 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SHMEM_BEOS 0</span> 00166 <span class="preprocessor"></span> 00167 <span class="preprocessor">#define APR_USE_SHMEM_MMAP_TMP 0</span> 00168 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_MMAP_SHM 0</span> 00169 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_MMAP_ZERO 0</span> 00170 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_SHMGET_ANON 0</span> 00171 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_SHMGET 1</span> 00172 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_MMAP_ANON 1</span> 00173 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SHMEM_BEOS 0</span> 00174 <span class="preprocessor"></span> 00175 <span class="preprocessor">#define APR_USE_FLOCK_SERIALIZE 0 </span> 00176 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_SYSVSEM_SERIALIZE 0</span> 00177 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_POSIXSEM_SERIALIZE 0</span> 00178 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_FCNTL_SERIALIZE 1</span> 00179 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_PROC_PTHREAD_SERIALIZE 0 </span> 00180 <span class="preprocessor"></span><span class="preprocessor">#define APR_USE_PTHREAD_SERIALIZE 1 </span> 00181 <span class="preprocessor"></span> 00182 <span class="preprocessor">#define APR_HAS_FLOCK_SERIALIZE 1</span> 00183 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_SYSVSEM_SERIALIZE 1</span> 00184 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_POSIXSEM_SERIALIZE 1</span> 00185 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_FCNTL_SERIALIZE 1</span> 00186 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_PROC_PTHREAD_SERIALIZE 1</span> 00187 <span class="preprocessor"></span> 00188 <span class="preprocessor">#define APR_PROCESS_LOCK_IS_GLOBAL 0</span> 00189 <span class="preprocessor"></span> 00190 <span class="preprocessor">#define APR_HAVE_CORKABLE_TCP 1 </span> 00191 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_GETRLIMIT 1</span> 00192 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_IN_ADDR 1</span> 00193 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_INET_ADDR 1</span> 00194 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_INET_NETWORK 1</span> 00195 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_IPV6 1</span> 00196 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_MEMMOVE 1</span> 00197 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SETRLIMIT 1</span> 00198 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SIGACTION 1</span> 00199 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SIGSUSPEND 1</span> 00200 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SIGWAIT 1</span> 00201 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SA_STORAGE 1</span> 00202 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRCASECMP 1</span> 00203 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRDUP 1</span> 00204 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRICMP 0</span> 00205 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRNCASECMP 1</span> 00206 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRNICMP 0</span> 00207 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRSTR 1</span> 00208 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_MEMCHR 1</span> 00209 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_STRUCT_RLIMIT 1</span> 00210 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_UNION_SEMUN 0</span> 00211 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAVE_SCTP 0</span> 00212 <span class="preprocessor"></span> 00213 <span class="comment">/* APR Feature Macros */</span> 00214 <span class="preprocessor">#define APR_HAS_SHARED_MEMORY 1</span> 00215 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_THREADS 1</span> 00216 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_SENDFILE 1</span> 00217 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_MMAP 1</span> 00218 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_FORK 1</span> 00219 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_RANDOM 1</span> 00220 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_OTHER_CHILD 1</span> 00221 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_DSO 1</span> 00222 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_SO_ACCEPTFILTER 0</span> 00223 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_UNICODE_FS 0</span> 00224 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_PROC_INVOKED 0</span> 00225 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_USER 1</span> 00226 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_LARGE_FILES 1</span> 00227 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_XTHREAD_FILES 0</span> 00228 <span class="preprocessor"></span><span class="preprocessor">#define APR_HAS_OS_UUID 1</span> 00229 <span class="preprocessor"></span> 00230 <span class="preprocessor">#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0</span> 00231 <span class="preprocessor"></span> 00232 <span class="comment">/* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible</span> 00233 <span class="comment"> * to poll on files/pipes.</span> 00234 <span class="comment"> */</span> 00235 <span class="preprocessor">#define APR_FILES_AS_SOCKETS 1</span> 00236 <span class="preprocessor"></span> 00237 <span class="comment">/* This macro indicates whether or not EBCDIC is the native character set.</span> 00238 <span class="comment"> */</span> 00239 <span class="preprocessor">#define APR_CHARSET_EBCDIC 0</span> 00240 <span class="preprocessor"></span> 00241 <span class="comment">/* If we have a TCP implementation that can be "corked", what flag</span> 00242 <span class="comment"> * do we use?</span> 00243 <span class="comment"> */</span> 00244 <span class="preprocessor">#define APR_TCP_NOPUSH_FLAG TCP_CORK</span> 00245 <span class="preprocessor"></span> 00246 <span class="comment">/* Is the TCP_NODELAY socket option inherited from listening sockets?</span> 00247 <span class="comment">*/</span> 00248 <span class="preprocessor">#define APR_TCP_NODELAY_INHERITED 1</span> 00249 <span class="preprocessor"></span> 00250 <span class="comment">/* Is the O_NONBLOCK flag inherited from listening sockets?</span> 00251 <span class="comment">*/</span> 00252 <span class="preprocessor">#define APR_O_NONBLOCK_INHERITED 0</span> 00253 <span class="preprocessor"></span> 00254 <span class="comment">/* Typedefs that APR needs. */</span> 00255 00256 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> apr_byte_t; 00257 00258 <span class="keyword">typedef</span> <span class="keywordtype">short</span> apr_int16_t; 00259 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> apr_uint16_t; 00260 00261 <span class="keyword">typedef</span> <span class="keywordtype">int</span> apr_int32_t; 00262 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> apr_uint32_t; 00263 00264 <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> apr_int64_t; 00265 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> apr_uint64_t; 00266 00267 <span class="keyword">typedef</span> size_t apr_size_t; 00268 <span class="keyword">typedef</span> ssize_t apr_ssize_t; 00269 <span class="keyword">typedef</span> off64_t apr_off_t; 00270 <span class="keyword">typedef</span> socklen_t apr_socklen_t; 00271 00272 <span class="preprocessor">#define APR_SIZEOF_VOIDP 4</span> 00273 <span class="preprocessor"></span> 00274 <span class="comment">/* Are we big endian? */</span> 00275 <span class="preprocessor">#define APR_IS_BIGENDIAN 0</span> 00276 <span class="preprocessor"></span> 00277 <span class="comment">/* Mechanisms to properly type numeric literals */</span> 00278 <span class="preprocessor">#define APR_INT64_C(val) INT64_C(val)</span> 00279 <span class="preprocessor"></span><span class="preprocessor">#define APR_UINT64_C(val) UINT64_C(val)</span> 00280 <span class="preprocessor"></span> 00281 <span class="comment">/* Definitions that APR programs need to work properly. */</span> 00282 <span class="comment"></span> 00283 <span class="comment">/** </span> 00284 <span class="comment"> * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, </span> 00285 <span class="comment"> * so that they follow the platform's calling convention.</span> 00286 <span class="comment"> * @example</span> 00287 <span class="comment"> */</span><span class="comment"></span> 00288 <span class="comment">/** void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);</span> 00289 <span class="comment"> */</span> <a name="l00290"></a><a class="code" href="group__apr__platform.html#ga122">00290</a> <span class="preprocessor">#define APR_THREAD_FUNC</span> 00291 <span class="preprocessor"></span><span class="comment"></span> 00292 <span class="comment">/**</span> 00293 <span class="comment"> * The public APR functions are declared with APR_DECLARE(), so they may</span> 00294 <span class="comment"> * use the most appropriate calling convention. Public APR functions with </span> 00295 <span class="comment"> * variable arguments must use APR_DECLARE_NONSTD().</span> 00296 <span class="comment"> *</span> 00297 <span class="comment"> * @remark Both the declaration and implementations must use the same macro.</span> 00298 <span class="comment"> * @example</span> 00299 <span class="comment"> */</span><span class="comment"></span> 00300 <span class="comment">/** APR_DECLARE(rettype) apr_func(args)</span> 00301 <span class="comment"> * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA</span> 00302 <span class="comment"> * @remark Note that when APR compiles the library itself, it passes the </span> 00303 <span class="comment"> * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) </span> 00304 <span class="comment"> * to export public symbols from the dynamic library build.\n</span> 00305 <span class="comment"> * The user must define the APR_DECLARE_STATIC when compiling to target</span> 00306 <span class="comment"> * the static APR library on some platforms (e.g. Win32.) The public symbols </span> 00307 <span class="comment"> * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n</span> 00308 <span class="comment"> * By default, compiling an application and including the APR public</span> 00309 <span class="comment"> * headers, without defining APR_DECLARE_STATIC, will prepare the code to be</span> 00310 <span class="comment"> * linked to the dynamic library.</span> 00311 <span class="comment"> */</span> <a name="l00312"></a><a class="code" href="group__apr__platform.html#ga123">00312</a> <span class="preprocessor">#define APR_DECLARE(type) type </span> 00313 <span class="preprocessor"></span><span class="comment"></span> 00314 <span class="comment">/**</span> 00315 <span class="comment"> * The public APR functions using variable arguments are declared with </span> 00316 <span class="comment"> * APR_DECLARE_NONSTD(), as they must follow the C language calling convention.</span> 00317 <span class="comment"> * @see APR_DECLARE @see APR_DECLARE_DATA</span> 00318 <span class="comment"> * @remark Both the declaration and implementations must use the same macro.</span> 00319 <span class="comment"> * @example</span> 00320 <span class="comment"> */</span><span class="comment"></span> 00321 <span class="comment">/** APR_DECLARE_NONSTD(rettype) apr_func(args, ...);</span> 00322 <span class="comment"> */</span> <a name="l00323"></a><a class="code" href="group__apr__platform.html#ga124">00323</a> <span class="preprocessor">#define APR_DECLARE_NONSTD(type) type</span> 00324 <span class="preprocessor"></span><span class="comment"></span> 00325 <span class="comment">/**</span> 00326 <span class="comment"> * The public APR variables are declared with AP_MODULE_DECLARE_DATA.</span> 00327 <span class="comment"> * This assures the appropriate indirection is invoked at compile time.</span> 00328 <span class="comment"> * @see APR_DECLARE @see APR_DECLARE_NONSTD</span> 00329 <span class="comment"> * @remark Note that the declaration and implementations use different forms,</span> 00330 <span class="comment"> * but both must include the macro.</span> 00331 <span class="comment"> * @example</span> 00332 <span class="comment"> */</span><span class="comment"></span> 00333 <span class="comment">/** extern APR_DECLARE_DATA type apr_variable;\n</span> 00334 <span class="comment"> * APR_DECLARE_DATA type apr_variable = value;</span> 00335 <span class="comment"> */</span> <a name="l00336"></a><a class="code" href="group__apr__platform.html#ga125">00336</a> <span class="preprocessor">#define APR_DECLARE_DATA</span> 00337 <span class="preprocessor"></span> 00338 <span class="comment">/* Define APR_SSIZE_T_FMT. </span> 00339 <span class="comment"> * If ssize_t is an integer we define it to be "d",</span> 00340 <span class="comment"> * if ssize_t is a long int we define it to be "ld",</span> 00341 <span class="comment"> * if ssize_t is neither we declare an error here.</span> 00342 <span class="comment"> * I looked for a better way to define this here, but couldn't find one, so</span> 00343 <span class="comment"> * to find the logic for this definition search for "ssize_t_fmt" in</span> 00344 <span class="comment"> * configure.in.</span> 00345 <span class="comment"> */</span> 00346 <span class="preprocessor">#define APR_SSIZE_T_FMT "d"</span> 00347 <span class="preprocessor"></span> 00348 <span class="comment">/* And APR_SIZE_T_FMT */</span> 00349 <span class="preprocessor">#define APR_SIZE_T_FMT "d"</span> 00350 <span class="preprocessor"></span> 00351 <span class="comment">/* And APR_OFF_T_FMT */</span> 00352 <span class="preprocessor">#define APR_OFF_T_FMT APR_INT64_T_FMT</span> 00353 <span class="preprocessor"></span> 00354 <span class="comment">/* And APR_PID_T_FMT */</span> 00355 <span class="preprocessor">#define APR_PID_T_FMT "d"</span> 00356 <span class="preprocessor"></span> 00357 <span class="comment">/* And APR_INT64_T_FMT */</span> 00358 <span class="preprocessor">#define APR_INT64_T_FMT "lld"</span> 00359 <span class="preprocessor"></span> 00360 <span class="comment">/* And APR_UINT64_T_FMT */</span> 00361 <span class="preprocessor">#define APR_UINT64_T_FMT "llu"</span> 00362 <span class="preprocessor"></span> 00363 <span class="comment">/* And APR_UINT64_T_HEX_FMT */</span> 00364 <span class="preprocessor">#define APR_UINT64_T_HEX_FMT "llx"</span> 00365 <span class="preprocessor"></span> 00366 <span class="comment">/* Does the proc mutex lock threads too */</span> 00367 <span class="preprocessor">#define APR_PROC_MUTEX_IS_GLOBAL 0</span> 00368 <span class="preprocessor"></span> 00369 <span class="comment">/* Local machine definition for console and log output. */</span> 00370 <span class="preprocessor">#define APR_EOL_STR "\n"</span> 00371 <span class="preprocessor"></span> 00372 00373 <span class="preprocessor">#if APR_HAVE_SYS_WAIT_H</span> 00374 <span class="preprocessor"></span><span class="preprocessor">#ifdef WEXITSTATUS</span> 00375 <span class="preprocessor"></span><span class="preprocessor">#define apr_wait_t int</span> 00376 <span class="preprocessor"></span><span class="preprocessor">#else</span> 00377 <span class="preprocessor"></span><span class="preprocessor">#define apr_wait_t union wait</span> 00378 <span class="preprocessor"></span><span class="preprocessor">#define WEXITSTATUS(status) (int)((status).w_retcode)</span> 00379 <span class="preprocessor"></span><span class="preprocessor">#define WTERMSIG(status) (int)((status).w_termsig)</span> 00380 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* !WEXITSTATUS */</span> 00381 <span class="preprocessor">#endif </span><span class="comment">/* HAVE_SYS_WAIT_H */</span> 00382 00383 <span class="preprocessor">#if defined(PATH_MAX)</span> 00384 <span class="preprocessor"></span><span class="preprocessor">#define APR_PATH_MAX PATH_MAX</span> 00385 <span class="preprocessor"></span><span class="preprocessor">#elif defined(_POSIX_PATH_MAX)</span> 00386 <span class="preprocessor"></span><span class="preprocessor">#define APR_PATH_MAX _POSIX_PATH_MAX</span> 00387 <span class="preprocessor"></span><span class="preprocessor">#else</span> 00388 <span class="preprocessor"></span><span class="preprocessor">#error no decision has been made on APR_PATH_MAX for your platform</span> 00389 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 00390 <span class="preprocessor"></span><span class="comment"></span> 00391 <span class="comment">/** @} */</span> 00392 00393 <span class="preprocessor">#ifdef __cplusplus</span> 00394 <span class="preprocessor"></span>} 00395 <span class="preprocessor">#endif</span> 00396 <span class="preprocessor"></span> 00397 <span class="preprocessor">#endif </span><span class="comment">/* APR_H */</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Mar 20 19:52:26 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> </body> </html>