diff options
Diffstat (limited to 'sys/ia64/include/endian.h')
-rw-r--r-- | sys/ia64/include/endian.h | 88 |
1 files changed, 32 insertions, 56 deletions
diff --git a/sys/ia64/include/endian.h b/sys/ia64/include/endian.h index b4b5a0b..bfc2381 100644 --- a/sys/ia64/include/endian.h +++ b/sys/ia64/include/endian.h @@ -1,7 +1,4 @@ -/* $FreeBSD$ */ -/* From: NetBSD: endian.h,v 1.5 1997/10/09 15:42:19 bouyer Exp */ - -/* +/*- * Copyright (c) 1987, 1991, 1993 * The Regents of the University of California. All rights reserved. * @@ -34,10 +31,14 @@ * SUCH DAMAGE. * * @(#)endian.h 8.1 (Berkeley) 6/10/93 + * $NetBSD: endian.h,v 1.5 1997/10/09 15:42:19 bouyer Exp $ + * $FreeBSD$ */ -#ifndef _ENDIAN_H_ -#define _ENDIAN_H_ +#ifndef _MACHINE_ENDIAN_H_ +#define _MACHINE_ENDIAN_H_ + +#include <sys/cdefs.h> /* * Define the order of 32-bit words in 64-bit words. @@ -45,44 +46,17 @@ #define _QUAD_HIGHWORD 1 #define _QUAD_LOWWORD 0 -#ifndef _POSIX_SOURCE /* * Definitions for byte order, according to byte significance from low * address to high. */ +#ifndef _POSIX_SOURCE #define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ #define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ #define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */ #define BYTE_ORDER LITTLE_ENDIAN - -#ifndef _KERNEL -#include <sys/cdefs.h> -#endif -#include <machine/ansi.h> - -__BEGIN_DECLS -__uint32_t htonl __P((__uint32_t)); -__uint16_t htons __P((__uint16_t)); -__uint32_t ntohl __P((__uint32_t)); -__uint16_t ntohs __P((__uint16_t)); -__END_DECLS - -/* - * Macros for network/external number representation conversion. - */ -#if BYTE_ORDER == BIG_ENDIAN && !defined(lint) -#define ntohl(x) (x) -#define ntohs(x) (x) -#define htonl(x) (x) -#define htons(x) (x) - -#define NTOHL(x) (x) -#define NTOHS(x) (x) -#define HTONL(x) (x) -#define HTONS(x) (x) - -#else +#endif /* !_POSIX_SOURCE */ #ifdef __GNUC__ @@ -96,31 +70,33 @@ __uint8_swap_uint64(__uint64_t __x) } static __inline __uint32_t -__uint8_swap_uint32(__uint32_t __x) +__htonl(__uint32_t __x) { - return __uint8_swap_uint64(__x) >> 32; + + return (__uint8_swap_uint64(__x) >> 32); } static __inline __uint16_t -__uint8_swap_uint16(__uint16_t __x) +__htons(__uint16_t __x) { - return __uint8_swap_uint64(__x) >> 48; + + return (__uint8_swap_uint64(__x) >> 48); } -/* - * Macros for network/external number representation conversion. - */ -#define ntohl __uint8_swap_uint32 -#define ntohs __uint8_swap_uint16 -#define htonl __uint8_swap_uint32 -#define htons __uint8_swap_uint16 - -#endif /* __GNUC__ */ - -#define NTOHL(x) (x) = ntohl((__uint32_t)x) -#define NTOHS(x) (x) = ntohs((__uint16_t)x) -#define HTONL(x) (x) = htonl((__uint32_t)x) -#define HTONS(x) (x) = htons((__uint16_t)x) -#endif -#endif /* !_POSIX_SOURCE */ -#endif /* !_ENDIAN_H_ */ +static __inline __uint32_t +__ntohl(__uint32_t __x) +{ + + return (__uint8_swap_uint64(__x) >> 32); +} + +static __inline __uint16_t +__ntohs(__uint16_t __x) +{ + + return (__uint8_swap_uint64(__x) >> 48); +} + +#endif /* __GNUC__ */ + +#endif /* !_MACHINE_ENDIAN_H_ */ |