1cbaf69658146279a557283f757f39ab8157f7391Randall Spangler/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 2cbaf69658146279a557283f757f39ab8157f7391Randall Spangler * Use of this source code is governed by a BSD-style license that can be 3cbaf69658146279a557283f757f39ab8157f7391Randall Spangler * found in the LICENSE file. 4cbaf69658146279a557283f757f39ab8157f7391Randall Spangler */ 5cbaf69658146279a557283f757f39ab8157f7391Randall Spangler 6f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#ifndef VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ 7f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#define VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ 8f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 9f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson// Newer distros already have this. For those that don't, we add it here. 1005987b159acb9737707b9ef92b818ac434ef8c3dDavid Riley#ifndef HAVE_MACOS 11f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#include <endian.h> 1205987b159acb9737707b9ef92b818ac434ef8c3dDavid Riley#endif 13f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 14f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#ifndef le16toh 15f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 1605987b159acb9737707b9ef92b818ac434ef8c3dDavid Riley#ifndef HAVE_MACOS 17f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# include <byteswap.h> 1805987b159acb9737707b9ef92b818ac434ef8c3dDavid Riley#endif 19f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 20f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# if __BYTE_ORDER == __LITTLE_ENDIAN 21f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe16(x) __bswap_16 (x) 22f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole16(x) (x) 23f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be16toh(x) __bswap_16 (x) 24f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le16toh(x) (x) 25f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 26f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe32(x) __bswap_32 (x) 27f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole32(x) (x) 28f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be32toh(x) __bswap_32 (x) 29f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le32toh(x) (x) 30f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 31f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe64(x) __bswap_64 (x) 32f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole64(x) (x) 33f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be64toh(x) __bswap_64 (x) 34f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le64toh(x) (x) 35f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# else 36f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe16(x) (x) 37f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole16(x) __bswap_16 (x) 38f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be16toh(x) (x) 39f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le16toh(x) __bswap_16 (x) 40f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 41f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe32(x) (x) 42f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole32(x) __bswap_32 (x) 43f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be32toh(x) (x) 44f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le32toh(x) __bswap_32 (x) 45f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 46f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htobe64(x) (x) 47f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define htole64(x) __bswap_64 (x) 48f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define be64toh(x) (x) 49f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# define le64toh(x) __bswap_64 (x) 50f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson# endif 51f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson 52f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#endif 53f1372d9109d638fbb1a177a89ebaf64e7ee0637eBill Richardson#endif // VBOOT_REFERENCE_UTILITY_CGPT_ENDIAN_H_ 54