1251875Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
2251875Speter * contributor license agreements.  See the NOTICE file distributed with
3251875Speter * this work for additional information regarding copyright ownership.
4251875Speter * The ASF licenses this file to You under the Apache License, Version 2.0
5251875Speter * (the "License"); you may not use this file except in compliance with
6251875Speter * the License.  You may obtain a copy of the License at
7251875Speter *
8251875Speter *     http://www.apache.org/licenses/LICENSE-2.0
9251875Speter *
10251875Speter * Unless required by applicable law or agreed to in writing, software
11251875Speter * distributed under the License is distributed on an "AS IS" BASIS,
12251875Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13251875Speter * See the License for the specific language governing permissions and
14251875Speter * limitations under the License.
15251875Speter */
16251875Speter
17251875Speter
18251875Speter#ifndef APR_H
19251875Speter#define APR_H
20251875Speter
21251875Speter/* GENERATED FILE WARNING!  DO NOT EDIT apr.h
22251875Speter *
23251875Speter * You must modify apr.hnw instead.
24251875Speter *
25251875Speter * And please, make an effort to stub apr.hw and apr.h.in in the process.
26251875Speter *
27251875Speter * This is the NetWare specific version of apr.h.  It is copied from
28251875Speter * apr.hnw at the start of a NetWare build by the ./build/NWGNmakefile.
29251875Speter */
30251875Speter
31251875Speter/**
32251875Speter * @file apr.h
33251875Speter * @brief APR Platform Definitions
34251875Speter * @remark This is a generated header generated from include/apr.h.in by
35251875Speter * ./configure, or copied from include/apr.hw or include/apr.hnw
36251875Speter * for Win32 or Netware by those build environments, respectively.
37251875Speter */
38251875Speter
39251875Speter#if defined(NETWARE) || defined(DOXYGEN)
40251875Speter
41251875Speter#undef  FD_SETSIZE
42251875Speter#define FD_SETSIZE 1024
43251875Speter
44251875Speter#include <sys/types.h>
45251875Speter#include <stddef.h>
46251875Speter#include <stdio.h>
47251875Speter#include <time.h>
48251875Speter#include <stdint.h>
49251875Speter#include <stdlib.h>
50251875Speter#include <string.h>
51251875Speter#include <limits.h>
52251875Speter#include <netware.h>
53251875Speter#include <nks/thread.h>
54251875Speter#include <nks/synch.h>
55251875Speter#include <nks/time.h>
56251875Speter#include <signal.h>
57251875Speter#ifdef USE_WINSOCK
58251875Speter#include <novsock2.h>
59251875Speter#ifdef NW_BUILD_IPV6
60251875Speter#include <novtcpip.h>
61251875Speter#endif
62251875Speter#else
63251875Speter#include <sys/socket.h>
64251875Speter#include <sys/select.h>
65251875Speter#endif
66251875Speter#include <sys/types.h>
67251875Speter
68251875Speter#define _POSIX_THREAD_SAFE_FUNCTIONS    1
69251875Speter#define READDIR_IS_THREAD_SAFE          1
70251875Speter
71251875Speter/* Keep #include'd headers from within the __cplusplus or doxyblocks */
72251875Speter
73251875Speter#ifdef __cplusplus
74251875Speterextern "C" {
75251875Speter#endif
76251875Speter
77251875Speter/**
78251875Speter * @defgroup apr_platform Platform Definitions
79251875Speter * @ingroup APR
80251875Speter * @{
81251875Speter */
82251875Speter
83251875Speter#define APR_INLINE
84251875Speter#define APR_HAS_INLINE                  0
85251875Speter#ifndef __attribute__
86251875Speter#define __attribute__(__x)
87251875Speter#endif
88251875Speter#define ENUM_BITFIELD(e,n,w)  signed int n : w
89251875Speter
90251875Speter#define APR_HAVE_CONIO_H                0
91251875Speter#define APR_HAVE_CRYPT_H                0
92251875Speter#define APR_HAVE_CTYPE_H                1
93251875Speter#define APR_HAVE_DIRENT_H               1
94251875Speter#define APR_HAVE_ERRNO_H                1
95251875Speter#define APR_HAVE_FCNTL_H                1
96251875Speter#define APR_HAVE_IO_H                   0
97251875Speter#define APR_HAVE_LIMITS_H               1
98251875Speter#ifdef USE_WINSOCK
99251875Speter#define APR_HAVE_ARPA_INET_H            0
100251875Speter#define APR_HAVE_NETDB_H                0
101251875Speter#define APR_HAVE_NETINET_IN_H           0
102251875Speter#else
103251875Speter#define APR_HAVE_ARPA_INET_H            1
104251875Speter#define APR_HAVE_NETDB_H                1
105251875Speter#define APR_HAVE_NETINET_IN_H           1
106251875Speter#endif
107251875Speter#define APR_HAVE_NETINET_SCTP_H         0
108251875Speter#define APR_HAVE_NETINET_SCTP_UIO_H     0
109251875Speter#define APR_HAVE_NETINET_TCP_H          0
110251875Speter#define APR_HAVE_PTHREAD_H              0
111251875Speter#define APR_HAVE_SIGNAL_H               1
112251875Speter#define APR_HAVE_STDARG_H               1
113251875Speter#define APR_HAVE_STDINT_H               0
114251875Speter#define APR_HAVE_STDIO_H                1
115251875Speter#define APR_HAVE_STDLIB_H               1
116251875Speter#define APR_HAVE_STRING_H               1
117251875Speter#define APR_HAVE_STRINGS_H              0
118251875Speter#define APR_HAVE_STRTOLL                1
119251875Speter#define APR_HAVE_SYS_SENDFILE_H         0
120251875Speter#define APR_HAVE_SYS_SYSLIMITS_H        0
121251875Speter#ifdef USE_WINSOCK
122251875Speter#define APR_HAVE_SYS_SOCKET_H           0
123251875Speter#define APR_HAVE_SYS_SOCKIO_H           0
124251875Speter#define APR_HAVE_SYS_UN_H               0
125251875Speter#else
126251875Speter#define APR_HAVE_SYS_SOCKET_H           1
127251875Speter#define APR_HAVE_SYS_SOCKIO_H           1
128251875Speter#define APR_HAVE_SYS_UN_H               1
129251875Speter#endif
130251875Speter#define APR_HAVE_SYS_SIGNAL_H           1
131251875Speter#define APR_HAVE_SYS_TIME_H             1
132251875Speter#define APR_HAVE_SYS_TYPES_H            1
133251875Speter#define APR_HAVE_SYS_UIO_H              1
134251875Speter#define APR_HAVE_SYS_WAIT_H             1
135251875Speter#define APR_HAVE_TIME_H                 1
136251875Speter#define APR_HAVE_UNISTD_H               1
137251875Speter
138251875Speter#define APR_HAVE_SHMEM_MMAP_TMP         0
139251875Speter#define APR_HAVE_SHMEM_MMAP_SHM         0
140251875Speter#define APR_HAVE_SHMEM_MMAP_ZERO        0
141251875Speter#define APR_HAVE_SHMEM_SHMGET_ANON      0
142251875Speter#define APR_HAVE_SHMEM_SHMGET           0
143251875Speter#define APR_HAVE_SHMEM_MMAP_ANON        0
144251875Speter#define APR_HAVE_SHMEM_BEOS             0
145251875Speter
146251875Speter#define APR_USE_SHMEM_MMAP_TMP          0
147251875Speter#define APR_USE_SHMEM_MMAP_SHM          0
148251875Speter#define APR_USE_SHMEM_MMAP_ZERO         0
149251875Speter#define APR_USE_SHMEM_SHMGET_ANON       0
150251875Speter#define APR_USE_SHMEM_SHMGET            0
151251875Speter#define APR_USE_SHMEM_MMAP_ANON         0
152251875Speter#define APR_USE_SHMEM_BEOS              0
153251875Speter
154251875Speter#define APR_USE_FLOCK_SERIALIZE         0
155251875Speter#define APR_USE_SYSVSEM_SERIALIZE       0
156251875Speter#define APR_USE_FCNTL_SERIALIZE         0
157251875Speter#define APR_USE_PROC_PTHREAD_SERIALIZE  0
158251875Speter#define APR_USE_PTHREAD_SERIALIZE       0
159251875Speter
160251875Speter#define APR_HAS_FLOCK_SERIALIZE         0
161251875Speter#define APR_HAS_SYSVSEM_SERIALIZE       0
162251875Speter#define APR_HAS_FCNTL_SERIALIZE         0
163251875Speter#define APR_HAS_PROC_PTHREAD_SERIALIZE  0
164251875Speter#define APR_HAS_RWLOCK_SERIALIZE        0
165251875Speter
166251875Speter#define APR_HAS_LOCK_CREATE_NP          0
167251875Speter
168251875Speter#define APR_PROCESS_LOCK_IS_GLOBAL      1
169251875Speter
170251875Speter#define APR_FILE_BASED_SHM              0
171251875Speter
172251875Speter#define APR_HAVE_CORKABLE_TCP           0
173251875Speter#define APR_HAVE_GETRLIMIT              0
174251875Speter#define APR_HAVE_ICONV                  0
175251875Speter#define APR_HAVE_IN_ADDR                1
176251875Speter#define APR_HAVE_INET_ADDR              1
177251875Speter#define APR_HAVE_INET_NETWORK           0
178251875Speter#ifdef NW_BUILD_IPV6
179251875Speter#define APR_HAVE_IPV6                   1
180251875Speter#else
181251875Speter#define APR_HAVE_IPV6                   0
182251875Speter#endif
183362181Sdim#define APR_HAVE_SOCKADDR_UN            0
184251875Speter#define APR_HAVE_MEMCHR                 1
185251875Speter#define APR_HAVE_MEMMOVE                1
186251875Speter#define APR_HAVE_SETRLIMIT              0
187251875Speter#define APR_HAVE_SIGACTION              0
188251875Speter#define APR_HAVE_SIGSUSPEND             0
189251875Speter#define APR_HAVE_SIGWAIT                0
190251875Speter#define APR_HAVE_STRCASECMP             1
191251875Speter#define APR_HAVE_STRDUP                 1
192251875Speter#define APR_HAVE_STRICMP                1
193251875Speter#define APR_HAVE_STRNCASECMP            1
194251875Speter#define APR_HAVE_STRNICMP               1
195251875Speter#define APR_HAVE_STRSTR                 1
196251875Speter#define APR_HAVE_STRUCT_RLIMIT          0
197251875Speter#define APR_HAVE_UNION_SEMUN            0
198251875Speter#define APR_HAVE_SCTP                   0
199251875Speter#define APR_HAVE_IOVEC                  1
200251875Speter
201251875Speter/*  APR Feature Macros */
202251875Speter#define APR_HAS_SHARED_MEMORY           0
203251875Speter#define APR_HAS_THREADS                 1
204251875Speter#define APR_HAS_SENDFILE                0
205251875Speter#define APR_HAS_MMAP                    0
206251875Speter#define APR_HAS_FORK                    0
207251875Speter#define APR_HAS_RANDOM                  1
208251875Speter#define APR_HAS_OTHER_CHILD             0
209251875Speter#define APR_HAS_DSO                     1
210251875Speter#define APR_HAS_SO_ACCEPTFILTER         0
211251875Speter#define APR_HAS_UNICODE_FS              0
212251875Speter#define APR_HAS_PROC_INVOKED            0
213251875Speter#define APR_HAS_USER                    1
214251875Speter#define APR_HAS_LARGE_FILES             1
215251875Speter#define APR_HAS_XTHREAD_FILES           0
216251875Speter#define APR_HAS_OS_UUID                 0
217362181Sdim#define APR_HAS_TIMEDLOCKS              1
218251875Speter
219251875Speter#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0
220251875Speter
221251875Speter/* Netware can poll on files/pipes.
222251875Speter */
223251875Speter#define APR_FILES_AS_SOCKETS            1
224251875Speter
225251875Speter/* This macro indicates whether or not EBCDIC is the native character set.
226251875Speter */
227251875Speter#define APR_CHARSET_EBCDIC              0
228251875Speter
229251875Speter/* Is the TCP_NODELAY socket option inherited from listening sockets?
230251875Speter*/
231251875Speter#define APR_TCP_NODELAY_INHERITED       1
232251875Speter
233251875Speter/* Is the O_NONBLOCK flag inherited from listening sockets?
234251875Speter*/
235251875Speter#define APR_O_NONBLOCK_INHERITED        1
236251875Speter
237251875Speter/* Typedefs that APR needs. */
238251875Speter
239251875Spetertypedef  unsigned char     apr_byte_t;
240251875Speter
241251875Spetertypedef  short             apr_int16_t;
242251875Spetertypedef  unsigned short    apr_uint16_t;
243251875Speter
244251875Spetertypedef  int               apr_int32_t;
245251875Spetertypedef  unsigned int      apr_uint32_t;
246251875Speter
247251875Spetertypedef  long long          apr_int64_t;
248251875Spetertypedef  unsigned long long apr_uint64_t;
249251875Speter
250251875Spetertypedef  size_t            apr_size_t;
251251875Spetertypedef  ssize_t           apr_ssize_t;
252251875Speter#if APR_HAS_LARGE_FILES
253251875Spetertypedef  off64_t           apr_off_t;
254251875Speter#else
255251875Spetertypedef  off_t             apr_off_t;
256251875Speter#endif
257251875Speter#ifdef USE_WINSOCK
258251875Spetertypedef  int               apr_socklen_t;
259251875Speter#else
260251875Spetertypedef  size_t            apr_socklen_t;
261251875Speter#endif
262251875Spetertypedef  apr_uint64_t      apr_ino_t;
263251875Speter
264251875Speter/* Are we big endian? */
265251875Speter/* XXX: Fatal assumption on Alpha platforms */
266251875Speter#define APR_IS_BIGENDIAN        0
267251875Speter
268251875Speter#ifdef UNKNOWN_NETWARE_64BIT_FLAG_NEEDED
269251875Speter#define APR_SIZEOF_VOIDP   8
270251875Speter#else
271251875Speter#define APR_SIZEOF_VOIDP   4
272251875Speter#endif
273251875Speter
274251875Speter#if APR_SIZEOF_VOIDP == 8
275251875Spetertypedef  apr_uint64_t            apr_uintptr_t;
276251875Speter#else
277251875Spetertypedef  apr_uint32_t            apr_uintptr_t;
278251875Speter#endif
279251875Speter
280251875Speter/* Mechanisms to properly type numeric literals */
281251875Speter#define APR_INT64_C(val) (val##LL)
282251875Speter#define APR_UINT64_C(val) (val##ULL)
283251875Speter
284251875Speter#ifdef INT16_MIN
285251875Speter#define APR_INT16_MIN   INT16_MIN
286251875Speter#else
287251875Speter#define APR_INT16_MIN   (-0x7fff - 1)
288251875Speter#endif
289251875Speter
290251875Speter#ifdef INT16_MAX
291251875Speter#define APR_INT16_MAX  INT16_MAX
292251875Speter#else
293251875Speter#define APR_INT16_MAX   (0x7fff)
294251875Speter#endif
295251875Speter
296251875Speter#ifdef UINT16_MAX
297251875Speter#define APR_UINT16_MAX  UINT16_MAX
298251875Speter#else
299251875Speter#define APR_UINT16_MAX  (0xffff)
300251875Speter#endif
301251875Speter
302251875Speter#ifdef INT32_MIN
303251875Speter#define APR_INT32_MIN   INT32_MIN
304251875Speter#else
305251875Speter#define APR_INT32_MIN   (-0x7fffffff - 1)
306251875Speter#endif
307251875Speter
308251875Speter#ifdef INT32_MAX
309251875Speter#define APR_INT32_MAX  INT32_MAX
310251875Speter#else
311251875Speter#define APR_INT32_MAX  0x7fffffff
312251875Speter#endif
313251875Speter
314251875Speter#ifdef UINT32_MAX
315251875Speter#define APR_UINT32_MAX  UINT32_MAX
316251875Speter#else
317251875Speter#define APR_UINT32_MAX  (0xffffffffU)
318251875Speter#endif
319251875Speter
320251875Speter#ifdef INT64_MIN
321251875Speter#define APR_INT64_MIN   INT64_MIN
322251875Speter#else
323251875Speter#define APR_INT64_MIN   (APR_INT64_C(-0x7fffffffffffffff) - 1)
324251875Speter#endif
325251875Speter
326251875Speter#ifdef INT64_MAX
327251875Speter#define APR_INT64_MAX   INT64_MAX
328251875Speter#else
329251875Speter#define APR_INT64_MAX   APR_INT64_C(0x7fffffffffffffff)
330251875Speter#endif
331251875Speter
332251875Speter#ifdef UINT64_MAX
333251875Speter#define APR_UINT64_MAX  UINT64_MAX
334251875Speter#else
335251875Speter#define APR_UINT64_MAX  APR_UINT64_C(0xffffffffffffffff)
336251875Speter#endif
337251875Speter
338251875Speter#define APR_SIZE_MAX    (~((apr_size_t)0))
339251875Speter
340251875Speter/* PROC mutex is a GLOBAL mutex on Netware */
341251875Speter#define APR_PROC_MUTEX_IS_GLOBAL      1
342251875Speter
343251875Speter/* Definitions that APR programs need to work properly. */
344251875Speter
345251875Speter/**
346251875Speter * APR public API wrap for C++ compilers.
347251875Speter */
348251875Speter#ifdef __cplusplus
349251875Speter#define APR_BEGIN_DECLS     extern "C" {
350251875Speter#define APR_END_DECLS       }
351251875Speter#else
352251875Speter#define APR_BEGIN_DECLS
353251875Speter#define APR_END_DECLS
354251875Speter#endif
355251875Speter
356251875Speter/**
357251875Speter * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC,
358251875Speter * so that they follow the platform's calling convention.
359251875Speter * @example
360251875Speter */
361251875Speter/** void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
362251875Speter */
363251875Speter#define APR_THREAD_FUNC
364251875Speter
365251875Speter/**
366251875Speter * The public APR functions are declared with APR_DECLARE(), so they may
367251875Speter * use the most appropriate calling convention.  Public APR functions with
368251875Speter * variable arguments must use APR_DECLARE_NONSTD().
369251875Speter *
370251875Speter * @remark Both the declaration and implementations must use the same macro.
371251875Speter * @example
372251875Speter */
373251875Speter/** APR_DECLARE(rettype) apr_func(args)
374251875Speter * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA
375251875Speter * @remark Note that when APR compiles the library itself, it passes the
376251875Speter * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32)
377251875Speter * to export public symbols from the dynamic library build.\n
378251875Speter * The user must define the APR_DECLARE_STATIC when compiling to target
379251875Speter * the static APR library on some platforms (e.g. Win32.)  The public symbols
380251875Speter * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n
381251875Speter * By default, compiling an application and including the APR public
382251875Speter * headers, without defining APR_DECLARE_STATIC, will prepare the code to be
383251875Speter * linked to the dynamic library.
384251875Speter */
385251875Speter#define APR_DECLARE(type)            type
386251875Speter
387251875Speter/**
388251875Speter * The public APR functions using variable arguments are declared with
389251875Speter * APR_DECLARE_NONSTD(), as they must follow the C language calling convention.
390251875Speter * @see APR_DECLARE @see APR_DECLARE_DATA
391251875Speter * @remark Both the declaration and implementations must use the same macro.
392251875Speter * @example
393251875Speter */
394251875Speter/** APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
395251875Speter */
396251875Speter#define APR_DECLARE_NONSTD(type)     type
397251875Speter
398251875Speter/**
399251875Speter * The public APR variables are declared with APR_DECLARE_DATA.
400251875Speter * This assures the appropriate indirection is invoked at compile time.
401251875Speter * @see APR_DECLARE @see APR_DECLARE_NONSTD
402251875Speter * @remark Note that the declaration and implementations use different forms,
403251875Speter * but both must include the macro.
404251875Speter * @example
405251875Speter */
406251875Speter/** extern APR_DECLARE_DATA type apr_variable;\n
407251875Speter * APR_DECLARE_DATA type apr_variable = value;
408251875Speter */
409251875Speter#define APR_DECLARE_DATA
410251875Speter
411251875Speter#define APR_SSIZE_T_FMT          "d"
412251875Speter
413251875Speter#define APR_SIZE_T_FMT           "d"
414251875Speter
415251875Speter#if APR_HAS_LARGE_FILES
416251875Speter#define APR_OFF_T_FMT            "lld"
417251875Speter#else
418251875Speter#define APR_OFF_T_FMT            "ld"
419251875Speter#endif
420251875Speter
421251875Speter#define APR_PID_T_FMT            "d"
422251875Speter
423251875Speter/* Local machine definition for console and log output. */
424251875Speter#define APR_EOL_STR              "\r\n"
425251875Speter
426251875Spetertypedef int apr_wait_t;
427251875Speter
428251875Speter#define APR_PATH_MAX PATH_MAX
429251875Speter
430251875Speter#define APR_DSOPATH "PATH"
431251875Speter
432251875Speter#define APR_INT64_T_FMT          "lld"
433251875Speter#define APR_UINT64_T_FMT         "llu"
434251875Speter#define APR_UINT64_T_HEX_FMT     "llx"
435251875Speter#define APR_TIME_T_FMT APR_INT64_T_FMT
436251875Speter
437251875Speter/** @} */
438251875Speter
439251875Speter#ifdef __cplusplus
440251875Speter}
441251875Speter#endif
442251875Speter
443251875Speter#endif /* NETWARE */
444251875Speter
445251875Speter#endif /* APR_H */
446