55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
/* 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_CGPT_ENDIAN_H_
|
|
#define VBOOT_REFERENCE_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_CGPT_ENDIAN_H_ */
|