cb367844990f69e4bdede9e9d82dee229253d01d
[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 #ifndef HAVE_STRSEP
20 char* strsep(char** str, const char* delims);
21 #endif
22
23 #ifndef HAVE_SETENV
24 int setenv(const char *name, const char *value, int overwrite);
25 #endif
26
27 #ifndef HAVE_UNSETENV
28 int unsetenv(const char *name);
29 #endif
30
31 #ifdef SOLARIS
32 #define __BEGIN_DECLS
33 #define __END_DECLS
34
35 #ifndef __P
36 #define __P(p) p
37 #endif
38
39 #include <alloca.h>
40 #include <strings.h>
41 #include <string.h>
42 #include <pthread.h>
43 #include <sys/stat.h>
44 #include <signal.h>
45 #include <netinet/in.h>
46 #include <dat/dat_platform_specific.h>
47
48 #ifndef BYTE_ORDER
49 #define LITTLE_ENDIAN   1234
50 #define BIG_ENDIAN      4321
51
52 #ifdef __sparc__
53 #define BYTE_ORDER      BIG_ENDIAN
54 #else
55 #define BYTE_ORDER      LITTLE_ENDIAN
56 #endif
57 #endif
58
59 #ifndef __BYTE_ORDER
60 #define __LITTLE_ENDIAN LITTLE_ENDIAN
61 #define __BIG_ENDIAN BIG_ENDIAN
62 #define __BYTE_ORDER BYTE_ORDER
63 #endif
64
65 #ifndef __BIT_TYPES_DEFINED__
66 #define __BIT_TYPES_DEFINED__
67 typedef unsigned char   u_int8_t;
68 typedef unsigned short  u_int16_t;
69 typedef unsigned int    u_int32_t;
70 #endif
71
72 #endif /* SOLARIS */
73
74 #ifdef __CYGWIN__
75 #define _WIN32_WINNT 0x0500
76 #ifndef INET_ADDRSTRLEN
77 #define INET_ADDRSTRLEN  16
78 #endif
79 #ifndef INET6_ADDRSTRLEN
80 #define INET6_ADDRSTRLEN 46
81 #endif
82 #endif /* __CYGWIN__ */
83
84 #ifdef __linux__
85 #include <inttypes.h>
86 #endif
87
88 #ifdef __Darwin__
89 #include <inttypes.h>
90 #endif
91
92 #ifdef __FreeBSD__
93 #include <sys/types.h>
94 #endif
95
96 #ifdef __CYGWIN__
97 typedef unsigned long long uint64_t;
98 #endif
99
100 #endif