diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2011-03-23 19:42:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-23 22:46:22 -0400 |
commit | 61f2e7b0f474225b4226772830ae4b29a3a21f8d (patch) | |
tree | 52f880fe6feec8efe5e5e028a3e0637629a500b7 /arch/m68k | |
parent | 3fca5af7860f87eb2cd706c2d7dda4ad03230a07 (diff) |
bitops: remove minix bitops from asm/bitops.h
minix bit operations are only used by minix filesystem and useless by
other modules. Because byte order of inode and block bitmaps is different
on each architecture like below:
m68k:
big-endian 16bit indexed bitmaps
h8300, microblaze, s390, sparc, m68knommu:
big-endian 32 or 64bit indexed bitmaps
m32r, mips, sh, xtensa:
big-endian 32 or 64bit indexed bitmaps for big-endian mode
little-endian bitmaps for little-endian mode
Others:
little-endian bitmaps
In order to move minix bit operations from asm/bitops.h to architecture
independent code in minix filesystem, this provides two config options.
CONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED is only selected by m68k.
CONFIG_MINIX_FS_NATIVE_ENDIAN is selected by the architectures which use
native byte order bitmaps (h8300, microblaze, s390, sparc, m68knommu,
m32r, mips, sh, xtensa). The architectures which always use little-endian
bitmaps do not select these options.
Finally, we can remove minix bit operations from asm/bitops.h for all
architectures.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Andreas Schwab <schwab@linux-m68k.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Michal Simek <monstr@monstr.eu>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/include/asm/bitops_mm.h | 30 | ||||
-rw-r--r-- | arch/m68k/include/asm/bitops_no.h | 2 |
2 files changed, 0 insertions, 32 deletions
diff --git a/arch/m68k/include/asm/bitops_mm.h b/arch/m68k/include/asm/bitops_mm.h index a403b5e69aab..9d69f6e62365 100644 --- a/arch/m68k/include/asm/bitops_mm.h +++ b/arch/m68k/include/asm/bitops_mm.h | |||
@@ -325,36 +325,6 @@ static inline int __fls(int x) | |||
325 | #include <asm-generic/bitops/hweight.h> | 325 | #include <asm-generic/bitops/hweight.h> |
326 | #include <asm-generic/bitops/lock.h> | 326 | #include <asm-generic/bitops/lock.h> |
327 | 327 | ||
328 | /* Bitmap functions for the minix filesystem */ | ||
329 | |||
330 | static inline int minix_find_first_zero_bit(const void *vaddr, unsigned size) | ||
331 | { | ||
332 | const unsigned short *p = vaddr, *addr = vaddr; | ||
333 | unsigned short num; | ||
334 | |||
335 | if (!size) | ||
336 | return 0; | ||
337 | |||
338 | size = (size >> 4) + ((size & 15) > 0); | ||
339 | while (*p++ == 0xffff) { | ||
340 | if (--size == 0) | ||
341 | return (p - addr) << 4; | ||
342 | } | ||
343 | |||
344 | num = *--p; | ||
345 | return ((p - addr) << 4) + ffz(num); | ||
346 | } | ||
347 | |||
348 | #define minix_test_and_set_bit(nr, addr) __test_and_set_bit((nr) ^ 16, (unsigned long *)(addr)) | ||
349 | #define minix_set_bit(nr,addr) __set_bit((nr) ^ 16, (unsigned long *)(addr)) | ||
350 | #define minix_test_and_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 16, (unsigned long *)(addr)) | ||
351 | |||
352 | static inline int minix_test_bit(int nr, const void *vaddr) | ||
353 | { | ||
354 | const unsigned short *p = vaddr; | ||
355 | return (p[nr >> 4] & (1U << (nr & 15))) != 0; | ||
356 | } | ||
357 | |||
358 | /* Bitmap functions for the little endian bitmap. */ | 328 | /* Bitmap functions for the little endian bitmap. */ |
359 | 329 | ||
360 | static inline void __set_bit_le(int nr, void *addr) | 330 | static inline void __set_bit_le(int nr, void *addr) |
diff --git a/arch/m68k/include/asm/bitops_no.h b/arch/m68k/include/asm/bitops_no.h index 8db5fef8631f..7d3779fdc5b6 100644 --- a/arch/m68k/include/asm/bitops_no.h +++ b/arch/m68k/include/asm/bitops_no.h | |||
@@ -336,8 +336,6 @@ found_middle: | |||
336 | return result + ffz(__swab32(tmp)); | 336 | return result + ffz(__swab32(tmp)); |
337 | } | 337 | } |
338 | 338 | ||
339 | #include <asm-generic/bitops/minix.h> | ||
340 | |||
341 | #endif /* __KERNEL__ */ | 339 | #endif /* __KERNEL__ */ |
342 | 340 | ||
343 | #include <asm-generic/bitops/fls.h> | 341 | #include <asm-generic/bitops/fls.h> |