1 /* Copyright 2010 The ChromiumOS Authors 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. 4 */ 5 6 #ifndef VBOOT_REFERENCE_CGPT_ENDIAN_H_ 7 #define VBOOT_REFERENCE_CGPT_ENDIAN_H_ 8 9 // Newer distros already have this. For those that don't, we add it here. 10 #if !defined(HAVE_MACOS) && !defined(__FreeBSD__) 11 #include <endian.h> 12 #elif defined(__FreeBSD__) 13 #include <sys/endian.h> 14 #endif 15 16 #ifndef le16toh 17 18 #ifndef HAVE_MACOS 19 # include <byteswap.h> 20 #endif 21 22 # if __BYTE_ORDER == __LITTLE_ENDIAN 23 # define htobe16(x) __bswap_16 (x) 24 # define htole16(x) (x) 25 # define be16toh(x) __bswap_16 (x) 26 # define le16toh(x) (x) 27 28 # define htobe32(x) __bswap_32 (x) 29 # define htole32(x) (x) 30 # define be32toh(x) __bswap_32 (x) 31 # define le32toh(x) (x) 32 33 # define htobe64(x) __bswap_64 (x) 34 # define htole64(x) (x) 35 # define be64toh(x) __bswap_64 (x) 36 # define le64toh(x) (x) 37 # else 38 # define htobe16(x) (x) 39 # define htole16(x) __bswap_16 (x) 40 # define be16toh(x) (x) 41 # define le16toh(x) __bswap_16 (x) 42 43 # define htobe32(x) (x) 44 # define htole32(x) __bswap_32 (x) 45 # define be32toh(x) (x) 46 # define le32toh(x) __bswap_32 (x) 47 48 # define htobe64(x) (x) 49 # define htole64(x) __bswap_64 (x) 50 # define be64toh(x) (x) 51 # define le64toh(x) __bswap_64 (x) 52 # endif 53 54 #endif 55 56 #endif /* VBOOT_REFERENCE_CGPT_ENDIAN_H_ */ 57