xref: /freebsd/contrib/lib9p/apple_endian.h (revision 848ee2a3a8b47c9905fc51fefcf60eb371edbb98)
1 #ifndef _APPLE_ENDIAN_H
2 #define _APPLE_ENDIAN_H
3 
4 /*
5  * Shims to make Apple's endian headers and macros compatible
6  * with <sys/endian.h> (which is awful).
7  */
8 
9 # include <libkern/OSByteOrder.h>
10 
11 # define _LITTLE_ENDIAN 0x12345678
12 # define _BIG_ENDIAN 0x87654321
13 
14 # ifdef __LITTLE_ENDIAN__
15 #  define _BYTE_ORDER _LITTLE_ENDIAN
16 # endif
17 # ifdef __BIG_ENDIAN__
18 #  define _BYTE_ORDER _BIG_ENDIAN
19 # endif
20 
21 # define htole32(x)	OSSwapHostToLittleInt32(x)
22 # define le32toh(x)	OSSwapLittleToHostInt32(x)
23 
24 # define htobe32(x)	OSSwapHostToBigInt32(x)
25 # define be32toh(x)	OSSwapBigToHostInt32(x)
26 
27 #endif /* _APPLE_ENDIAN_H */
28