"Fossies" - the Fresh Open Source Software Archive

Member "apr-1.7.0/include/apr.hw" (21 Mar 2019, 18067 Bytes) of package /linux/www/apr-1.7.0.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "apr.hw": 1.6.5_vs_1.7.0.

    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.hw instead.
   24  *
   25  * And please, make an effort to stub apr.hnw and apr.h.in in the process.
   26  *
   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.
   29  */
   30 
   31 /**
   32  * @file apr.h
   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.
   37  */
   38 
   39 /* Make sure we have our platform identifier macro defined we ask for later.
   40  */
   41 #if defined(_WIN32) && !defined(WIN32)
   42 #define WIN32 1
   43 #endif
   44 
   45 #if defined(WIN32) || defined(DOXYGEN)
   46 
   47 /* Ignore most warnings (back down to /W3) for poorly constructed headers
   48  */
   49 #if defined(_MSC_VER) && _MSC_VER >= 1200
   50 #pragma warning(push, 3)
   51 #endif
   52 
   53 /* disable or reduce the frequency of...
   54  *   C4057: indirection to slightly different base types
   55  *   C4075: slight indirection changes (unsigned short* vs short[])
   56  *   C4100: unreferenced formal parameter
   57  *   C4127: conditional expression is constant
   58  *   C4163: '_rotl64' : not available as an intrinsic function
   59  *   C4201: nonstandard extension nameless struct/unions
   60  *   C4244: int to char/short - precision loss
   61  *   C4514: unreferenced inline function removed
   62  */
   63 #if defined(_MSC_VER)
   64 #pragma warning(disable: 4100 4127 4163 4201 4514; once: 4057 4075 4244)
   65 #endif
   66 
   67 /* Ignore Microsoft's interpretation of secure development
   68  * and the POSIX string handling API
   69  */
   70 #if defined(_MSC_VER) && _MSC_VER >= 1400
   71 #ifndef _CRT_SECURE_NO_DEPRECATE
   72 #define _CRT_SECURE_NO_DEPRECATE
   73 #endif
   74 #pragma warning(disable: 4996)
   75 #endif
   76 
   77 /* Has windows.h already been included?  If so, our preferences don't matter,
   78  * but we will still need the winsock things no matter what was included.
   79  * If not, include a restricted set of windows headers to our tastes.
   80  */
   81 #ifndef _WINDOWS_
   82 #ifndef WIN32_LEAN_AND_MEAN
   83 #define WIN32_LEAN_AND_MEAN
   84 #endif
   85 #ifndef _WIN32_WINNT
   86 
   87 /* Restrict the server to a subset of Windows XP header files by default
   88  */
   89 #define _WIN32_WINNT 0x0501
   90 #endif
   91 #ifndef NOUSER
   92 #define NOUSER
   93 #endif
   94 #ifndef NOMCX
   95 #define NOMCX
   96 #endif
   97 #ifndef NOIME
   98 #define NOIME
   99 #endif
  100 #include <windows.h>
  101 /* 
  102  * Add a _very_few_ declarations missing from the restricted set of headers
  103  * (If this list becomes extensive, re-enable the required headers above!)
  104  * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
  105  */
  106 #define SW_HIDE             0
  107 #ifndef _WIN32_WCE
  108 #include <winsock2.h>
  109 #include <ws2tcpip.h>
  110 #include <mswsock.h>
  111 #else
  112 #include <winsock.h>
  113 #endif
  114 #endif /* !_WINDOWS_ */
  115 
  116 /**
  117  * @defgroup APR Apache Portability Runtime library
  118  * @{
  119  */
  120 /**
  121  * @defgroup apr_platform Platform Definitions
  122  * @{
  123  * @warning
  124  * <strong><em>The actual values of macros and typedefs on this page<br>
  125  * are platform specific and should NOT be relied upon!</em></strong>
  126  */
  127 
  128 #define APR_INLINE __inline
  129 #define APR_HAS_INLINE          1
  130 #if !defined(__GNUC__) && !defined(__attribute__)
  131 #define __attribute__(__x)
  132 #endif
  133 
  134 #ifndef _WIN32_WCE
  135 #define APR_HAVE_ARPA_INET_H    0
  136 #define APR_HAVE_CONIO_H        1
  137 #define APR_HAVE_CRYPT_H        0
  138 #define APR_HAVE_CTYPE_H        1
  139 #define APR_HAVE_DIRENT_H       0
  140 #define APR_HAVE_ERRNO_H        1
  141 #define APR_HAVE_FCNTL_H        1
  142 #define APR_HAVE_IO_H           1
  143 #define APR_HAVE_LIMITS_H       1
  144 #define APR_HAVE_NETDB_H        0
  145 #define APR_HAVE_NETINET_IN_H   0
  146 #define APR_HAVE_NETINET_SCTP_H 0
  147 #define APR_HAVE_NETINET_SCTP_UIO_H 0
  148 #define APR_HAVE_NETINET_TCP_H  0
  149 #define APR_HAVE_PTHREAD_H      0
  150 #define APR_HAVE_SEMAPHORE_H    0
  151 #define APR_HAVE_SIGNAL_H       1
  152 #define APR_HAVE_STDARG_H       1
  153 #define APR_HAVE_STDINT_H       0
  154 #define APR_HAVE_STDIO_H        1
  155 #define APR_HAVE_STDLIB_H       1
  156 #define APR_HAVE_STRING_H       1
  157 #define APR_HAVE_STRINGS_H      0
  158 #define APR_HAVE_SYS_IOCTL_H    0
  159 #define APR_HAVE_SYS_SENDFILE_H 0
  160 #define APR_HAVE_SYS_SIGNAL_H   0
  161 #define APR_HAVE_SYS_SOCKET_H   0
  162 #define APR_HAVE_SYS_SOCKIO_H   0
  163 #define APR_HAVE_SYS_SYSLIMITS_H 0
  164 #define APR_HAVE_SYS_TIME_H     0
  165 #define APR_HAVE_SYS_TYPES_H    1
  166 #define APR_HAVE_SYS_UIO_H      0
  167 #define APR_HAVE_SYS_UN_H       0
  168 #define APR_HAVE_SYS_WAIT_H     0
  169 #define APR_HAVE_TIME_H         1
  170 #define APR_HAVE_UNISTD_H       0
  171 #define APR_HAVE_STDDEF_H       1
  172 #define APR_HAVE_PROCESS_H      1
  173 #else
  174 #define APR_HAVE_ARPA_INET_H    0
  175 #define APR_HAVE_CONIO_H        0
  176 #define APR_HAVE_CRYPT_H        0
  177 #define APR_HAVE_CTYPE_H        0
  178 #define APR_HAVE_DIRENT_H       0
  179 #define APR_HAVE_ERRNO_H        0
  180 #define APR_HAVE_FCNTL_H        0
  181 #define APR_HAVE_IO_H           0
  182 #define APR_HAVE_LIMITS_H       0
  183 #define APR_HAVE_NETDB_H        0
  184 #define APR_HAVE_NETINET_IN_H   0
  185 #define APR_HAVE_NETINET_SCTP_H 0
  186 #define APR_HAVE_NETINET_SCTP_UIO_H 0
  187 #define APR_HAVE_NETINET_TCP_H  0
  188 #define APR_HAVE_PTHREAD_H      0
  189 #define APR_HAVE_SEMAPHORE_H    0
  190 #define APR_HAVE_SIGNAL_H       0
  191 #define APR_HAVE_STDARG_H       0
  192 #define APR_HAVE_STDINT_H       0
  193 #define APR_HAVE_STDIO_H        1
  194 #define APR_HAVE_STDLIB_H       1
  195 #define APR_HAVE_STRING_H       1
  196 #define APR_HAVE_STRINGS_H      0
  197 #define APR_HAVE_SYS_IOCTL_H    0
  198 #define APR_HAVE_SYS_SENDFILE_H 0
  199 #define APR_HAVE_SYS_SIGNAL_H   0
  200 #define APR_HAVE_SYS_SOCKET_H   0
  201 #define APR_HAVE_SYS_SOCKIO_H   0
  202 #define APR_HAVE_SYS_SYSLIMITS_H 0
  203 #define APR_HAVE_SYS_TIME_H     0
  204 #define APR_HAVE_SYS_TYPES_H    0
  205 #define APR_HAVE_SYS_UIO_H      0
  206 #define APR_HAVE_SYS_UN_H       0
  207 #define APR_HAVE_SYS_WAIT_H     0
  208 #define APR_HAVE_TIME_H         0
  209 #define APR_HAVE_UNISTD_H       0
  210 #define APR_HAVE_STDDEF_H       0
  211 #define APR_HAVE_PROCESS_H      0
  212 #endif
  213 
  214 /** @} */
  215 /** @} */
  216 
  217 /* We don't include our conditional headers within the doxyblocks
  218  * or the extern "C" namespace
  219  */
  220 
  221 #if APR_HAVE_STDLIB_H
  222 #include <stdlib.h>
  223 #endif
  224 
  225 #if APR_HAVE_STDIO_H
  226 #include <stdio.h>
  227 #endif
  228 
  229 #if APR_HAVE_SYS_TYPES_H
  230 #include <sys/types.h>
  231 #endif
  232 
  233 #if APR_HAVE_STDDEF_H
  234 #include <stddef.h>
  235 #endif
  236 
  237 #if APR_HAVE_SYS_SOCKET_H
  238 #include <sys/socket.h>
  239 #endif
  240 
  241 #if APR_HAVE_STDINT_H
  242 #include <stdint.h>
  243 #endif
  244 
  245 #if APR_HAVE_SYS_WAIT_H
  246 #include <sys/wait.h>
  247 #endif
  248 
  249 #if APR_HAVE_TIME_H
  250 #include <time.h>
  251 #endif
  252 
  253 #if APR_HAVE_PROCESS_H
  254 #include <process.h>
  255 #endif
  256 
  257 #ifdef __cplusplus
  258 extern "C" {
  259 #endif
  260 
  261 /**
  262  * @addtogroup apr_platform
  263  * @ingroup APR 
  264  * @{
  265  */
  266 
  267 #define APR_HAVE_SHMEM_MMAP_TMP     0
  268 #define APR_HAVE_SHMEM_MMAP_SHM     0
  269 #define APR_HAVE_SHMEM_MMAP_ZERO    0
  270 #define APR_HAVE_SHMEM_SHMGET_ANON  0
  271 #define APR_HAVE_SHMEM_SHMGET       0
  272 #define APR_HAVE_SHMEM_MMAP_ANON    0
  273 #define APR_HAVE_SHMEM_BEOS         0
  274 
  275 #define APR_USE_SHMEM_MMAP_TMP     0
  276 #define APR_USE_SHMEM_MMAP_SHM     0
  277 #define APR_USE_SHMEM_MMAP_ZERO    0
  278 #define APR_USE_SHMEM_SHMGET_ANON  0
  279 #define APR_USE_SHMEM_SHMGET       0
  280 #define APR_USE_SHMEM_MMAP_ANON    0
  281 #define APR_USE_SHMEM_BEOS         0
  282 
  283 #define APR_USE_FLOCK_SERIALIZE           0
  284 #define APR_USE_POSIXSEM_SERIALIZE        0
  285 #define APR_USE_SYSVSEM_SERIALIZE         0
  286 #define APR_USE_FCNTL_SERIALIZE           0
  287 #define APR_USE_PROC_PTHREAD_SERIALIZE    0
  288 #define APR_USE_PTHREAD_SERIALIZE         0
  289 
  290 #define APR_HAS_FLOCK_SERIALIZE           0
  291 #define APR_HAS_SYSVSEM_SERIALIZE         0
  292 #define APR_HAS_POSIXSEM_SERIALIZE        0
  293 #define APR_HAS_FCNTL_SERIALIZE           0
  294 #define APR_HAS_PROC_PTHREAD_SERIALIZE    0
  295 
  296 #define APR_PROCESS_LOCK_IS_GLOBAL        0
  297 
  298 #define APR_HAVE_CORKABLE_TCP   0
  299 #define APR_HAVE_GETRLIMIT      0
  300 #define APR_HAVE_ICONV          0
  301 #define APR_HAVE_IN_ADDR        1
  302 #define APR_HAVE_INET_ADDR      1
  303 #define APR_HAVE_INET_NETWORK   0
  304 #define APR_HAVE_IPV6           1
  305 #define APR_HAVE_SOCKADDR_UN    0
  306 #define APR_HAVE_MEMMOVE        1
  307 #define APR_HAVE_SETRLIMIT      0
  308 #define APR_HAVE_SIGACTION      0
  309 #define APR_HAVE_SIGSUSPEND     0
  310 #define APR_HAVE_SIGWAIT        0
  311 #define APR_HAVE_SA_STORAGE     0
  312 #define APR_HAVE_STRCASECMP     0
  313 #define APR_HAVE_STRDUP         1
  314 #define APR_HAVE_STRNCASECMP    0
  315 #define APR_HAVE_STRSTR         1
  316 #define APR_HAVE_MEMCHR         1
  317 #define APR_HAVE_STRUCT_RLIMIT  0
  318 #define APR_HAVE_UNION_SEMUN    0
  319 #define APR_HAVE_SCTP           0
  320 #define APR_HAVE_IOVEC          0
  321 
  322 #ifndef _WIN32_WCE
  323 #define APR_HAVE_STRICMP        1
  324 #define APR_HAVE_STRNICMP       1
  325 #else
  326 #define APR_HAVE_STRICMP        0
  327 #define APR_HAVE_STRNICMP       0
  328 #endif
  329 
  330 /*  APR Feature Macros */
  331 #define APR_HAS_SHARED_MEMORY     1
  332 #define APR_HAS_THREADS           1
  333 #define APR_HAS_MMAP              1
  334 #define APR_HAS_FORK              0
  335 #define APR_HAS_RANDOM            1
  336 #define APR_HAS_OTHER_CHILD       1
  337 #define APR_HAS_DSO               1
  338 #define APR_HAS_SO_ACCEPTFILTER   0
  339 #define APR_HAS_UNICODE_FS        1
  340 #define APR_HAS_PROC_INVOKED      1
  341 #define APR_HAS_OS_UUID           1
  342 #define APR_HAS_TIMEDLOCKS        1
  343 
  344 #ifndef _WIN32_WCE
  345 #define APR_HAS_SENDFILE          1
  346 #define APR_HAS_USER              1
  347 #define APR_HAS_LARGE_FILES       1
  348 #define APR_HAS_XTHREAD_FILES     1
  349 #define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 1
  350 #else
  351 #define APR_HAS_SENDFILE          0
  352 #define APR_HAS_USER              0
  353 #define APR_HAS_LARGE_FILES       0
  354 #define APR_HAS_XTHREAD_FILES     0
  355 #define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0
  356 #endif
  357 
  358 /* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible
  359  * to poll on files/pipes.
  360  */
  361 #define APR_FILES_AS_SOCKETS      0
  362 
  363 /* This macro indicates whether or not EBCDIC is the native character set.
  364  */
  365 #define APR_CHARSET_EBCDIC        0
  366 
  367 /* If we have a TCP implementation that can be "corked", what flag
  368  * do we use?
  369  */
  370 #define APR_TCP_NOPUSH_FLAG       @apr_tcp_nopush_flag@
  371 
  372 /* Is the TCP_NODELAY socket option inherited from listening sockets?
  373  */
  374 #define APR_TCP_NODELAY_INHERITED 1
  375 
  376 /* Is the O_NONBLOCK flag inherited from listening sockets?
  377  */
  378 #define APR_O_NONBLOCK_INHERITED 1
  379 
  380 /* Typedefs that APR needs. */
  381 
  382 typedef  unsigned char     apr_byte_t;
  383 
  384 typedef  short             apr_int16_t;
  385 typedef  unsigned short    apr_uint16_t;
  386 
  387 typedef  int               apr_int32_t;
  388 typedef  unsigned int      apr_uint32_t;
  389 
  390 typedef  __int64           apr_int64_t;
  391 typedef  unsigned __int64  apr_uint64_t;
  392 
  393 typedef  size_t      apr_size_t;
  394 #if APR_HAVE_STDDEF_H
  395 typedef  ptrdiff_t   apr_ssize_t;
  396 #else
  397 typedef  int         apr_ssize_t;
  398 #endif
  399 #if APR_HAS_LARGE_FILES
  400 typedef  __int64     apr_off_t;
  401 #else
  402 typedef  int         apr_off_t;
  403 #endif
  404 typedef  int         apr_socklen_t;
  405 typedef  apr_uint64_t      apr_ino_t;
  406 
  407 #ifdef _WIN64
  408 #define APR_SIZEOF_VOIDP   8
  409 #else
  410 #define APR_SIZEOF_VOIDP   4
  411 #endif
  412 
  413 #if APR_SIZEOF_VOIDP == 8
  414 typedef  apr_uint64_t            apr_uintptr_t;
  415 #else
  416 typedef  apr_uint32_t            apr_uintptr_t;
  417 #endif
  418 
  419 /* Are we big endian? */
  420 /* XXX: Fatal assumption on Alpha platforms */
  421 #define APR_IS_BIGENDIAN    0
  422 
  423 /* Mechanisms to properly type numeric literals */
  424 
  425 #ifndef __GNUC__
  426 #define APR_INT64_C(val) (val##i64)
  427 #define APR_UINT64_C(val) (val##Ui64)
  428 #else
  429 #define APR_INT64_C(val) (val##LL)
  430 #define APR_UINT64_C(val) (val##ULL)
  431 #endif
  432 
  433 #ifdef INT16_MIN
  434 #define APR_INT16_MIN   INT16_MIN
  435 #else
  436 #define APR_INT16_MIN   (-0x7fff - 1)
  437 #endif
  438 
  439 #ifdef INT16_MAX
  440 #define APR_INT16_MAX  INT16_MAX
  441 #else
  442 #define APR_INT16_MAX   (0x7fff)
  443 #endif
  444 
  445 #ifdef UINT16_MAX
  446 #define APR_UINT16_MAX  UINT16_MAX
  447 #else
  448 #define APR_UINT16_MAX  (0xffff)
  449 #endif
  450 
  451 #ifdef INT32_MIN
  452 #define APR_INT32_MIN   INT32_MIN
  453 #else
  454 #define APR_INT32_MIN   (-0x7fffffff - 1)
  455 #endif
  456 
  457 #ifdef INT32_MAX
  458 #define APR_INT32_MAX  INT32_MAX
  459 #else
  460 #define APR_INT32_MAX  0x7fffffff
  461 #endif
  462 
  463 #ifdef UINT32_MAX
  464 #define APR_UINT32_MAX  UINT32_MAX
  465 #else
  466 #define APR_UINT32_MAX  (0xffffffffU)
  467 #endif
  468 
  469 #ifdef INT64_MIN
  470 #define APR_INT64_MIN   INT64_MIN
  471 #else
  472 #define APR_INT64_MIN   (APR_INT64_C(-0x7fffffffffffffff) - 1)
  473 #endif
  474 
  475 #ifdef INT64_MAX
  476 #define APR_INT64_MAX   INT64_MAX
  477 #else
  478 #define APR_INT64_MAX   APR_INT64_C(0x7fffffffffffffff)
  479 #endif
  480 
  481 #ifdef UINT64_MAX
  482 #define APR_UINT64_MAX  UINT64_MAX
  483 #else
  484 #define APR_UINT64_MAX  APR_UINT64_C(0xffffffffffffffff)
  485 #endif
  486 
  487 #define APR_SIZE_MAX    (~((apr_size_t)0))
  488 
  489 /* Definitions that APR programs need to work properly. */
  490 
  491 /**
  492  * APR public API wrap for C++ compilers.
  493  */
  494 #ifdef __cplusplus
  495 #define APR_BEGIN_DECLS     extern "C" {
  496 #define APR_END_DECLS       }
  497 #else
  498 #define APR_BEGIN_DECLS
  499 #define APR_END_DECLS
  500 #endif
  501 
  502 /** 
  503  * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, 
  504  * so that they follow the platform's calling convention.
  505  * <PRE>
  506  *
  507  * void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
  508  *
  509  * </PRE>
  510  */
  511 #define APR_THREAD_FUNC  __stdcall
  512 
  513 
  514 #if defined(DOXYGEN) || !defined(WIN32)
  515 
  516 /**
  517  * The public APR functions are declared with APR_DECLARE(), so they may
  518  * use the most appropriate calling convention.  Public APR functions with 
  519  * variable arguments must use APR_DECLARE_NONSTD().
  520  *
  521  * @remark Both the declaration and implementations must use the same macro.
  522  *
  523  * <PRE>
  524  * APR_DECLARE(rettype) apr_func(args)
  525  * </PRE>
  526  * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
  527  * @remark Note that when APR compiles the library itself, it passes the 
  528  * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) 
  529  * to export public symbols from the dynamic library build.\n
  530  * The user must define the APR_DECLARE_STATIC when compiling to target
  531  * the static APR library on some platforms (e.g. Win32.)  The public symbols 
  532  * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
  533  * By default, compiling an application and including the APR public
  534  * headers, without defining APR_DECLARE_STATIC, will prepare the code to be
  535  * linked to the dynamic library.
  536  */
  537 #define APR_DECLARE(type)            type 
  538 
  539 /**
  540  * The public APR functions using variable arguments are declared with 
  541  * APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
  542  * @see APR_DECLARE @see APR_DECLARE_DATA
  543  * @remark Both the declaration and implementations must use the same macro.
  544  * <PRE>
  545  *
  546  * APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
  547  *
  548  * </PRE>
  549  */
  550 #define APR_DECLARE_NONSTD(type)     type
  551 
  552 /**
  553  * The public APR variables are declared with AP_MODULE_DECLARE_DATA.
  554  * This assures the appropriate indirection is invoked at compile time.
  555  * @see APR_DECLARE @see APR_DECLARE_NONSTD
  556  * @remark Note that the declaration and implementations use different forms,
  557  * but both must include the macro.
  558  * 
  559  * <PRE>
  560  *
  561  * extern APR_DECLARE_DATA type apr_variable;\n
  562  * APR_DECLARE_DATA type apr_variable = value;
  563  *
  564  * </PRE>
  565  */
  566 #define APR_DECLARE_DATA
  567 
  568 #elif defined(APR_DECLARE_STATIC)
  569 #define APR_DECLARE(type)            type __stdcall
  570 #define APR_DECLARE_NONSTD(type)     type __cdecl
  571 #define APR_DECLARE_DATA
  572 #elif defined(APR_DECLARE_EXPORT)
  573 #define APR_DECLARE(type)            __declspec(dllexport) type __stdcall
  574 #define APR_DECLARE_NONSTD(type)     __declspec(dllexport) type __cdecl
  575 #define APR_DECLARE_DATA             __declspec(dllexport)
  576 #else
  577 #define APR_DECLARE(type)            __declspec(dllimport) type __stdcall
  578 #define APR_DECLARE_NONSTD(type)     __declspec(dllimport) type __cdecl
  579 #define APR_DECLARE_DATA             __declspec(dllimport)
  580 #endif
  581 
  582 #ifdef _WIN64
  583 #define APR_SSIZE_T_FMT          "I64d"
  584 #define APR_SIZE_T_FMT           "I64u"
  585 #else
  586 #define APR_SSIZE_T_FMT          "d"
  587 #define APR_SIZE_T_FMT           "u"
  588 #endif
  589 
  590 #if APR_HAS_LARGE_FILES
  591 #define APR_OFF_T_FMT            "I64d"
  592 #else
  593 #define APR_OFF_T_FMT            "d"
  594 #endif
  595 
  596 #define APR_PID_T_FMT            "d"
  597 
  598 #define APR_INT64_T_FMT          "I64d"
  599 #define APR_UINT64_T_FMT         "I64u"
  600 #define APR_UINT64_T_HEX_FMT     "I64x"
  601 
  602 /* No difference between PROC and GLOBAL mutex */
  603 #define APR_PROC_MUTEX_IS_GLOBAL      1
  604 
  605 /* Local machine definition for console and log output. */
  606 #define APR_EOL_STR              "\r\n"
  607 
  608 typedef int apr_wait_t;
  609 
  610 #if APR_HAS_UNICODE_FS
  611 /* An arbitrary size that is digestable. True max is a bit less than 32000 */
  612 #define APR_PATH_MAX 8192
  613 #else /* !APR_HAS_UNICODE_FS */
  614 #define APR_PATH_MAX MAX_PATH
  615 #endif
  616 
  617 #define APR_DSOPATH "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 #ifndef __GNUC__
  627 typedef  int         pid_t;
  628 #endif
  629 typedef  int         uid_t;
  630 typedef  int         gid_t;
  631 
  632 /* Win32 .h ommissions we really need */
  633 #define STDIN_FILENO  0
  634 #define STDOUT_FILENO 1
  635 #define STDERR_FILENO 2
  636 
  637 #if APR_HAVE_IPV6
  638 
  639 /* Appears in later flavors, not the originals. */
  640 #ifndef in_addr6
  641 #define  in6_addr    in_addr6
  642 #endif
  643 
  644 #ifndef WS2TCPIP_INLINE
  645 #define IN6_IS_ADDR_V4MAPPED(a) \
  646     (   (*(const apr_uint64_t *)(const void *)(&(a)->s6_addr[0]) == 0) \
  647      && (*(const apr_uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
  648 #endif
  649 
  650 #endif /* APR_HAVE_IPV6 */
  651 
  652 #ifdef __cplusplus
  653 }
  654 #endif
  655 
  656 /* Done with badly written headers, leave 'deprecated CRT' undeprecated
  657  */
  658 #if defined(_MSC_VER) && _MSC_VER >= 1200
  659 #pragma warning(pop)
  660 #if _MSC_VER >= 1400
  661 #pragma warning(disable: 4996)
  662 #endif
  663 #endif
  664 
  665 #endif /* WIN32 */
  666 
  667 #endif /* APR_H */