diff options
author | Elliott Hughes <enh@google.com> | 2014-12-08 20:32:11 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-12-08 20:35:08 -0800 |
commit | 56e017306eb55c5deea795f89d2fb657757b4164 (patch) | |
tree | 1e5fb8ca5c536803b35d3de3bca638282ecb60f3 /libc | |
parent | aa0002de89ee4753bce6e4d714e5d4cc4d9709eb (diff) | |
download | bionic-56e017306eb55c5deea795f89d2fb657757b4164.zip bionic-56e017306eb55c5deea795f89d2fb657757b4164.tar.gz bionic-56e017306eb55c5deea795f89d2fb657757b4164.tar.bz2 |
Simplify our endian.h implementation.
We can rely on the compiler's builtins. Tested on arm, arm64, mips, x86,
and x86-64.
Change-Id: I0f774ed7e85b3c791a3178d8ef17c6500e6a9ace
Diffstat (limited to 'libc')
-rw-r--r-- | libc/arch-arm/include/machine/endian.h | 75 | ||||
-rw-r--r-- | libc/arch-mips/include/machine/endian.h | 66 | ||||
-rw-r--r-- | libc/arch-x86/include/machine/endian.h | 42 | ||||
-rw-r--r-- | libc/arch-x86_64/include/machine/endian.h | 42 | ||||
-rw-r--r-- | libc/include/arpa/nameser_compat.h | 47 | ||||
-rw-r--r-- | libc/include/machine/endian.h (renamed from libc/arch-arm64/include/machine/endian.h) | 23 | ||||
-rw-r--r-- | libc/include/sys/endian.h | 198 |
7 files changed, 21 insertions, 472 deletions
diff --git a/libc/arch-arm/include/machine/endian.h b/libc/arch-arm/include/machine/endian.h deleted file mode 100644 index 04bba20..0000000 --- a/libc/arch-arm/include/machine/endian.h +++ /dev/null @@ -1,75 +0,0 @@ -/* $OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $ */ - -/* - * Copyright (C) 2010 The Android Open Source Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _ARM_ENDIAN_H_ -#define _ARM_ENDIAN_H_ - -#ifdef __GNUC__ - -/* According to RealView Assembler User's Guide, REV and REV16 are available - * in Thumb code and 16-bit instructions when used in Thumb-2 code. - * - * REV Rd, Rm - * Rd and Rm must both be Lo registers. - * - * REV16 Rd, Rm - * Rd and Rm must both be Lo registers. - * - * The +l constraint takes care of this without constraining us in ARM mode. - */ -#define __swap16md(x) ({ \ - register u_int16_t _x = (x); \ - __asm__ __volatile__("rev16 %0, %0" : "+l" (_x)); \ - _x; \ -}) - -#define __swap32md(x) ({ \ - register u_int32_t _x = (x); \ - __asm__ __volatile__("rev %0, %0" : "+l" (_x)); \ - _x; \ -}) - -#define __swap64md(x) ({ \ - u_int64_t _swap64md_x = (x); \ - (u_int64_t) __swap32md(_swap64md_x >> 32) | \ - (u_int64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \ -}) - -/* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP - -#endif /* __GNUC__ */ - -#define _BYTE_ORDER _LITTLE_ENDIAN -#define __STRICT_ALIGNMENT -#include <sys/types.h> -#include <sys/endian.h> - -#endif /* !_ARM_ENDIAN_H_ */ diff --git a/libc/arch-mips/include/machine/endian.h b/libc/arch-mips/include/machine/endian.h deleted file mode 100644 index 9270e9d..0000000 --- a/libc/arch-mips/include/machine/endian.h +++ /dev/null @@ -1,66 +0,0 @@ -/* $OpenBSD: endian.h,v 1.5 2006/02/27 23:35:59 miod Exp $ */ - -/* - * Copyright (c) 2001-2002 Opsycon AB (www.opsycon.se / www.opsycon.com) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -#ifndef _MIPS64_ENDIAN_H_ -#define _MIPS64_ENDIAN_H_ - -#ifdef __GNUC__ - -#if defined(__mips_isa_rev) && (__mips_isa_rev >= 2) -#define __swap16md(x) ({ \ - register uint16_t _x = (x); \ - register uint16_t _r; \ - __asm volatile ("wsbh %0, %1" : "=r" (_r) : "r" (_x)); \ - _r; \ -}) - -#define __swap32md(x) ({ \ - register uint32_t _x = (x); \ - register uint32_t _r; \ - __asm volatile ("wsbh %0, %1; rotr %0, %0, 16" : "=r" (_r) : "r" (_x)); \ - _r; \ -}) - -#define __swap64md(x) ({ \ - uint64_t _swap64md_x = (x); \ - (uint64_t) __swap32md(_swap64md_x >> 32) | \ - (uint64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \ -}) - -/* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP - -#endif /* __mips32r2__ */ -#endif /* __GNUC__ */ - -#define _BYTE_ORDER _LITTLE_ENDIAN -#define __STRICT_ALIGNMENT -#include <sys/types.h> -#include <sys/endian.h> - -#endif /* _MIPS64_ENDIAN_H_ */ diff --git a/libc/arch-x86/include/machine/endian.h b/libc/arch-x86/include/machine/endian.h deleted file mode 100644 index 5feebd8..0000000 --- a/libc/arch-x86/include/machine/endian.h +++ /dev/null @@ -1,42 +0,0 @@ -/* $OpenBSD: endian.h,v 1.17 2011/03/12 04:03:04 guenther Exp $ */ - -/*- - * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _MACHINE_ENDIAN_H_ -#define _MACHINE_ENDIAN_H_ - -/* Use GCC builtins */ -#define __swap16md(x) __builtin_bswap16(x) -#define __swap32md(x) __builtin_bswap32(x) -#define __swap64md(x) __builtin_bswap64(x) - -/* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP - -#define _BYTE_ORDER _LITTLE_ENDIAN -#include <sys/types.h> -#include <sys/endian.h> - -#endif /* _MACHINE_ENDIAN_H_ */ diff --git a/libc/arch-x86_64/include/machine/endian.h b/libc/arch-x86_64/include/machine/endian.h deleted file mode 100644 index 2c493b2..0000000 --- a/libc/arch-x86_64/include/machine/endian.h +++ /dev/null @@ -1,42 +0,0 @@ -/* $OpenBSD: endian.h,v 1.5 2011/03/12 22:27:48 guenther Exp $ */ - -/*- - * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _MACHINE_ENDIAN_H_ -#define _MACHINE_ENDIAN_H_ - -/* Use GCC builtins */ -#define __swap16md(x) __builtin_bswap16(x) -#define __swap32md(x) __builtin_bswap32(x) -#define __swap64md(x) __builtin_bswap64(x) - -/* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP - -#define _BYTE_ORDER _LITTLE_ENDIAN -#include <sys/types.h> -#include <sys/endian.h> - -#endif /* _MACHINE_ENDIAN_H_ */ diff --git a/libc/include/arpa/nameser_compat.h b/libc/include/arpa/nameser_compat.h index e060f60..539864e 100644 --- a/libc/include/arpa/nameser_compat.h +++ b/libc/include/arpa/nameser_compat.h @@ -44,53 +44,6 @@ #include <endian.h> -#ifndef BYTE_ORDER -#if (BSD >= 199103) -# include <machine/endian.h> -#else -#ifdef __linux__ -# include <endian.h> -#else -#define LITTLE_ENDIAN 1234 /* least-significant byte first (vax, pc) */ -#define BIG_ENDIAN 4321 /* most-significant byte first (IBM, net) */ -#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long (pdp)*/ - -#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \ - defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \ - defined(__i386__) || defined(__i386) || defined(__amd64__) || \ - defined(__x86_64__) || defined(MIPSEL) || defined(_MIPSEL) || \ - defined(BIT_ZERO_ON_RIGHT) || defined(__alpha__) || defined(__alpha) || \ - (defined(__Lynx__) && defined(__x86__)) -#define BYTE_ORDER LITTLE_ENDIAN -#endif - -#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \ - defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \ - defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\ - defined(apollo) || defined(__convex__) || defined(_CRAY) || \ - defined(__hppa) || defined(__hp9000) || \ - defined(__hp9000s300) || defined(__hp9000s700) || \ - defined(__hp3000s900) || defined(__hpux) || defined(MPE) || \ - defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) || \ - (defined(__Lynx__) && \ - (defined(__68k__) || defined(__sparc__) || defined(__powerpc__))) -#define BYTE_ORDER BIG_ENDIAN -#endif -#endif /* __linux */ -#endif /* BSD */ -#endif /* BYTE_ORDER */ - -#if !defined(BYTE_ORDER) || \ - (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \ - BYTE_ORDER != PDP_ENDIAN) - /* you must determine what the correct bit order is for - * your compiler - the next line is an intentional error - * which will force your compiles to bomb until you fix - * the above macros. - */ - #error "Undefined or invalid BYTE_ORDER"; -#endif - /* * Structure for query header. The order of the fields is machine- and * compiler-dependent, depending on the byte/bit order and the layout diff --git a/libc/arch-arm64/include/machine/endian.h b/libc/include/machine/endian.h index b9544af..ac89519 100644 --- a/libc/arch-arm64/include/machine/endian.h +++ b/libc/include/machine/endian.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 The Android Open Source Project + * Copyright (C) 2014 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,23 +26,10 @@ * SUCH DAMAGE. */ -#ifndef _AARCH64_ENDIAN_H_ -#define _AARCH64_ENDIAN_H_ +#ifndef _MACHINE_ENDIAN_H_ +#define _MACHINE_ENDIAN_H_ -#ifdef __GNUC__ - -/* Use GCC builtins */ -#define __swap16md(x) __builtin_bswap16(x) -#define __swap32md(x) __builtin_bswap32(x) -#define __swap64md(x) __builtin_bswap64(x) - -/* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP - -#endif /* __GNUC__ */ - -#define _BYTE_ORDER _LITTLE_ENDIAN -#include <sys/types.h> +/* This file is for BSD source compatibility only. Use <endian.h> or <sys/endian.h> instead. */ #include <sys/endian.h> -#endif /* _AARCH64_ENDIAN_H_ */ +#endif /* _MACHINE_ENDIAN_H_ */ diff --git a/libc/include/sys/endian.h b/libc/include/sys/endian.h index be4c905..c62ba7f 100644 --- a/libc/include/sys/endian.h +++ b/libc/include/sys/endian.h @@ -1,5 +1,3 @@ -/* $OpenBSD: endian.h,v 1.17 2006/01/06 18:53:05 millert Exp $ */ - /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. * @@ -24,155 +22,44 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - * Generic definitions for little- and big-endian systems. Other endianesses - * has to be dealt with in the specific machine/endian.h file for that port. - * - * This file is meant to be included from a little- or big-endian port's - * machine/endian.h after setting _BYTE_ORDER to either 1234 for little endian - * or 4321 for big.. - */ - #ifndef _SYS_ENDIAN_H_ #define _SYS_ENDIAN_H_ #include <sys/cdefs.h> -#include <machine/endian.h> #include <stdint.h> #define _LITTLE_ENDIAN 1234 #define _BIG_ENDIAN 4321 #define _PDP_ENDIAN 3412 +#define _BYTE_ORDER _LITTLE_ENDIAN +#define __LITTLE_ENDIAN_BITFIELD #if __BSD_VISIBLE -#define LITTLE_ENDIAN _LITTLE_ENDIAN -#define BIG_ENDIAN _BIG_ENDIAN -#define PDP_ENDIAN _PDP_ENDIAN -#define BYTE_ORDER _BYTE_ORDER +#define LITTLE_ENDIAN _LITTLE_ENDIAN +#define BIG_ENDIAN _BIG_ENDIAN +#define PDP_ENDIAN _PDP_ENDIAN +#define BYTE_ORDER _BYTE_ORDER #endif -#ifdef __GNUC__ - -#define __swap16gen(x) __statement({ \ - __uint16_t __swap16gen_x = (x); \ - \ - (__uint16_t)((__swap16gen_x & 0xff) << 8 | \ - (__swap16gen_x & 0xff00) >> 8); \ -}) - -#define __swap32gen(x) __statement({ \ - __uint32_t __swap32gen_x = (x); \ - \ - (__uint32_t)((__swap32gen_x & 0xff) << 24 | \ - (__swap32gen_x & 0xff00) << 8 | \ - (__swap32gen_x & 0xff0000) >> 8 | \ - (__swap32gen_x & 0xff000000) >> 24); \ -}) - -#define __swap64gen(x) __statement({ \ - __uint64_t __swap64gen_x = (x); \ - \ - (__uint64_t)((__swap64gen_x & 0xff) << 56 | \ - (__swap64gen_x & 0xff00ULL) << 40 | \ - (__swap64gen_x & 0xff0000ULL) << 24 | \ - (__swap64gen_x & 0xff000000ULL) << 8 | \ - (__swap64gen_x & 0xff00000000ULL) >> 8 | \ - (__swap64gen_x & 0xff0000000000ULL) >> 24 | \ - (__swap64gen_x & 0xff000000000000ULL) >> 40 | \ - (__swap64gen_x & 0xff00000000000000ULL) >> 56); \ -}) - -#else /* __GNUC__ */ - -/* Note that these macros evaluate their arguments several times. */ -#define __swap16gen(x) \ - (__uint16_t)(((__uint16_t)(x) & 0xff) << 8 | ((__uint16_t)(x) & 0xff00) >> 8) - -#define __swap32gen(x) \ - (__uint32_t)(((__uint32_t)(x) & 0xff) << 24 | \ - ((__uint32_t)(x) & 0xff00) << 8 | ((__uint32_t)(x) & 0xff0000) >> 8 |\ - ((__uint32_t)(x) & 0xff000000) >> 24) - -#define __swap64gen(x) \ - (__uint64_t)((((__uint64_t)(x) & 0xff) << 56) | \ - ((__uint64_t)(x) & 0xff00ULL) << 40 | \ - ((__uint64_t)(x) & 0xff0000ULL) << 24 | \ - ((__uint64_t)(x) & 0xff000000ULL) << 8 | \ - ((__uint64_t)(x) & 0xff00000000ULL) >> 8 | \ - ((__uint64_t)(x) & 0xff0000000000ULL) >> 24 | \ - ((__uint64_t)(x) & 0xff000000000000ULL) >> 40 | \ - ((__uint64_t)(x) & 0xff00000000000000ULL) >> 56) - -#endif /* __GNUC__ */ - -/* - * Define MD_SWAP if you provide swap{16,32}md functions/macros that are - * optimized for your architecture, These will be used for swap{16,32} - * unless the argument is a constant and we are using GCC, where we can - * take advantage of the CSE phase much better by using the generic version. - */ -#ifdef MD_SWAP -#if __GNUC__ - -#define __swap16(x) __statement({ \ - __uint16_t __swap16_x = (x); \ - \ - __builtin_constant_p(x) ? __swap16gen(__swap16_x) : \ - __swap16md(__swap16_x); \ -}) - -#define __swap32(x) __statement({ \ - __uint32_t __swap32_x = (x); \ - \ - __builtin_constant_p(x) ? __swap32gen(__swap32_x) : \ - __swap32md(__swap32_x); \ -}) - -#define __swap64(x) __statement({ \ - __uint64_t __swap64_x = (x); \ - \ - __builtin_constant_p(x) ? __swap64gen(__swap64_x) : \ - __swap64md(__swap64_x); \ -}) - -#endif /* __GNUC__ */ - -#else /* MD_SWAP */ -#define __swap16 __swap16gen -#define __swap32 __swap32gen -#define __swap64 __swap64gen -#endif /* MD_SWAP */ +#ifndef __LITTLE_ENDIAN +#define __LITTLE_ENDIAN _LITTLE_ENDIAN +#endif +#ifndef __BIG_ENDIAN +#define __BIG_ENDIAN _BIG_ENDIAN +#endif +#define __BYTE_ORDER _BYTE_ORDER -#define __swap16_multi(v, n) do { \ - __size_t __swap16_multi_n = (n); \ - __uint16_t *__swap16_multi_v = (v); \ - \ - while (__swap16_multi_n) { \ - *__swap16_multi_v = swap16(*__swap16_multi_v); \ - __swap16_multi_v++; \ - __swap16_multi_n--; \ - } \ -} while (0) +#define __swap16 __builtin_bswap16 +#define __swap32 __builtin_bswap32 +#define __swap64 __builtin_bswap64 #if __BSD_VISIBLE #define swap16 __swap16 #define swap32 __swap32 #define swap64 __swap64 #define swap16_multi __swap16_multi -#endif /* __BSD_VISIBLE */ - -#if _BYTE_ORDER == _LITTLE_ENDIAN -/* Can be overridden by machine/endian.h before inclusion of this file. */ -#ifndef _QUAD_HIGHWORD -#define _QUAD_HIGHWORD 1 -#endif -#ifndef _QUAD_LOWWORD -#define _QUAD_LOWWORD 0 -#endif - -#if __BSD_VISIBLE #define htobe16 __swap16 #define htobe32 __swap32 #define htobe64 __swap64 @@ -205,49 +92,6 @@ __END_DECLS #define htonq(x) __swap64(x) #define ntohq(x) __swap64(x) -#define __LITTLE_ENDIAN_BITFIELD - -#endif /* _BYTE_ORDER */ - -#if _BYTE_ORDER == _BIG_ENDIAN - -/* Can be overridden by machine/endian.h before inclusion of this file. */ -#ifndef _QUAD_HIGHWORD -#define _QUAD_HIGHWORD 0 -#endif -#ifndef _QUAD_LOWWORD -#define _QUAD_LOWWORD 1 -#endif - -#if __BSD_VISIBLE -#define htole16 __swap16 -#define htole32 __swap32 -#define htole64 __swap64 -#define letoh16 __swap16 -#define letoh32 __swap32 -#define letoh64 __swap64 - -#define htobe16(x) (x) -#define htobe32(x) (x) -#define htobe64(x) (x) -#define betoh16(x) (x) -#define betoh32(x) (x) -#define betoh64(x) (x) -#endif /* __BSD_VISIBLE */ - -#define htons(x) (x) -#define htonl(x) (x) -#define ntohs(x) (x) -#define ntohl(x) (x) - -/* Bionic additions */ -#define ntohq(x) (x) -#define htonq(x) (x) - -#define __BIG_ENDIAN_BITFIELD - -#endif /* _BYTE_ORDER */ - #if __BSD_VISIBLE #define NTOHL(x) (x) = ntohl((u_int32_t)(x)) #define NTOHS(x) (x) = ntohs((u_int16_t)(x)) @@ -255,16 +99,6 @@ __END_DECLS #define HTONS(x) (x) = htons((u_int16_t)(x)) #endif - -#define __BYTE_ORDER _BYTE_ORDER -#ifndef __LITTLE_ENDIAN -#define __LITTLE_ENDIAN _LITTLE_ENDIAN -#endif -#ifndef __BIG_ENDIAN -#define __BIG_ENDIAN _BIG_ENDIAN -#endif - - #ifdef __BSD_VISIBLE /* * glibc-compatible beXXtoh/leXXtoh synonyms for htobeXX/htoleXX. |