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