From 8394d4b01c3b3cfc32edf28622d59c3b6f888773 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Wed, 17 Dec 2008 05:03:18 +0000 Subject: [PATCH] Branch HEAD b=17459 i=adilger, bobijam Make change to ext2_* api for BIG-ENDIAN environment. --- lustre/include/liblustre.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lustre/include/liblustre.h b/lustre/include/liblustre.h index 09bf725..d758fb1 100644 --- a/lustre/include/liblustre.h +++ b/lustre/include/liblustre.h @@ -86,17 +86,30 @@ void *inter_module_get(char *arg); static __inline__ int ext2_set_bit(int nr, void *addr) { +#ifdef __BIG_ENDIAN + return set_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); +#else return set_bit(nr, addr); +#endif } static __inline__ int ext2_clear_bit(int nr, void *addr) { +#ifdef __BIG_ENDIAN + return clear_bit((nr ^ ((BITS_PER_LONG-1) & ~0x7)), addr); +#else return clear_bit(nr, addr); +#endif } static __inline__ int ext2_test_bit(int nr, void *addr) { +#ifdef __BIG_ENDIAN + __const__ unsigned char *tmp = (__const__ unsigned char *) addr; + return (tmp[nr >> 3] >> (nr & 7)) & 1; +#else return test_bit(nr, addr); +#endif } -- 1.8.3.1