1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 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_UTILITY_CGPT_ENDIAN_H_ 7 #define VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ 8 9 // Newer distros already have this. For those that don't, we add it here. 10 #ifndef HAVE_MACOS 11 #include <endian.h> 12 #endif 13 14 #ifndef le16toh 15 16 #ifndef HAVE_MACOS 17 # include <byteswap.h> 18 #endif 19 20 # if __BYTE_ORDER == __LITTLE_ENDIAN 21 # define htobe16(x) __bswap_16 (x) 22 # define htole16(x) (x) 23 # define be16toh(x) __bswap_16 (x) 24 # define le16toh(x) (x) 25 26 # define htobe32(x) __bswap_32 (x) 27 # define htole32(x) (x) 28 # define be32toh(x) __bswap_32 (x) 29 # define le32toh(x) (x) 30 31 # define htobe64(x) __bswap_64 (x) 32 # define htole64(x) (x) 33 # define be64toh(x) __bswap_64 (x) 34 # define le64toh(x) (x) 35 # else 36 # define htobe16(x) (x) 37 # define htole16(x) __bswap_16 (x) 38 # define be16toh(x) (x) 39 # define le16toh(x) __bswap_16 (x) 40 41 # define htobe32(x) (x) 42 # define htole32(x) __bswap_32 (x) 43 # define be32toh(x) (x) 44 # define le32toh(x) __bswap_32 (x) 45 46 # define htobe64(x) (x) 47 # define htole64(x) __bswap_64 (x) 48 # define be64toh(x) (x) 49 # define le64toh(x) __bswap_64 (x) 50 # endif 51 52 #endif 53 #endif // VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ 54