patch-2.1.71 linux/include/asm-alpha/byteorder.h

Next file: linux/include/asm-alpha/ioctls.h
Previous file: linux/fs/vfat/namei.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.70/linux/include/asm-alpha/byteorder.h linux/include/asm-alpha/byteorder.h
@@ -1,36 +1,13 @@
 #ifndef _ALPHA_BYTEORDER_H
 #define _ALPHA_BYTEORDER_H
 
-#undef ntohl
-#undef ntohs
-#undef htonl
-#undef htons
-
-#ifndef __LITTLE_ENDIAN
-#define __LITTLE_ENDIAN 1234
-#endif
-
-#ifndef __LITTLE_ENDIAN_BITFIELD
-#define __LITTLE_ENDIAN_BITFIELD
-#endif
-
-extern unsigned int		ntohl(unsigned int);
-extern unsigned short int	ntohs(unsigned short int);
-extern unsigned int		htonl(unsigned int);
-extern unsigned short int	htons(unsigned short int);
-
-extern unsigned int		__ntohl(unsigned int);
-extern unsigned short int	__ntohs(unsigned short int);
+#include <asm/types.h>
 
 #ifdef __GNUC__
 
-extern unsigned int		__constant_ntohl(unsigned int);
-extern unsigned short int	__constant_ntohs(unsigned short int);
-
-extern __inline__ unsigned int
-__ntohl(unsigned int x)
+static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
 {
-	unsigned int t1, t2, t3;
+	__u64 t1, t2, t3;
 
 	/* Break the final or's out of the block so that gcc can
 	   schedule them at will.  Further, use add not or so that
@@ -51,17 +28,10 @@
 	return t3 + t2 + t1;
 }
 
-#define __constant_ntohl(x) \
-   ((unsigned int)((((x) & 0x000000ff) << 24) | \
-		   (((x) & 0x0000ff00) <<  8) | \
-		   (((x) & 0x00ff0000) >>  8) | \
-		   (((x) & 0xff000000) >> 24)))
-
-extern __inline__ unsigned short int
-__ntohs(unsigned short int x)
+static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
 {
-	unsigned short int t1, t2;
-	
+	__u64 t1, t2;
+
 	__asm__(
 	"insbl	%2,1,%1		# %1 = bb00\n\t"
 	"extbl	%2,1,%0		# %0 = 00aa"
@@ -70,99 +40,13 @@
 	return t1 | t2;
 }
 
-#define __constant_ntohs(x) \
-((unsigned short int)((((x) & 0x00ff) << 8) | \
-		      (((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)
-
-#ifdef  __OPTIMIZE__
-#  define ntohl(x) \
-(__builtin_constant_p((long)(x)) ? \
- __constant_ntohl((x)) : \
- __ntohl((x)))
-#  define ntohs(x) \
-(__builtin_constant_p((short)(x)) ? \
- __constant_ntohs((x)) : \
- __ntohs((x)))
-#  define htonl(x) \
-(__builtin_constant_p((long)(x)) ? \
- __constant_htonl((x)) : \
- __htonl((x)))
-#  define htons(x) \
-(__builtin_constant_p((short)(x)) ? \
- __constant_htons((x)) : \
- __htons((x)))
-#endif /* __OPTIMIZE__ */
+#define __arch__swab32(x) ___arch__swab32(x)
+#define __arch__swab16(x) ___arch__swab16(x)
 
 #endif /* __GNUC__ */
 
-#ifdef __KERNEL__
-
-/*
- * In-kernel byte order macros to handle stuff like
- * byte-order-dependent filesystems etc.
- */
-#define cpu_to_le32(x) (x)
-#define cpu_to_le16(x) (x)
-
-#define cpu_to_be32(x) htonl((x))
-#define cpu_to_be16(x) htons((x))
-
-/* The same, but returns converted value from the location pointer by addr. */
-extern __inline__ __u16 cpu_to_le16p(__u16 *addr)
-{
-	return cpu_to_le16(*addr);
-}
-
-extern __inline__ __u32 cpu_to_le32p(__u32 *addr)
-{
-	return cpu_to_le32(*addr);
-}
-
-extern __inline__ __u16 cpu_to_be16p(__u16 *addr)
-{
-	return cpu_to_be16(*addr);
-}
-
-extern __inline__ __u32 cpu_to_be32p(__u32 *addr)
-{
-	return cpu_to_be32(*addr);
-}
-
-/* The same, but do the conversion in situ, ie. put the value back to addr. */
-#define cpu_to_le16s(x) do { } while (0)
-#define cpu_to_le32s(x) do { } while (0)
-
-extern __inline__ void cpu_to_be16s(__u16 *addr)
-{
-	*addr = cpu_to_be16(*addr);
-}
-
-extern __inline__ void cpu_to_be32s(__u32 *addr)
-{
-	*addr = cpu_to_be32(*addr);
-}
-
-/* Convert from specified byte order, to CPU byte order. */
-#define le16_to_cpu(x)  cpu_to_le16(x)
-#define le32_to_cpu(x)  cpu_to_le32(x)
-#define be16_to_cpu(x)  cpu_to_be16(x)
-#define be32_to_cpu(x)  cpu_to_be32(x)
-
-#define le16_to_cpup(x) cpu_to_le16p(x)
-#define le32_to_cpup(x) cpu_to_le32p(x)
-#define be16_to_cpup(x) cpu_to_be16p(x)
-#define be32_to_cpup(x) cpu_to_be32p(x)
-
-#define le16_to_cpus(x) cpu_to_le16s(x)
-#define le32_to_cpus(x) cpu_to_le32s(x)
-#define be16_to_cpus(x) cpu_to_be16s(x)
-#define be32_to_cpus(x) cpu_to_be32s(x)
+#define __BYTEORDER_HAS_U64__
 
-#endif /* __KERNEL__ */
+#include <linux/byteorder_little_endian.h>
 
 #endif /* _ALPHA_BYTEORDER_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov