patch-1.3.48 linux/include/asm-mips/byteorder.h
Next file: linux/include/asm-mips/cachectl.h
Previous file: linux/include/asm-mips/bootinfo.h
Back to the patch index
Back to the overall index
- Lines: 86
- Date:
Wed Dec 13 12:39:45 1995
- Orig file:
v1.3.47/linux/include/asm-mips/byteorder.h
- Orig date:
Tue Aug 15 20:39:04 1995
diff -u --recursive --new-file v1.3.47/linux/include/asm-mips/byteorder.h linux/include/asm-mips/byteorder.h
@@ -1,19 +1,22 @@
#ifndef __ASM_MIPS_BYTEORDER_H
#define __ASM_MIPS_BYTEORDER_H
+/*
+ * FIXME: Add big endian support
+ */
#undef ntohl
#undef ntohs
#undef htonl
#undef htons
-#ifdef MIPSEL
+#if defined (__MIPSEL__)
#define __LITTLE_ENDIAN
#define __LITTLE_ENDIAN_BITFIELD
-#elif MIPSEB
+#elif defined (__MIPSEB__)
#define __BIG_ENDIAN
#define __BIG_ENDIAN_BITFIELD
#else
-#error "MIPS but neither MIPSEL nor MIPSEB?"
+#error "MIPS but neither __MIPSEL__ nor __MIPSEB__?"
#endif
extern unsigned long int ntohl(unsigned long int);
@@ -21,16 +24,18 @@
extern unsigned long int htonl(unsigned long int);
extern unsigned short int htons(unsigned short int);
-extern unsigned long int __ntohl(unsigned long int);
-extern unsigned short int __ntohs(unsigned short int);
-extern unsigned long int __constant_ntohl(unsigned long int);
-extern unsigned short int __constant_ntohs(unsigned short int);
+extern __inline__ unsigned long int __ntohl(unsigned long int);
+extern __inline__ unsigned short int __ntohs(unsigned short int);
+extern __inline__ unsigned long int __constant_ntohl(unsigned long int);
+extern __inline__ unsigned short int __constant_ntohs(unsigned short int);
/*
* The constant and non-constant versions here are the same.
* Maybe I'll come up with an mips-optimized routine for the
* non-constant ones (the constant ones don't need it: gcc
- * will optimize it to the correct constant)
+ * will optimize it to the correct constant). Oh, and the
+ * big endian routines that are still missing will be fairly
+ * easy to write :-)
*/
extern __inline__ unsigned long int
@@ -42,14 +47,11 @@
((x & 0xff000000U) >> 24));
}
-extern __inline__ unsigned long int
-__constant_ntohl(unsigned long int x)
-{
- return (((x & 0x000000ffU) << 24) |
- ((x & 0x0000ff00U) << 8) |
- ((x & 0x00ff0000U) >> 8) |
- ((x & 0xff000000U) >> 24));
-}
+#define __constant_ntohl(x) \
+ ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
+ (((unsigned long int)(x) & 0x0000ff00U) << 8) | \
+ (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \
+ (((unsigned long int)(x) & 0xff000000U) >> 24)))
extern __inline__ unsigned short int
__ntohs(unsigned short int x)
@@ -58,12 +60,9 @@
((x & 0xff00) >> 8));
}
-extern __inline__ unsigned short int
-__constant_ntohs(unsigned short int x)
-{
- return (((x & 0x00ff) << 8) |
- ((x & 0xff00) >> 8));
-}
+#define __constant_ntohs(x) \
+ ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \
+ (((unsigned short int)(x) & 0xff00) >> 8))) \
#define __htonl(x) __ntohl(x)
#define __htons(x) __ntohs(x)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this