aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/bitops.h
diff options
context:
space:
mode:
authorAlexander van Heukelum <heukelum@mailshack.com>2008-04-04 14:49:30 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-26 13:21:17 -0400
commitd66462f5314b0e70ddad8032eb76099475ca5571 (patch)
tree473d34bf2662fb008495764dda774e00d563f01a /include/asm-x86/bitops.h
parent5245698f665c4b7a533dcc47a5afdf33095d436a (diff)
x86: finalize bitops unification
include/asm-x86/bitops_32.h and include/asm-x86/bitops_64.h are now almost identical. The 64-bit version sets ARCH_HAS_FAST_MULTIPLIER and has an extra inline function set_bit_string. The define currently has no influence on the generated code, but it can be argued that setting it on i386 is the right thing to do anyhow. The addition of the extra inline function on i386 does not hurt either. Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86/bitops.h')
-rw-r--r--include/asm-x86/bitops.h38
1 files changed, 33 insertions, 5 deletions
diff --git a/include/asm-x86/bitops.h b/include/asm-x86/bitops.h
index 1b6f547cb6bd..daf1a72bdc4b 100644
--- a/include/asm-x86/bitops.h
+++ b/include/asm-x86/bitops.h
@@ -403,10 +403,38 @@ static inline int fls(int x)
403 403
404#undef ADDR 404#undef ADDR
405 405
406#ifdef CONFIG_X86_32 406static inline void set_bit_string(unsigned long *bitmap,
407# include "bitops_32.h" 407 unsigned long i, int len)
408#else 408{
409# include "bitops_64.h" 409 unsigned long end = i + len;
410#endif 410 while (i < end) {
411 __set_bit(i, bitmap);
412 i++;
413 }
414}
415
416#ifdef __KERNEL__
417
418#include <asm-generic/bitops/sched.h>
419
420#define ARCH_HAS_FAST_MULTIPLIER 1
421
422#include <asm-generic/bitops/hweight.h>
411 423
424#endif /* __KERNEL__ */
425
426#include <asm-generic/bitops/fls64.h>
427
428#ifdef __KERNEL__
429
430#include <asm-generic/bitops/ext2-non-atomic.h>
431
432#define ext2_set_bit_atomic(lock, nr, addr) \
433 test_and_set_bit((nr), (unsigned long *)(addr))
434#define ext2_clear_bit_atomic(lock, nr, addr) \
435 test_and_clear_bit((nr), (unsigned long *)(addr))
436
437#include <asm-generic/bitops/minix.h>
438
439#endif /* __KERNEL__ */
412#endif /* _ASM_X86_BITOPS_H */ 440#endif /* _ASM_X86_BITOPS_H */