diff options
| -rw-r--r-- | include/asm-generic/bitops/atomic.h | 27 | ||||
| -rw-r--r-- | include/asm-generic/bitops/non-atomic.h | 29 | ||||
| -rw-r--r-- | include/linux/bitops.h | 8 | ||||
| -rw-r--r-- | include/linux/types.h | 3 | 
4 files changed, 33 insertions, 34 deletions
diff --git a/include/asm-generic/bitops/atomic.h b/include/asm-generic/bitops/atomic.h index cd8a9641bd6..4657f3e410f 100644 --- a/include/asm-generic/bitops/atomic.h +++ b/include/asm-generic/bitops/atomic.h @@ -3,9 +3,6 @@  #include <asm/types.h> -#define BITOP_MASK(nr)		(1UL << ((nr) % BITS_PER_LONG)) -#define BITOP_WORD(nr)		((nr) / BITS_PER_LONG) -  #ifdef CONFIG_SMP  #include <asm/spinlock.h>  #include <asm/cache.h>		/* we use L1_CACHE_BYTES */ @@ -66,8 +63,8 @@ extern raw_spinlock_t __atomic_hash[ATOMIC_HASH_SIZE] __lock_aligned;   */  static inline void set_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long flags;  	_atomic_spin_lock_irqsave(p, flags); @@ -87,8 +84,8 @@ static inline void set_bit(int nr, volatile unsigned long *addr)   */  static inline void clear_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long flags;  	_atomic_spin_lock_irqsave(p, flags); @@ -108,8 +105,8 @@ static inline void clear_bit(int nr, volatile unsigned long *addr)   */  static inline void change_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long flags;  	_atomic_spin_lock_irqsave(p, flags); @@ -128,8 +125,8 @@ static inline void change_bit(int nr, volatile unsigned long *addr)   */  static inline int test_and_set_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old;  	unsigned long flags; @@ -152,8 +149,8 @@ static inline int test_and_set_bit(int nr, volatile unsigned long *addr)   */  static inline int test_and_clear_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old;  	unsigned long flags; @@ -175,8 +172,8 @@ static inline int test_and_clear_bit(int nr, volatile unsigned long *addr)   */  static inline int test_and_change_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old;  	unsigned long flags; diff --git a/include/asm-generic/bitops/non-atomic.h b/include/asm-generic/bitops/non-atomic.h index 46a825cf2ae..697cc2b7e0f 100644 --- a/include/asm-generic/bitops/non-atomic.h +++ b/include/asm-generic/bitops/non-atomic.h @@ -3,9 +3,6 @@  #include <asm/types.h> -#define BITOP_MASK(nr)		(1UL << ((nr) % BITS_PER_LONG)) -#define BITOP_WORD(nr)		((nr) / BITS_PER_LONG) -  /**   * __set_bit - Set a bit in memory   * @nr: the bit to set @@ -17,16 +14,16 @@   */  static inline void __set_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	*p  |= mask;  }  static inline void __clear_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	*p &= ~mask;  } @@ -42,8 +39,8 @@ static inline void __clear_bit(int nr, volatile unsigned long *addr)   */  static inline void __change_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	*p ^= mask;  } @@ -59,8 +56,8 @@ static inline void __change_bit(int nr, volatile unsigned long *addr)   */  static inline int __test_and_set_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old = *p;  	*p = old | mask; @@ -78,8 +75,8 @@ static inline int __test_and_set_bit(int nr, volatile unsigned long *addr)   */  static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old = *p;  	*p = old & ~mask; @@ -90,8 +87,8 @@ static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr)  static inline int __test_and_change_bit(int nr,  					    volatile unsigned long *addr)  { -	unsigned long mask = BITOP_MASK(nr); -	unsigned long *p = ((unsigned long *)addr) + BITOP_WORD(nr); +	unsigned long mask = BIT_MASK(nr); +	unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);  	unsigned long old = *p;  	*p = old ^ mask; @@ -105,7 +102,7 @@ static inline int __test_and_change_bit(int nr,   */  static inline int test_bit(int nr, const volatile unsigned long *addr)  { -	return 1UL & (addr[BITOP_WORD(nr)] >> (nr & (BITS_PER_LONG-1))); +	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));  }  #endif /* _ASM_GENERIC_BITOPS_NON_ATOMIC_H_ */ diff --git a/include/linux/bitops.h b/include/linux/bitops.h index b9fb8ee3308..939e80bdbef 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -2,6 +2,14 @@  #define _LINUX_BITOPS_H  #include <asm/types.h> +#ifdef	__KERNEL__ +#define BIT_MASK(nr)		(1UL << ((nr) % BITS_PER_LONG)) +#define BIT_WORD(nr)		((nr) / BITS_PER_LONG) +#define BITS_TO_TYPE(nr, t)	(((nr)+(t)-1)/(t)) +#define BITS_TO_LONGS(nr)	BITS_TO_TYPE(nr, BITS_PER_LONG) +#define BITS_PER_BYTE		8 +#endif +  /*   * Include this here because some architectures need generic_ffs/fls in   * scope diff --git a/include/linux/types.h b/include/linux/types.h index 0351bf2fac8..4f0dad21c91 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -3,12 +3,9 @@  #ifdef	__KERNEL__ -#define BITS_TO_LONGS(bits) \ -	(((bits)+BITS_PER_LONG-1)/BITS_PER_LONG)  #define DECLARE_BITMAP(name,bits) \  	unsigned long name[BITS_TO_LONGS(bits)] -#define BITS_PER_BYTE 8  #endif  #include <linux/posix_types.h>  |