1 /* 2 * klibc/endian.h 3 * 4 * Like <endian.h>, but export only double-underscore symbols 5 */ 6 7 #ifndef _KLIBC_ENDIAN_H 8 #define _KLIBC_ENDIAN_H 9 10 #define __LITTLE_ENDIAN /* we're on i386, littleendian */ 11 12 /* Linux' asm/byteorder.h defines either __LITTLE_ENDIAN or 13 __BIG_ENDIAN, but the glibc/BSD-ish macros expect both to be 14 defined with __BYTE_ORDER defining which is actually used... */ 15 16 #if defined(__LITTLE_ENDIAN) 17 # undef __LITTLE_ENDIAN 18 # define __LITTLE_ENDIAN 1234 19 # define __BIG_ENDIAN 4321 20 # define __PDP_ENDIAN 3412 21 # define __BYTE_ORDER __LITTLE_ENDIAN 22 #elif defined(__BIG_ENDIAN) 23 # undef __BIG_ENDIAN 24 # define __LITTLE_ENDIAN 1234 25 # define __BIG_ENDIAN 4321 26 # define __PDP_ENDIAN 3412 27 # define __BYTE_ORDER __BIG_ENDIAN 28 #elif defined(__PDP_ENDIAN) 29 # undef __PDP_ENDIAN 30 # define __LITTLE_ENDIAN 1234 31 # define __BIG_ENDIAN 4321 32 # define __PDP_ENDIAN 3412 33 # define __BYTE_ORDER __PDP_ENDIAN 34 #else 35 # error "Unknown byte order!" 36 #endif 37 38 #endif /* _KLIBC_ENDIAN_H */ 39