Endian typedefs and #defines
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 3 Feb 2015 23:27:15 +0000 (18:27 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Sun, 1 Mar 2015 14:36:00 +0000 (09:36 -0500)
The typedefs are similar to Linux's, minus the static analysis good-stuff.

The __.*ENDIAN are used in BNX2X and other things.  I noticed the old BXE
driver also dealt with the LITTLE_ENDIAN -> __LITTLE_ENDIAN conversions.

kern/include/endian.h
kern/include/sys/types.h

index 38d081d..59652b8 100644 (file)
@@ -16,6 +16,9 @@
 #define l64get(p)      (((uint64_t)l32get(p+4)<<32)|l32get(p))
 
 #ifdef LITTLE_ENDIAN
+
+#define __LITTLE_ENDIAN
+
 #define cpu_to_le16(x) ((uint16_t)(x))
 #define cpu_to_le32(x) ((uint32_t)(x))
 #define cpu_to_le64(x) ((uint64_t)(x))
@@ -44,6 +47,8 @@
 # error "Need an endianness defined"
 # endif
 
+#define __BIG_ENDIAN
+
 #define cpu_to_le16(x) byte_swap16((x))
 #define cpu_to_le32(x) byte_swap32((x))
 #define cpu_to_le64(x) byte_swap64((x))
index 42bc0f1..feab432 100644 (file)
@@ -18,4 +18,11 @@ typedef __off64_t off64_t;
 typedef int32_t __blksize_t;
 typedef int64_t __blkcnt64_t;
 
+typedef uint64_t __le64;
+typedef uint64_t __be64;
+typedef uint32_t __le32;
+typedef uint32_t __be32;
+typedef uint16_t __le16;
+typedef uint16_t __be16;
+
 #endif /* _ROS_SYS_TYPES_H */