aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-03 21:25:08 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-04-03 21:25:08 +0000
commit192f0d9f27c84d43aee2fe82fce7aefb5ec8ed55 (patch)
tree658b310c04dff4836464d460a9f62289504d9570 /include
parent28efcb2a0c090b3880bcc11e97390f534f57d5f8 (diff)
remaining endian.h fixes for FreeBSD (bug #3867)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5368 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rwxr-xr-xinclude/asterisk/endian.h54
1 files changed, 32 insertions, 22 deletions
diff --git a/include/asterisk/endian.h b/include/asterisk/endian.h
index 66f796250..35d20f641 100755
--- a/include/asterisk/endian.h
+++ b/include/asterisk/endian.h
@@ -20,31 +20,41 @@
* Autodetect system endianess
*/
-#if defined( __OpenBSD__ )
-# include <machine/types.h>
-# include <sys/endian.h>
-#elif defined( __FreeBSD__ ) || defined( __NetBSD__ )
-# include <sys/types.h>
-# include <sys/endian.h>
-#elif defined( BSD ) && ( BSD >= 199103 ) || defined(__APPLE__)
-# include <machine/endian.h>
-#elif defined ( SOLARIS )
-# include <solaris-compat/compat.h>
-#elif defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
-# include <endian.h>
-#if !defined(__APPLE__)
-# include <byteswap.h>
-#endif
-#elif defined( linux )
-# include <endian.h>
+#ifdef SOLARIS
+#include "solaris-compat/compat.h"
#endif
-#ifndef BYTE_ORDER
-#define BYTE_ORDER __BYTE_ORDER
-#endif
+#ifndef __BYTE_ORDER
+#ifdef __linux__
+#include <endian.h>
+#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
+#if defined(__OpenBSD__)
+#include <machine/types.h>
+#endif /* __OpenBSD__ */
+#include <machine/endian.h>
+#define __BYTE_ORDER BYTE_ORDER
+#define __LITTLE_ENDIAN LITTLE_ENDIAN
+#define __BIG_ENDIAN BIG_ENDIAN
+#else
+#ifdef __LITTLE_ENDIAN__
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif /* __LITTLE_ENDIAN */
+
+#if defined(i386) || defined(__i386__)
+#define __BYTE_ORDER __LITTLE_ENDIAN
+#endif /* defined i386 */
+
+#if defined(sun) && defined(unix) && defined(sparc)
+#define __BYTE_ORDER __BIG_ENDIAN
+#endif /* sun unix sparc */
+
+#endif /* linux */
+
+#endif /* __BYTE_ORDER */
#ifndef __BYTE_ORDER
-#error Endianess needs to be defined
-#endif
+#error Need to know endianess
+#endif /* __BYTE_ORDER */
+
#endif /* _ASTERISK_ENDIAN_H */