xref: /freebsd/contrib/lib9p/apple_endian.h (revision 134e17798c9af53632b372348ab828e75e65bf46)
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