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
- Lines: 165
- Date:
Wed Dec 3 06:18:17 1997
- Orig file:
v2.1.70/linux/include/asm-alpha/byteorder.h
- Orig date:
Mon Jun 16 16:35:59 1997
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