Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowi@redhat.com>2017-02-09 02:01:34 +0300
committerYaakov Selkowitz <yselkowi@redhat.com>2017-02-09 02:01:34 +0300
commite704ab2470159b7d8b6a02e8482bb5b38215ac9a (patch)
tree77ff789b0190d36bbbf3d1ee7c2e59945536e6dd
parent0eeb4c1d32aab0dbfd2a8f20aa326ae2d98ca1c6 (diff)
Cygwin: create separate bits/byteswap.h
Match glibc behaviour to expose the public bswap_* macros only with an explicity #include <byteswap.h>; #include'ing <endian.h> should not expose them. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
-rw-r--r--winsup/cygwin/include/bits/byteswap.h37
-rw-r--r--winsup/cygwin/include/byteswap.h25
-rw-r--r--winsup/cygwin/include/endian.h26
3 files changed, 51 insertions, 37 deletions
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 <bits/byteswap.h>
#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 <byteswap.h>
+#include <bits/byteswap.h>
#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*/