00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _ASTERISK_ENDIAN_H
00024 #define _ASTERISK_ENDIAN_H
00025
00026
00027
00028
00029
00030 #include "asterisk/compat.h"
00031
00032 #ifndef __BYTE_ORDER
00033 #ifdef __linux__
00034 #include <endian.h>
00035 #elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
00036 #if defined(__OpenBSD__)
00037 #include <machine/types.h>
00038 #endif
00039 #include <machine/endian.h>
00040 #define __BYTE_ORDER BYTE_ORDER
00041 #define __LITTLE_ENDIAN LITTLE_ENDIAN
00042 #define __BIG_ENDIAN BIG_ENDIAN
00043 #else
00044 #ifdef __LITTLE_ENDIAN__
00045 #define __BYTE_ORDER __LITTLE_ENDIAN
00046 #endif
00047
00048 #if defined(i386) || defined(__i386__)
00049 #define __BYTE_ORDER __LITTLE_ENDIAN
00050 #endif
00051
00052 #if defined(sun) && defined(unix) && defined(sparc)
00053 #define __BYTE_ORDER __BIG_ENDIAN
00054 #endif
00055
00056 #endif
00057
00058 #endif
00059
00060 #ifndef __BYTE_ORDER
00061 #error Need to know endianess
00062 #endif
00063
00064 #endif
00065