From a62e3f0378d2a9b861fc4809a810980c1c3bde35 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Sun, 6 Aug 2006 01:39:30 -0400 Subject: [PATCH] Add 64-bit byte swapping functions Signed-off-by: Andreas Dilger --- lib/ext2fs/ChangeLog | 5 +++++ lib/ext2fs/bitops.h | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 0bd5a21..abd188f 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,8 @@ +2006-08-06 Andreas Dilger + + * bitops.h (ext2fs_cpu_to_le32, ext2fs_le64_to_cpu, + ext2fs_swab64): Add 64-bit byte swapping functions + 2006-08-05 Theodore Tso * ext2_fs.h (EXT4_EXTENTS_FL): Rename EXT3_EXTENTS_FL to diff --git a/lib/ext2fs/bitops.h b/lib/ext2fs/bitops.h index 5d01838..6583a3a 100644 --- a/lib/ext2fs/bitops.h +++ b/lib/ext2fs/bitops.h @@ -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 */ -- 1.8.3.1