123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #ifndef INT_ENDIANNESS_H
- #define INT_ENDIANNESS_H
- #if defined(__SVR4) && defined(__sun)
- #include <sys/byteorder.h>
- #if defined(_BIG_ENDIAN)
- #define _YUGA_LITTLE_ENDIAN 0
- #define _YUGA_BIG_ENDIAN 1
- #elif defined(_LITTLE_ENDIAN)
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #else
- #error "unknown endianness"
- #endif
- #endif
- #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
- defined(__minix)
- #include <sys/endian.h>
- #if _BYTE_ORDER == _BIG_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 0
- #define _YUGA_BIG_ENDIAN 1
- #elif _BYTE_ORDER == _LITTLE_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #endif
- #endif
- #if defined(__OpenBSD__) || defined(__Bitrig__)
- #include <machine/endian.h>
- #if _BYTE_ORDER == _BIG_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 0
- #define _YUGA_BIG_ENDIAN 1
- #elif _BYTE_ORDER == _LITTLE_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #endif
- #endif
- #if defined(__APPLE__) || defined(__ellcc__ )
- #ifdef __BIG_ENDIAN__
- #if __BIG_ENDIAN__
- #define _YUGA_LITTLE_ENDIAN 0
- #define _YUGA_BIG_ENDIAN 1
- #endif
- #endif
- #ifdef __LITTLE_ENDIAN__
- #if __LITTLE_ENDIAN__
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #endif
- #endif
- #endif
- #if defined(__linux__)
- #include <endian.h>
- #if __BYTE_ORDER == __BIG_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 0
- #define _YUGA_BIG_ENDIAN 1
- #elif __BYTE_ORDER == __LITTLE_ENDIAN
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #endif
- #endif
- #if defined(_WIN32)
- #define _YUGA_LITTLE_ENDIAN 1
- #define _YUGA_BIG_ENDIAN 0
- #endif
- #if !defined(_YUGA_LITTLE_ENDIAN) || !defined(_YUGA_BIG_ENDIAN)
- #error Unable to determine endian
- #endif
- #endif
|