diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2014-07-12 16:25:10 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2014-07-12 16:25:10 +0000 |
commit | 2039f6b74df84ee50091647629f3c65b57371135 (patch) | |
tree | 076e09339c1066da837771e8393ddab7ce9ff891 /sys/arch | |
parent | 30586300cf458635b5a017a2f2e7c7345538d628 (diff) |
Tackle the endian.h mess. Make it so that:
* you can #include <sys/endian.h> instead of <machine/endian.h>,
and ditto <endian.h> (fixes code that pulls in <sys/endian.h> first)
* those will always export the symbols that POSIX specified for
<endian.h>, including the new {be,le}{16,32,64}toh() set. c.f.
http://austingroupbugs.net/view.php?id=162
if __BSD_VISIBLE then you also get the symbols that our <machine/endian.h>
currently exports (ntohs, NTOHS, dlg's bemtoh*, etc)
* when doing POSIX compiles (not __BSD_VISIBLE), then <netinet/in.h> and
<arpa/inet.h> will *stop* exporting the extra symbols like BYTE_ORDER
and betoh*
ok deraadt@
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/alpha/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/amd64/include/endian.h | 13 | ||||
-rw-r--r-- | sys/arch/arm/include/endian.h | 6 | ||||
-rw-r--r-- | sys/arch/hppa/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/hppa64/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/i386/include/endian.h | 17 | ||||
-rw-r--r-- | sys/arch/ia64/include/endian.h | 6 | ||||
-rw-r--r-- | sys/arch/m88k/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/mips64/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/powerpc/include/endian.h | 7 | ||||
-rw-r--r-- | sys/arch/sh/include/endian.h | 10 | ||||
-rw-r--r-- | sys/arch/sparc/include/endian.h | 8 | ||||
-rw-r--r-- | sys/arch/sparc64/include/endian.h | 26 | ||||
-rw-r--r-- | sys/arch/vax/include/endian.h | 11 |
14 files changed, 88 insertions, 56 deletions
diff --git a/sys/arch/alpha/include/endian.h b/sys/arch/alpha/include/endian.h index 5ebf5b94a44..216013160c2 100644 --- a/sys/arch/alpha/include/endian.h +++ b/sys/arch/alpha/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.13 2011/03/11 15:17:08 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.14 2014/07/12 16:25:08 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -28,8 +28,10 @@ #define _MACHINE_ENDIAN_H_ #define _BYTE_ORDER _LITTLE_ENDIAN -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/amd64/include/endian.h b/sys/arch/amd64/include/endian.h index 7889a374f47..14c451e46f5 100644 --- a/sys/arch/amd64/include/endian.h +++ b/sys/arch/amd64/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.5 2011/03/12 22:27:48 guenther Exp $ */ +/* $OpenBSD: endian.h,v 1.6 2014/07/12 16:25:08 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -30,32 +30,35 @@ #ifdef __GNUC__ #define __swap32md(x) __statement({ \ - u_int32_t __swap32md_x = (x); \ + __uint32_t __swap32md_x = (x); \ \ __asm ("bswap %0" : "+r" (__swap32md_x)); \ __swap32md_x; \ }) #define __swap64md(x) __statement({ \ - u_int64_t __swap64md_x = (x); \ + __uint64_t __swap64md_x = (x); \ \ __asm ("bswapq %0" : "+r" (__swap64md_x)); \ __swap64md_x; \ }) #define __swap16md(x) __statement({ \ - u_int16_t __swap16md_x = (x); \ + __uint16_t __swap16md_x = (x); \ \ __asm ("rorw $8, %w0" : "+r" (__swap16md_x)); \ __swap16md_x; \ }) /* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP +#define __HAVE_MD_SWAP #endif /* __GNUC__ */ #define _BYTE_ORDER _LITTLE_ENDIAN + +#ifndef __FROM_SYS__ENDIAN #include <sys/endian.h> +#endif #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/arm/include/endian.h b/sys/arch/arm/include/endian.h index 1c370350a02..0c12941585a 100644 --- a/sys/arch/arm/include/endian.h +++ b/sys/arch/arm/include/endian.h @@ -1,10 +1,12 @@ -/* $OpenBSD: endian.h,v 1.6 2011/11/08 17:06:51 deraadt Exp $ */ +/* $OpenBSD: endian.h,v 1.7 2014/07/12 16:25:08 guenther Exp $ */ #ifndef _ARM_ENDIAN_H_ #define _ARM_ENDIAN_H_ #define _BYTE_ORDER _LITTLE_ENDIAN #define __STRICT_ALIGNMENT -#include <sys/endian.h> +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif #endif /* _ARM_ENDIAN_H_ */ diff --git a/sys/arch/hppa/include/endian.h b/sys/arch/hppa/include/endian.h index 0b61d7e2790..b31fe08029a 100644 --- a/sys/arch/hppa/include/endian.h +++ b/sys/arch/hppa/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.11 2011/03/11 15:17:08 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.12 2014/07/12 16:25:08 guenther Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -30,8 +30,10 @@ #define _MACHINE_ENDIAN_H_ #define _BYTE_ORDER _BIG_ENDIAN -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* !_MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/hppa64/include/endian.h b/sys/arch/hppa64/include/endian.h index e3eccb65cb3..d73001d137a 100644 --- a/sys/arch/hppa64/include/endian.h +++ b/sys/arch/hppa64/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.3 2011/03/11 15:17:08 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.4 2014/07/12 16:25:08 guenther Exp $ */ /* * Copyright (c) 2005 Michael Shalayeff @@ -21,8 +21,10 @@ #define _MACHINE_ENDIAN_H_ #define _BYTE_ORDER _BIG_ENDIAN -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* !_MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/i386/include/endian.h b/sys/arch/i386/include/endian.h index 817d6c6abb4..1f58500c862 100644 --- a/sys/arch/i386/include/endian.h +++ b/sys/arch/i386/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.17 2011/03/12 04:03:04 guenther Exp $ */ +/* $OpenBSD: endian.h,v 1.18 2014/07/12 16:25:08 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -30,31 +30,34 @@ #ifdef __GNUC__ #define __swap32md(x) __statement({ \ - u_int32_t __swap32md_x = (x); \ + __uint32_t __swap32md_x = (x); \ \ __asm ("bswap %0" : "+r" (__swap32md_x)); \ __swap32md_x; \ }) #define __swap64md(x) __statement({ \ - u_int64_t __swap64md_x = (x); \ + __uint64_t __swap64md_x = (x); \ \ - (u_int64_t)__swap32md(__swap64md_x >> 32) | \ - (u_int64_t)__swap32md(__swap64md_x & 0xffffffff) << 32; \ + (__uint64_t)__swap32md(__swap64md_x >> 32) | \ + (__uint64_t)__swap32md(__swap64md_x & 0xffffffff) << 32; \ }) #define __swap16md(x) __statement({ \ - u_int16_t __swap16md_x = (x); \ + __uint16_t __swap16md_x = (x); \ \ __asm ("rorw $8, %w0" : "+r" (__swap16md_x)); \ __swap16md_x; \ }) /* Tell sys/endian.h we have MD variants of the swap macros. */ -#define MD_SWAP +#define __HAVE_MD_SWAP #endif /* __GNUC__ */ #define _BYTE_ORDER _LITTLE_ENDIAN + +#ifndef __FROM_SYS__ENDIAN #include <sys/endian.h> +#endif #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/ia64/include/endian.h b/sys/arch/ia64/include/endian.h index bb775dbe727..f40b1e25cc2 100644 --- a/sys/arch/ia64/include/endian.h +++ b/sys/arch/ia64/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.1 2011/07/04 23:29:08 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.2 2014/07/12 16:25:08 guenther Exp $ */ /* * Written by Paul Irofti <pirofti@openbsd.org>. Public Domain. @@ -7,9 +7,11 @@ #ifndef _MACHINE_ENDIAN_H_ #define _MACHINE_ENDIAN_H_ +#define _BYTE_ORDER _LITTLE_ENDIAN #define __STRICT_ALIGNMENT -#define _BYTE_ORDER _LITTLE_ENDIAN +#ifndef __FROM_SYS__ENDIAN #include <sys/endian.h> +#endif #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/m88k/include/endian.h b/sys/arch/m88k/include/endian.h index 0a2c32e80f0..3b5a4632ef9 100644 --- a/sys/arch/m88k/include/endian.h +++ b/sys/arch/m88k/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.5 2011/03/23 16:54:35 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.6 2014/07/12 16:25:08 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -28,9 +28,11 @@ #define _M88K_ENDIAN_H_ #define _BYTE_ORDER _BIG_ENDIAN -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* _M88K_ENDIAN_H_ */ diff --git a/sys/arch/mips64/include/endian.h b/sys/arch/mips64/include/endian.h index c8ecfde3bfc..3bc64bf92e0 100644 --- a/sys/arch/mips64/include/endian.h +++ b/sys/arch/mips64/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.8 2014/03/11 19:45:27 guenther Exp $ */ +/* $OpenBSD: endian.h,v 1.9 2014/07/12 16:25:08 guenther Exp $ */ /* * Copyright (c) 2001-2002 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -40,8 +40,10 @@ #error "__MIPSEL__ or __MIPSEB__ must be defined to define BYTE_ORDER!!!" #endif -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* _MIPS64_ENDIAN_H_ */ diff --git a/sys/arch/powerpc/include/endian.h b/sys/arch/powerpc/include/endian.h index f8376e3be02..d8e4c5eb38c 100644 --- a/sys/arch/powerpc/include/endian.h +++ b/sys/arch/powerpc/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.19 2014/03/25 04:25:06 dlg Exp $ */ +/* $OpenBSD: endian.h,v 1.20 2014/07/12 16:25:09 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -90,11 +90,14 @@ __swapm64(volatile __uint64_t *m, __uint64_t v) __swapm32(a, v); } -#define MD_SWAPIO +#define __HAVE_MD_SWAPIO #endif /* _KERNEL */ #undef _BIG_ENDIAN /* XXX - gcc may define _BIG_ENDIAN too */ #define _BYTE_ORDER _BIG_ENDIAN + +#ifndef __FROM_SYS__ENDIAN #include <sys/endian.h> +#endif #endif /* _POWERPC_ENDIAN_H_ */ diff --git a/sys/arch/sh/include/endian.h b/sys/arch/sh/include/endian.h index 689b168d2ab..daba001f12b 100644 --- a/sys/arch/sh/include/endian.h +++ b/sys/arch/sh/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.4 2011/03/23 16:54:36 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.5 2014/07/12 16:25:09 guenther Exp $ */ /* $NetBSD: endian.h,v 1.4 2000/03/17 00:09:25 mycroft Exp $ */ /* Written by Manuel Bouyer. Public domain */ @@ -27,7 +27,7 @@ rval; \ }) -#define MD_SWAP +#define __HAVE_MD_SWAP #endif /* __GNUC_ */ @@ -36,8 +36,10 @@ #else #define _BYTE_ORDER _BIG_ENDIAN #endif -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* !_SH_ENDIAN_H_ */ diff --git a/sys/arch/sparc/include/endian.h b/sys/arch/sparc/include/endian.h index 530925bf188..a57f05395a8 100644 --- a/sys/arch/sparc/include/endian.h +++ b/sys/arch/sparc/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.13 2011/03/11 15:17:08 pirofti Exp $ */ +/* $OpenBSD: endian.h,v 1.14 2014/07/12 16:25:09 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -28,8 +28,10 @@ #define _MACHINE_ENDIAN_H_ #define _BYTE_ORDER _BIG_ENDIAN -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/sparc64/include/endian.h b/sys/arch/sparc64/include/endian.h index 14d0ff09251..b2bb346d4ed 100644 --- a/sys/arch/sparc64/include/endian.h +++ b/sys/arch/sparc64/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.5 2014/03/25 03:53:35 dlg Exp $ */ +/* $OpenBSD: endian.h,v 1.6 2014/07/12 16:25:09 guenther Exp $ */ #ifndef _MACHINE_ENDIAN_H_ #define _MACHINE_ENDIAN_H_ @@ -7,7 +7,7 @@ #ifdef _KERNEL -#define ASI_P_L 0x88 +#define __ASI_P_L 0x88 /* == ASI_PRIMARY_LITTLE */ static inline __uint16_t __mswap16(volatile __uint16_t *m) @@ -16,7 +16,7 @@ __mswap16(volatile __uint16_t *m) __asm("lduha [%1] %2, %0 ! %3" : "=r" (v) - : "r" (m), "n" (ASI_P_L), "m" (*m)); + : "r" (m), "n" (__ASI_P_L), "m" (*m)); return (v); } @@ -28,7 +28,7 @@ __mswap32(volatile __uint32_t *m) __asm("lduwa [%1] %2, %0 ! %3" : "=r" (v) - : "r" (m), "n" (ASI_P_L), "m" (*m)); + : "r" (m), "n" (__ASI_P_L), "m" (*m)); return (v); } @@ -40,7 +40,7 @@ __mswap64(volatile __uint64_t *m) __asm("ldxa [%1] %2, %0 ! %3" : "=r" (v) - : "r" (m), "n" (ASI_P_L), "m" (*m)); + : "r" (m), "n" (__ASI_P_L), "m" (*m)); return (v); } @@ -50,7 +50,7 @@ __swapm16(volatile __uint16_t *m, __uint16_t v) { __asm("stha %1, [%2] %3 ! %0" : "=m" (*m) - : "r" (v), "r" (m), "n" (ASI_P_L)); + : "r" (v), "r" (m), "n" (__ASI_P_L)); } static inline void @@ -58,7 +58,7 @@ __swapm32(volatile __uint32_t *m, __uint32_t v) { __asm("stwa %1, [%2] %3 ! %0" : "=m" (*m) - : "r" (v), "r" (m), "n" (ASI_P_L)); + : "r" (v), "r" (m), "n" (__ASI_P_L)); } static inline void @@ -66,17 +66,19 @@ __swapm64(volatile __uint64_t *m, __uint64_t v) { __asm("stxa %1, [%2] %3 ! %0" : "=m" (*m) - : "r" (v), "r" (m), "n" (ASI_P_L)); + : "r" (v), "r" (m), "n" (__ASI_P_L)); } -#undef ASI_P_L +#undef __ASI_P_L -#define MD_SWAPIO +#define __HAVE_MD_SWAPIO #endif /* _KERNEL */ -#include <sys/endian.h> - #define __STRICT_ALIGNMENT +#ifndef __FROM_SYS__ENDIAN +#include <sys/endian.h> +#endif + #endif /* _MACHINE_ENDIAN_H_ */ diff --git a/sys/arch/vax/include/endian.h b/sys/arch/vax/include/endian.h index d3407e2a5d0..b8105016565 100644 --- a/sys/arch/vax/include/endian.h +++ b/sys/arch/vax/include/endian.h @@ -1,4 +1,4 @@ -/* $OpenBSD: endian.h,v 1.16 2013/07/05 21:10:50 miod Exp $ */ +/* $OpenBSD: endian.h,v 1.17 2014/07/12 16:25:09 guenther Exp $ */ /*- * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. @@ -32,7 +32,7 @@ #define __swap64md __swap64gen #define __swap32md(x) __statement({ \ - u_int32_t __swap32md_y, __swap32md_x = (x); \ + __uint32_t __swap32md_y, __swap32md_x = (x); \ \ __asm ("rotl $-8, %1, %0; insv %0, $16, $8, %0; " \ "rotl $8, %1, %%r1; movb %%r1, %0" : \ @@ -41,7 +41,7 @@ }) #define __swap16md(x) __statement({ \ - u_int16_t __swap16md_y, __swap16md_x = (x); \ + __uint16_t __swap16md_y, __swap16md_x = (x); \ \ __asm ("rotl $8, %1, %0; rotl $-8, %1, %%r1; movb %%r1, %0; " \ "movzwl %0, %0" : \ @@ -51,12 +51,15 @@ /* Tell sys/endian.h we have MD variants of the swap macros. */ #ifdef notyet -#define MD_SWAP +#define __HAVE_MD_SWAP #endif #endif /* __GNUC__ */ #define _BYTE_ORDER _LITTLE_ENDIAN + +#ifndef __FROM_SYS__ENDIAN #include <sys/endian.h> +#endif #endif /* _MACHINE_ENDIAN_H_ */ |