From 76a2110b473c12eb7a9c9e5d15d54309db5f8b9c Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 18 Apr 2016 15:29:21 +0200 Subject: BSD compatibility for Introduce to let target based customization of via * _LITTLE_ENDIAN, * _BIG_ENDIAN, * _PDP_ENDIAN, and * _BYTE_ORDER. defines. Add definitions expected by FreeBSD to like * _QUAD_HIGHWORD, * _QUAD_LOWWORD, * __bswap16(), * __bswap32(), * __bswap64(), * __htonl(), * __htons(), * __ntohl(), and * __ntohs(). Also, if __BSD_VISIBLE * LITTLE_ENDIAN, * BIG_ENDIAN, * PDP_ENDIAN, and * BYTE_ORDER. Targets that define __machine_host_to_from_network_defined in must provide their own implementation of * __htonl(), * __htons(), * __ntohl(), and * __ntohs(), otherwise a default implementation is provided by . In case of GCC defines to builtins are used. Signed-off-by: Sebastian Huber --- winsup/cygwin/include/asm/byteorder.h | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) (limited to 'winsup/cygwin/include/asm/byteorder.h') diff --git a/winsup/cygwin/include/asm/byteorder.h b/winsup/cygwin/include/asm/byteorder.h index 4f5d7cb59..14529bfa2 100644 --- a/winsup/cygwin/include/asm/byteorder.h +++ b/winsup/cygwin/include/asm/byteorder.h @@ -11,9 +11,8 @@ details. */ #ifndef _I386_BYTEORDER_H #define _I386_BYTEORDER_H -#include <_ansi.h> #include -#include +#include #ifdef __cplusplus extern "C" { @@ -28,37 +27,16 @@ extern uint16_t ntohs(uint16_t); extern uint32_t htonl(uint32_t); extern uint16_t htons(uint16_t); -_ELIDABLE_INLINE uint32_t __ntohl(uint32_t); -_ELIDABLE_INLINE uint16_t __ntohs(uint16_t); - -_ELIDABLE_INLINE uint32_t -__ntohl(uint32_t x) -{ - __asm__("bswap %0" : "=r" (x) : "0" (x)); - return x; -} - #define __constant_ntohl(x) \ ((uint32_t)((((uint32_t)(x) & 0x000000ffU) << 24) | \ (((uint32_t)(x) & 0x0000ff00U) << 8) | \ (((uint32_t)(x) & 0x00ff0000U) >> 8) | \ (((uint32_t)(x) & 0xff000000U) >> 24))) -_ELIDABLE_INLINE uint16_t -__ntohs(uint16_t x) -{ - __asm__("xchgb %b0,%h0" /* swap bytes */ - : "=Q" (x) - : "0" (x)); - return x; -} - #define __constant_ntohs(x) \ ((uint16_t)((((uint16_t)(x) & 0x00ff) << 8) | \ (((uint16_t)(x) & 0xff00) >> 8))) \ -#define __htonl(x) __ntohl(x) -#define __htons(x) __ntohs(x) #define __constant_htonl(x) __constant_ntohl(x) #define __constant_htons(x) __constant_ntohs(x) -- cgit v1.2.3