diff options
author | David Troy <dave@popvox.com> | 2006-04-01 17:22:35 +0000 |
---|---|---|
committer | David Troy <dave@popvox.com> | 2006-04-01 17:22:35 +0000 |
commit | a2957dba6e5f8c607a13a66b2489c0c2f41d31f5 (patch) | |
tree | 7964242a761cd9156a21f517c7fd1cee0a0d552d /src/include/endian.h | |
parent | 66304bf4ed08647861e7f14f4afe45be7bdd20b8 (diff) | |
download | astmanproxy-a2957dba6e5f8c607a13a66b2489c0c2f41d31f5.tar.gz astmanproxy-a2957dba6e5f8c607a13a66b2489c0c2f41d31f5.tar.xz astmanproxy-a2957dba6e5f8c607a13a66b2489c0c2f41d31f5.zip |
git-svn-id: http://svncommunity.digium.com/svn/astmanproxy/branches/1.20pre@44 f02b47b9-160a-0410-81a6-dc3441afb0ec
Diffstat (limited to 'src/include/endian.h')
-rw-r--r-- | src/include/endian.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/include/endian.h b/src/include/endian.h new file mode 100644 index 0000000..f5e20fb --- /dev/null +++ b/src/include/endian.h @@ -0,0 +1,60 @@ +/* + * Asterisk -- A telephony toolkit for Linux. + * + * Asterisk architecture endianess compatibility definitions + * + * Copyright (C) 1999 - 2005, Digium, Inc. + * + * Mark Spencer <markster@digium.com> + * + * This program is free software, distributed under the terms of + * the GNU Lesser General Public License. Other components of + * Asterisk are distributed under The GNU General Public License + * only. + */ + +#ifndef _ASTERISK_ENDIAN_H +#define _ASTERISK_ENDIAN_H + +/* + * Autodetect system endianess + */ + +#ifdef SOLARIS +#include "solaris-compat/compat.h" +#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 Need to know endianess +#endif /* __BYTE_ORDER */ + +#endif /* _ASTERISK_ENDIAN_H */ + |