| /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ |
| #define VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ |
| |
| // Newer distros already have this. For those that don't, we add it here. |
| #ifndef HAVE_MACOS |
| #include <endian.h> |
| #endif |
| |
| #ifndef le16toh |
| |
| #ifndef HAVE_MACOS |
| # include <byteswap.h> |
| #endif |
| |
| # if __BYTE_ORDER == __LITTLE_ENDIAN |
| # define htobe16(x) __bswap_16 (x) |
| # define htole16(x) (x) |
| # define be16toh(x) __bswap_16 (x) |
| # define le16toh(x) (x) |
| |
| # define htobe32(x) __bswap_32 (x) |
| # define htole32(x) (x) |
| # define be32toh(x) __bswap_32 (x) |
| # define le32toh(x) (x) |
| |
| # define htobe64(x) __bswap_64 (x) |
| # define htole64(x) (x) |
| # define be64toh(x) __bswap_64 (x) |
| # define le64toh(x) (x) |
| # else |
| # define htobe16(x) (x) |
| # define htole16(x) __bswap_16 (x) |
| # define be16toh(x) (x) |
| # define le16toh(x) __bswap_16 (x) |
| |
| # define htobe32(x) (x) |
| # define htole32(x) __bswap_32 (x) |
| # define be32toh(x) (x) |
| # define le32toh(x) __bswap_32 (x) |
| |
| # define htobe64(x) (x) |
| # define htole64(x) __bswap_64 (x) |
| # define be64toh(x) (x) |
| # define le64toh(x) __bswap_64 (x) |
| # endif |
| |
| #endif |
| #endif // VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ |