github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_4_58/include/apr.h (about)

     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 0x0600
    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       0
   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 */