-/* $OpenBSD: endian.h,v 1.7 2018/10/02 21:30:44 naddy Exp $ */
+/* $OpenBSD: endian.h,v 1.8 2024/05/07 14:26:48 naddy Exp $ */
/*-
* Copyright (c) 1997 Niklas Hallqvist. All rights reserved.
#ifndef _MACHINE_ENDIAN_H_
#define _MACHINE_ENDIAN_H_
-#ifndef __FROM_SYS__ENDIAN
-#include <sys/_types.h>
-#endif
-
-static __inline __uint16_t
-__swap16md(__uint16_t _x)
-{
- __asm ("rorw $8, %w0" : "+r" (_x));
- return (_x);
-}
-
-static __inline __uint32_t
-__swap32md(__uint32_t _x)
-{
- __asm ("bswap %0" : "+r" (_x));
- return (_x);
-}
-
-static __inline __uint64_t
-__swap64md(__uint64_t _x)
-{
- __asm ("bswapq %0" : "+r" (_x));
- return (_x);
-}
-
-/* Tell sys/endian.h we have MD variants of the swap macros. */
-#define __HAVE_MD_SWAP
-
#define _BYTE_ORDER _LITTLE_ENDIAN
#ifndef __FROM_SYS__ENDIAN
-/* $OpenBSD: endian.h,v 1.11 2018/10/02 21:30:44 naddy Exp $ */
+/* $OpenBSD: endian.h,v 1.12 2024/05/07 14:26:48 naddy Exp $ */
/*
* Copyright (c) 2015 David Gwynne <dlg@openbsd.org>
#ifndef _ARM_ENDIAN_H_
#define _ARM_ENDIAN_H_
-#ifndef __FROM_SYS__ENDIAN
-#include <sys/_types.h>
-#endif
-
-static __inline __uint16_t
-__swap16md(__uint16_t _x)
-{
- __uint16_t _rv;
-
- __asm ("rev16 %0, %1" : "=r" (_rv) : "r" (_x));
-
- return (_rv);
-}
-
-static __inline __uint32_t
-__swap32md(__uint32_t _x)
-{
- __uint32_t _rv;
-
- __asm ("rev %0, %1" : "=r" (_rv) : "r" (_x));
-
- return (_rv);
-}
-
-static __inline __uint64_t
-__swap64md(__uint64_t _x)
-{
- __uint64_t _rv;
-
- _rv = (__uint64_t)__swap32md(_x >> 32) |
- (__uint64_t)__swap32md(_x) << 32;
-
- return (_rv);
-}
-
-/* Tell sys/endian.h we have MD variants of the swap macros. */
-#define __HAVE_MD_SWAP
-
#define _BYTE_ORDER _LITTLE_ENDIAN
#define __STRICT_ALIGNMENT
#ifndef __FROM_SYS__ENDIAN
#include <sys/endian.h>
#endif
+
#endif /* _ARM_ENDIAN_H_ */
-/* $OpenBSD: endian.h,v 1.3 2018/10/01 17:42:16 naddy Exp $ */
+/* $OpenBSD: endian.h,v 1.4 2024/05/07 14:26:48 naddy Exp $ */
/*
* Copyright (c) 2015 David Gwynne <dlg@openbsd.org>
#ifndef _MACHINE_ENDIAN_H_
#define _MACHINE_ENDIAN_H_
-#ifndef __FROM_SYS__ENDIAN
-#include <sys/_types.h>
-#endif
-
-static __inline __uint16_t
-__swap16md(__uint16_t _x)
-{
- __uint16_t _rv;
-
- __asm ("rev16 %w0, %w1" : "=r" (_rv) : "r"(_x));
-
- return (_rv);
-}
-
-static __inline __uint32_t
-__swap32md(__uint32_t _x)
-{
- __uint32_t _rv;
-
- __asm ("rev %w0, %w1" : "=r" (_rv) : "r"(_x));
-
- return (_rv);
-}
-
-static __inline __uint64_t
-__swap64md(__uint64_t _x)
-{
- __uint64_t _rv;
-
- __asm ("rev %x0, %x1" : "=r" (_rv) : "r"(_x));
-
- return (_rv);
-}
-
-/* Tell sys/endian.h we have MD variants of the swap macros. */
-#define __HAVE_MD_SWAP
-
-
#define _BYTE_ORDER _LITTLE_ENDIAN
#define __STRICT_ALIGNMENT
#ifndef __FROM_SYS__ENDIAN
#include <sys/endian.h>
#endif
+
#endif /* _MACHINE_ENDIAN_H_ */
-/* $OpenBSD: endian.h,v 1.19 2018/10/02 21:30:44 naddy Exp $ */
+/* $OpenBSD: endian.h,v 1.20 2024/05/07 14:26:48 naddy Exp $ */
/*-
* Copyright (c) 1997 Niklas Hallqvist. All rights reserved.
#ifndef _MACHINE_ENDIAN_H_
#define _MACHINE_ENDIAN_H_
-#ifndef __FROM_SYS__ENDIAN
-#include <sys/_types.h>
-#endif
-
-static __inline __uint16_t
-__swap16md(__uint16_t _x)
-{
- __asm ("rorw $8, %w0" : "+r" (_x));
- return (_x);
-}
-
-static __inline __uint32_t
-__swap32md(__uint32_t _x)
-{
- __asm ("bswap %0" : "+r" (_x));
- return (_x);
-}
-
-static __inline __uint64_t
-__swap64md(__uint64_t _x)
-{
- return ((__uint64_t)__swap32md(_x >> 32) |
- (__uint64_t)__swap32md(_x & 0xffffffff) << 32);
-}
-
-/* Tell sys/endian.h we have MD variants of the swap macros. */
-#define __HAVE_MD_SWAP
-
#define _BYTE_ORDER _LITTLE_ENDIAN
#ifndef __FROM_SYS__ENDIAN
-/* $OpenBSD: endian.h,v 1.21 2014/10/22 23:56:47 dlg Exp $ */
+/* $OpenBSD: endian.h,v 1.22 2024/05/07 14:26:48 naddy Exp $ */
/*-
* Copyright (c) 1997 Niklas Hallqvist. All rights reserved.
#ifndef _POWERPC_ENDIAN_H_
#define _POWERPC_ENDIAN_H_
-#ifdef _KERNEL
-
-static inline __uint16_t
-__mswap16(volatile const __uint16_t *m)
-{
- __uint16_t v;
-
- __asm("lhbrx %0, 0, %1"
- : "=r" (v)
- : "r" (m), "m" (*m));
-
- return (v);
-}
-
-static inline __uint32_t
-__mswap32(volatile const __uint32_t *m)
-{
- __uint32_t v;
-
- __asm("lwbrx %0, 0, %1"
- : "=r" (v)
- : "r" (m), "m" (*m));
-
- return (v);
-}
-
-static inline __uint64_t
-__mswap64(volatile const __uint64_t *m)
-{
- __uint32_t *a = (__uint32_t *)m;
- __uint64_t v;
-
- v = (__uint64_t)__mswap32(a + 1) << 32 |
- (__uint64_t)__mswap32(a);
-
- return (v);
-}
-
-static inline void
-__swapm16(volatile __uint16_t *m, __uint16_t v)
-{
- __asm("sthbrx %1, 0, %2"
- : "=m" (*m)
- : "r" (v), "r" (m));
-}
-
-static inline void
-__swapm32(volatile __uint32_t *m, __uint32_t v)
-{
- __asm("stwbrx %1, 0, %2"
- : "=m" (*m)
- : "r" (v), "r" (m));
-}
-
-static inline void
-__swapm64(volatile __uint64_t *m, __uint64_t v)
-{
- __uint32_t *a = (__uint32_t *)m;
-
- __swapm32(a + 1, v >> 32);
- __swapm32(a, v);
-}
-
-#define __HAVE_MD_SWAPIO
-#endif /* _KERNEL */
-
#undef _BIG_ENDIAN /* XXX - gcc may define _BIG_ENDIAN too */
#define _BYTE_ORDER _BIG_ENDIAN
-/* $OpenBSD: endian.h,v 1.2 2020/06/08 14:12:00 naddy Exp $ */
+/* $OpenBSD: endian.h,v 1.3 2024/05/07 14:26:48 naddy Exp $ */
/*-
* Copyright (c) 1997 Niklas Hallqvist. All rights reserved.
#ifndef _MACHINE_ENDIAN_H_
#define _MACHINE_ENDIAN_H_
-#ifdef _KERNEL
-
-static inline __uint16_t
-__mswap16(volatile const __uint16_t *m)
-{
- __uint16_t v;
-
- __asm("lhbrx %0, 0, %1"
- : "=r" (v)
- : "r" (m), "m" (*m));
-
- return (v);
-}
-
-static inline __uint32_t
-__mswap32(volatile const __uint32_t *m)
-{
- __uint32_t v;
-
- __asm("lwbrx %0, 0, %1"
- : "=r" (v)
- : "r" (m), "m" (*m));
-
- return (v);
-}
-
-static inline __uint64_t
-__mswap64(volatile const __uint64_t *m)
-{
- __uint64_t v;
-
- __asm("ldbrx %0, 0, %1"
- : "=r" (v)
- : "r" (m), "m" (*m));
-
- return (v);
-}
-
-static inline void
-__swapm16(volatile __uint16_t *m, __uint16_t v)
-{
- __asm("sthbrx %1, 0, %2"
- : "=m" (*m)
- : "r" (v), "r" (m));
-}
-
-static inline void
-__swapm32(volatile __uint32_t *m, __uint32_t v)
-{
- __asm("stwbrx %1, 0, %2"
- : "=m" (*m)
- : "r" (v), "r" (m));
-}
-
-static inline void
-__swapm64(volatile __uint64_t *m, __uint64_t v)
-{
- __asm("stdbrx %1, 0, %2"
- : "=m" (*m)
- : "r" (v), "r" (m));
-}
-
-#define __HAVE_MD_SWAPIO
-#endif /* _KERNEL */
-
#undef _BIG_ENDIAN /* XXX - gcc may define _BIG_ENDIAN too */
#define _BYTE_ORDER _BIG_ENDIAN