2006-02-14 05:18:27

by Akinobu Mita

[permalink] [raw]
Subject: [patch 33/47] s390: use generic bitops

- remove generic_ffs()
- remove generic_fls()
- remove generic_fls64()
- remove generic_hweight{64,32,16,8}()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()

Signed-off-by: Akinobu Mita <[email protected]>
arch/s390/Kconfig | 4 ++++
include/asm-s390/bitops.h | 44 +++++---------------------------------------
2 files changed, 9 insertions(+), 39 deletions(-)

Index: 2.6-rc/include/asm-s390/bitops.h
===================================================================
--- 2.6-rc.orig/include/asm-s390/bitops.h
+++ 2.6-rc/include/asm-s390/bitops.h
@@ -828,35 +828,12 @@ static inline int sched_find_first_bit(u
return find_first_bit(b, 140);
}

-/*
- * ffs: find first bit set. This is defined the same way as
- * the libc and compiler builtin ffs routines, therefore
- * differs in spirit from the above ffz (man ffs).
- */
-#define ffs(x) generic_ffs(x)
+#include <asm-generic/bitops/ffs.h>

-/*
- * fls: find last bit set.
- */
-#define fls(x) generic_fls(x)
-#define fls64(x) generic_fls64(x)
-
-/*
- * hweightN: returns the hamming weight (i.e. the number
- * of bits set) of a N-bit word
- */
-#define hweight64(x) \
-({ \
- unsigned long __x = (x); \
- unsigned int __w; \
- __w = generic_hweight32((unsigned int) __x); \
- __w += generic_hweight32((unsigned int) (__x>>32)); \
- __w; \
-})
-#define hweight32(x) generic_hweight32(x)
-#define hweight16(x) generic_hweight16(x)
-#define hweight8(x) generic_hweight8(x)
+#include <asm-generic/bitops/fls.h>
+#include <asm-generic/bitops/fls64.h>

+#include <asm-generic/bitops/hweight.h>

#ifdef __KERNEL__

@@ -1011,18 +988,7 @@ ext2_find_next_zero_bit(void *vaddr, uns
return offset + ext2_find_first_zero_bit(p, size);
}

-/* Bitmap functions for the minix filesystem. */
-/* FIXME !!! */
-#define minix_test_and_set_bit(nr,addr) \
- __test_and_set_bit(nr,(unsigned long *)addr)
-#define minix_set_bit(nr,addr) \
- __set_bit(nr,(unsigned long *)addr)
-#define minix_test_and_clear_bit(nr,addr) \
- __test_and_clear_bit(nr,(unsigned long *)addr)
-#define minix_test_bit(nr,addr) \
- test_bit(nr,(unsigned long *)addr)
-#define minix_find_first_zero_bit(addr,size) \
- find_first_zero_bit(addr,size)
+#include <asm-generic/bitops/minix.h>

#endif /* __KERNEL__ */

Index: 2.6-rc/arch/s390/Kconfig
===================================================================
--- 2.6-rc.orig/arch/s390/Kconfig
+++ 2.6-rc/arch/s390/Kconfig
@@ -14,6 +14,10 @@ config RWSEM_XCHGADD_ALGORITHM
bool
default y

+config GENERIC_HWEIGHT
+ bool
+ default y
+
config GENERIC_CALIBRATE_DELAY
bool
default y

--