00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PENDIAN_H
00021 #define PENDIAN_H
00022
00023
00024
00025 #include "PortPrefix.h"
00026 #include "ptypes.h"
00027
00028 #ifdef __sgi
00029 #include <sys/endian.h>
00030
00031 #elif defined(__sparc)
00032 #include <sys/isa_defs.h>
00033 #ifdef __LITTLE_ENDIAN
00034 #define __LITTLE_ENDIAN 1234
00035 #define __BYTE_ORDER __LITTLE_ENDIAN
00036 #elif defined(_BIG_ENDIAN)
00037 #define __BIG_ENDIAN 4321
00038 #define __BYTE_ORDER __BIG_ENDIAN
00039 #endif
00040
00041 #elif defined(ANDROID)
00042
00043 #ifdef HAVE_ENDIAN
00044 #include <endian.h>
00045
00046 #elif defined(HAVE_LITTLE_ENDIAN)
00047 #define __LITTLE_ENDIAN 1234
00048 #define __BYTE_ORDER __LITTLE_ENDIAN
00049
00050 #elif defined(HAVE_BIG_ENDIAN)
00051 #define __BIG_ENDIAN 4321
00052 #define __BYTE_ORDER __BIG_ENDIAN
00053
00054 #endif
00055
00056 #elif defined (__linux)
00057 #include <endian.h>
00058
00059 #elif defined(__FreeBSD__) || defined(_decunix_)
00060 #include <machine/endian.h>
00061
00062 #elif defined(__i386) || defined(_M_IX86)
00063 #undef __LITTLE_ENDIAN
00064 #define __LITTLE_ENDIAN 1234
00065 #define __BYTE_ORDER __LITTLE_ENDIAN
00066
00067 #elif defined(_sh4_)||defined(SH4)
00068 #if defined (__vxworks)
00069 #if _BYTE_ORDER == _LITTLE_ENDIAN
00070 #undef __LITTLE_ENDIAN
00071 #define __LITTLE_ENDIAN 1234
00072 #define __BYTE_ORDER __LITTLE_ENDIAN
00073 #elif _BYTE_ORDER == _BIG_ENDIAN
00074 #undef __BIG_ENDIAN
00075 #define __BIG_ENDIAN 4321
00076 #define __BYTE_ORDER __BIG_ENDIAN
00077 #else
00078 #error
00079 #endif
00080 #else
00081 #error "Could not determine endianness of the machine Unknown OS for SH4 Chip."
00082 #endif
00083
00084 #else
00085 #error "Could not determine endianness of the machine Chip Not Known."
00086 #endif
00087
00088
00102 PORTABLE_API void swap_byte_order(void *buffer,
00103 size_t count,
00104 size_t itemSize);
00105
00110 #endif