From a8d664f336f5ad64259642eabfa0f640cd8f9206 Mon Sep 17 00:00:00 2001 From: corinna Date: Fri, 20 Aug 2010 12:18:46 +0000 Subject: [PATCH] * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, htole16, htole32, htole64, le16toh, le32toh, le64toh): Define. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/include/endian.h | 49 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6982493cb7..7ec9799742 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2010-08-20 Pedro Izecksohn + + * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, + htole16, htole32, htole64, le16toh, le32toh, le64toh): Define. + 2010-08-20 Corinna Vinschen * fhandler_disk_file.cc (readdir_check_reparse_point): Rename from diff --git a/winsup/cygwin/include/endian.h b/winsup/cygwin/include/endian.h index c8b89d4323..feb002c810 100644 --- a/winsup/cygwin/include/endian.h +++ b/winsup/cygwin/include/endian.h @@ -1,6 +1,6 @@ /* endian.h - Copyright 2005 Red Hat, Inc. + Copyright 2005, 2010 Red Hat, Inc. This file is part of Cygwin. @@ -36,5 +36,52 @@ details. */ #elif __BYTE_ORDER == __BIG_ENDIAN # define __LONG_LONG_PAIR(HI, LO) HI, LO #endif + +#if /*defined __USE_BSD ||*/ ! defined _POSIX_SOURCE + +#include + +#if __BYTE_ORDER == __LITTLE_ENDIAN + +#define htobe16(x) bswap_16(x) +#define htobe32(x) bswap_32(x) +#define htobe64(x) bswap_64(x) + +#define be16toh(x) bswap_16(x) +#define be32toh(x) bswap_32(x) +#define be64toh(x) bswap_64(x) + +#define htole16(x) (x) +#define htole32(x) (x) +#define htole64(x) (x) + +#define le16toh(x) (x) +#define le32toh(x) (x) +#define le64toh(x) (x) + +#endif /*__BYTE_ORDER == __LITTLE_ENDIAN*/ + +#if __BYTE_ORDER == __BIG_ENDIAN + +#define htobe16(x) (x) +#define htobe32(x) (x) +#define htobe64(x) (x) + +#define be16toh(x) (x) +#define be32toh(x) (x) +#define be64toh(x) (x) + +#define htole16(x) bswap_16(x) +#define htole32(x) bswap_32(x) +#define htole64(x) bswap_64(x) + +#define le16toh(x) bswap_16(x) +#define le32toh(x) bswap_32(x) +#define le64toh(x) bswap_64(x) + +#endif /*__BYTE_ORDER == __BIG_ENDIAN*/ + +#endif /*__USE_BSD || !_POSIX_SOURCE*/ + #endif /*_ENDIAN_H_*/ -- 2.11.0