[PATCH] 13/13 e2fsprogs-swab64 - add 64-bit swabbing function

Andreas Dilger <[email protected]> Wed, 2 Aug 2006 11:02:47 -0600
Newsgroups gmane.comp.file-systems.ext2.devel
Message-ID <[email protected]>
Add 64-bit swabbing functions.

Index: e2fsprogs/lib/ext2fs/bitops.h
===================================================================
--- e2fsprogs.orig/lib/ext2fs/bitops.h	2006-04-05 01:48:42.000000000 -0600
+++ e2fsprogs/lib/ext2fs/bitops.h	2006-07-10 11:35:27.000000000 -0600
@@ -23,6 +23,8 @@ extern __u16 ext2fs_swab16(__u16 val);
 extern __u32 ext2fs_swab32(__u32 val);
 
 #ifdef WORDS_BIGENDIAN
+#define ext2fs_cpu_to_le64(x) ext2fs_swab64((x))
+#define ext2fs_le64_to_cpu(x) ext2fs_swab64((x))
 #define ext2fs_cpu_to_le32(x) ext2fs_swab32((x))
 #define ext2fs_le32_to_cpu(x) ext2fs_swab32((x))
 #define ext2fs_cpu_to_le16(x) ext2fs_swab16((x))
@@ -32,6 +34,8 @@ extern __u32 ext2fs_swab32(__u32 val);
 #define ext2fs_cpu_to_be16(x) ((__u16)(x))
 #define ext2fs_be16_to_cpu(x) ((__u16)(x))
 #else
+#define ext2fs_cpu_to_le64(x) ((__u64)(x))
+#define ext2fs_le64_to_cpu(x) ((__u64)(x))
 #define ext2fs_cpu_to_le32(x) ((__u32)(x))
 #define ext2fs_le32_to_cpu(x) ((__u32)(x))
 #define ext2fs_cpu_to_le16(x) ((__u16)(x))
@@ -286,6 +290,12 @@ _INLINE_ __u16 ext2fs_swab16(__u16 val)
 }
 #endif
 
+_INLINE_ __u64 ext2fs_swab64(__u64 val)
+{
+	return (ext2fs_swab32(val >> 32) |
+		(((__u64)ext2fs_swab32(val & 0xFFFFFFFFUL)) << 32));
+}
+
 #undef EXT2FS_ADDR
 
 #endif	/* i386 */

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV