oops :-)
[asterisk/asterisk.git] / include / asterisk / compat.h
1 /*
2  * Asterisk -- A telephony toolkit for Linux.
3  *
4  * General Definitions for Asterisk top level program
5  * 
6  * Copyright (C) 1999-2005, Mark Spencer
7  *
8  * Mark Spencer <markster@digium.com>
9  *
10  * This program is free software, distributed under the terms of
11  * the GNU General Public License
12  */
13
14 #ifndef _COMPAT_H
15 #define _COMPAT_H
16
17 #ifdef SOLARIS
18 #define __BEGIN_DECLS
19 #define __END_DECLS
20
21 #ifndef __P
22 #define __P(p) p
23 #endif
24
25 #include <alloca.h>
26 #include <strings.h>
27 #include <string.h>
28 #include <pthread.h>
29 #include <sys/stat.h>
30 #include <signal.h>
31 #include <netinet/in.h>
32
33 #ifndef BYTE_ORDER
34 #define LITTLE_ENDIAN   1234
35 #define BIG_ENDIAN      4321
36
37 #ifdef __sparc__
38 #define BYTE_ORDER      BIG_ENDIAN
39 #else
40 #define BYTE_ORDER      LITTLE_ENDIAN
41 #endif
42 #endif
43
44 #ifndef __BYTE_ORDER
45 #define __LITTLE_ENDIAN LITTLE_ENDIAN
46 #define __BIG_ENDIAN BIG_ENDIAN
47 #define __BYTE_ORDER BYTE_ORDER
48 #endif
49
50 #ifndef __BIT_TYPES_DEFINED__
51 #define __BIT_TYPES_DEFINED__
52 typedef unsigned char   u_int8_t;
53 typedef unsigned short  u_int16_t;
54 typedef unsigned int    u_int32_t;
55 #endif
56
57 char* strsep(char** str, const char* delims);
58 int setenv(const char *name, const char *value, int overwrite);
59 int unsetenv(const char *name);
60 #endif /* SOLARIS */
61
62 #ifdef __CYGWIN__
63 #define _WIN32_WINNT 0x0500
64 #include <windows.h>
65 #include <w32api/ws2tcpip.h>
66 #endif /* __CYGWIN__ */
67
68 #define HAVE_VASPRINTF
69 #define HAVE_STRTOQ
70
71 #ifdef __linux__
72 #define HAVE_STRCASESTR
73 #define HAVE_STRNDUP
74 #define HAVE_STRNLEN
75 #endif
76
77 #ifdef SOLARIS
78 #undef HAVE_VASPRINTF
79 #undef HAVE_STRTOQ
80 #endif
81
82 #ifdef __CYGWIN__
83 #undef HAVE_STRTOQ
84 typedef unsigned long long uint64_t;
85 #endif
86
87 #endif