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