Avoid errors when compiling out of tree modules like asterisk-addons.
[asterisk/asterisk.git] / include / asterisk / compat.h
1 /*
2  * Asterisk -- A telephony toolkit for Linux.
3  * 
4  * Copyright (C) 1999-2006, Digium, Inc.
5  *
6  * Mark Spencer <markster@digium.com>
7  *
8  * This program is free software, distributed under the terms of
9  * the GNU General Public License
10  */
11
12 /*! \file
13  * \brief General Definitions for Asterisk top level program
14  */
15
16 #ifndef _COMPAT_H
17 #define _COMPAT_H
18
19 #include "asterisk/autoconfig.h"
20 #include <inttypes.h>
21 #include <sys/types.h>
22 #include <stdarg.h>
23
24 #if !defined(HAVE_ASPRINTF) && !defined(__AST_DEBUG_MALLOC)
25 int asprintf(char **str, const char *fmt, ...);
26 #endif
27
28 #ifndef HAVE_GETLOADAVG
29 int getloadavg(double *list, int nelem);
30 #endif
31
32 #ifndef HAVE_SETENV
33 int setenv(const char *name, const char *value, int overwrite);
34 #endif
35
36 #ifndef HAVE_STRCASESTR
37 char *strcasestr(const char *, const char *);
38 #endif
39
40 #if !defined(HAVE_STRNDUP) && !defined(__AST_DEBUG_MALLOC)
41 char *strndup(const char *, size_t);
42 #endif
43
44 #ifndef HAVE_STRNLEN
45 size_t strnlen(const char *, size_t);
46 #endif
47
48 #ifndef HAVE_STRSEP
49 char* strsep(char** str, const char* delims);
50 #endif
51
52 #ifndef HAVE_STRTOQ
53 uint64_t strtoq(const char *nptr, char **endptr, int base);
54 #endif
55
56 #ifndef HAVE_UNSETENV
57 int unsetenv(const char *name);
58 #endif
59
60 #if !defined(HAVE_VASPRINTF) && !defined(__AST_DEBUG_MALLOC)
61 int vasprintf(char **strp, const char *fmt, va_list ap);
62 #endif
63
64 #ifdef SOLARIS
65 #define __BEGIN_DECLS
66 #define __END_DECLS
67
68 #ifndef __P
69 #define __P(p) p
70 #endif
71
72 #include <alloca.h>
73 #include <strings.h>
74 #include <string.h>
75 #include <pthread.h>
76 #include <sys/stat.h>
77 #include <signal.h>
78 #include <netinet/in.h>
79 #include <dat/dat_platform_specific.h>
80
81 #ifndef BYTE_ORDER
82 #define LITTLE_ENDIAN   1234
83 #define BIG_ENDIAN      4321
84
85 #ifdef __sparc__
86 #define BYTE_ORDER      BIG_ENDIAN
87 #else
88 #define BYTE_ORDER      LITTLE_ENDIAN
89 #endif
90 #endif
91
92 #ifndef __BYTE_ORDER
93 #define __LITTLE_ENDIAN LITTLE_ENDIAN
94 #define __BIG_ENDIAN BIG_ENDIAN
95 #define __BYTE_ORDER BYTE_ORDER
96 #endif
97
98 #ifndef __BIT_TYPES_DEFINED__
99 #define __BIT_TYPES_DEFINED__
100 typedef unsigned char   u_int8_t;
101 typedef unsigned short  u_int16_t;
102 typedef unsigned int    u_int32_t;
103 #endif
104
105 #endif /* SOLARIS */
106
107 #ifdef __CYGWIN__
108 #define _WIN32_WINNT 0x0500
109 #ifndef INET_ADDRSTRLEN
110 #define INET_ADDRSTRLEN  16
111 #endif
112 #ifndef INET6_ADDRSTRLEN
113 #define INET6_ADDRSTRLEN 46
114 #endif
115 #endif /* __CYGWIN__ */
116
117 #ifdef __CYGWIN__
118 typedef unsigned long long uint64_t;
119 #endif
120
121 #endif