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
00031 #ifndef __BYTE_ORDER
00032 #ifdef __linux__
00033 #include <endian.h>
00034 #elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
00035 #if defined(__OpenBSD__)
00036 #include "asterisk/compat.h"
00037 #endif
00038 #include <machine/endian.h>
00039 #define __BYTE_ORDER BYTE_ORDER
00040 #define __LITTLE_ENDIAN LITTLE_ENDIAN
00041 #define __BIG_ENDIAN BIG_ENDIAN
00042 #else
00043
00044 #ifndef __LITTLE_ENDIAN
00045 #define __LITTLE_ENDIAN 1234
00046 #endif
00047
00048 #ifndef __BIG_ENDIAN
00049 #define __BIG_ENDIAN 4321
00050 #endif
00051
00052 #ifdef __LITTLE_ENDIAN__
00053 #define __BYTE_ORDER __LITTLE_ENDIAN
00054 #endif
00055
00056 #if defined(i386) || defined(__i386__)
00057 #define __BYTE_ORDER __LITTLE_ENDIAN
00058 #endif
00059
00060 #if defined(sun) && defined(unix) && defined(sparc)
00061 #define __BYTE_ORDER __BIG_ENDIAN
00062 #endif
00063
00064 #endif
00065
00066 #endif
00067
00068 #ifndef __BYTE_ORDER
00069 #error Need to know endianess
00070 #endif
00071
00072 #endif
00073