From: Yaakov Selkowitz Date: Wed, 8 Feb 2017 23:01:34 +0000 (-0600) Subject: Cygwin: create separate bits/byteswap.h X-Git-Tag: cygwin-2_7_0-release~1 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=e704ab2470159b7d8b6a02e8482bb5b38215ac9a;p=newlib-cygwin.git Cygwin: create separate bits/byteswap.h Match glibc behaviour to expose the public bswap_* macros only with an explicity #include ; #include'ing should not expose them. Signed-off-by: Yaakov Selkowitz --- diff --git a/winsup/cygwin/include/bits/byteswap.h b/winsup/cygwin/include/bits/byteswap.h new file mode 100644 index 000000000..20ed5bbe4 --- /dev/null +++ b/winsup/cygwin/include/bits/byteswap.h @@ -0,0 +1,37 @@ +/* bits/byteswap.h + +This file is part of Cygwin. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +#ifndef _BITS_BYTESWAP_H +#define _BITS_BYTESWAP_H + +#ifdef __cplusplus +extern "C" { +#endif + +static __inline unsigned short +__bswap_16 (unsigned short __x) +{ + return (__x >> 8) | (__x << 8); +} + +static __inline unsigned int +__bswap_32 (unsigned int __x) +{ + return (__bswap_16 (__x & 0xffff) << 16) | (__bswap_16 (__x >> 16)); +} + +static __inline unsigned long long +__bswap_64 (unsigned long long __x) +{ + return (((unsigned long long) __bswap_32 (__x & 0xffffffffull)) << 32) | (__bswap_32 (__x >> 32)); +} + +#ifdef __cplusplus +} +#endif +#endif /* _BITS_BYTESWAP_H */ diff --git a/winsup/cygwin/include/byteswap.h b/winsup/cygwin/include/byteswap.h index 5e3f22196..05bb5ca7d 100644 --- a/winsup/cygwin/include/byteswap.h +++ b/winsup/cygwin/include/byteswap.h @@ -9,33 +9,10 @@ details. */ #ifndef _BYTESWAP_H #define _BYTESWAP_H -#ifdef __cplusplus -extern "C" { -#endif - -static __inline unsigned short -__bswap_16 (unsigned short __x) -{ - return (__x >> 8) | (__x << 8); -} - -static __inline unsigned int -__bswap_32 (unsigned int __x) -{ - return (__bswap_16 (__x & 0xffff) << 16) | (__bswap_16 (__x >> 16)); -} - -static __inline unsigned long long -__bswap_64 (unsigned long long __x) -{ - return (((unsigned long long) __bswap_32 (__x & 0xffffffffull)) << 32) | (__bswap_32 (__x >> 32)); -} +#include #define bswap_16(x) __bswap_16(x) #define bswap_32(x) __bswap_32(x) #define bswap_64(x) __bswap_64(x) -#ifdef __cplusplus -} -#endif #endif /* _BYTESWAP_H */ diff --git a/winsup/cygwin/include/endian.h b/winsup/cygwin/include/endian.h index a17ff9917..5a43ad032 100644 --- a/winsup/cygwin/include/endian.h +++ b/winsup/cygwin/include/endian.h @@ -35,17 +35,17 @@ details. */ #if __BSD_VISIBLE -#include +#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 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 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) @@ -67,13 +67,13 @@ details. */ #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 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) +#define le16toh(x) __bswap_16(x) +#define le32toh(x) __bswap_32(x) +#define le64toh(x) __bswap_64(x) #endif /*__BYTE_ORDER == __BIG_ENDIAN*/