addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
*addr |= mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
}
static __inline__ void __set_bit(int nr, void * address)
addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
*addr &= ~mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
}
static __inline__ void __clear_bit(unsigned long nr, volatile void * address)
addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
*addr ^= mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
}
static __inline__ void __change_bit(int nr, void * address)
addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
oldbit = (*addr & mask) ? 1 : 0;
*addr |= mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
return oldbit;
}
addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
oldbit = (*addr & mask) ? 1 : 0;
*addr &= ~mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
return oldbit;
}
addr += (nr >> SHIFT_PER_LONG);
mask = 1L << CHOP_SHIFTCOUNT(nr);
- SPIN_LOCK_IRQSAVE(ATOMIC_HASH(addr), flags);
+ atomic_spin_lock_irqsave(ATOMIC_HASH(addr), flags);
oldbit = (*addr & mask) ? 1 : 0;
*addr ^= mask;
- SPIN_UNLOCK_IRQRESTORE(ATOMIC_HASH(addr), flags);
+ atomic_spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
return oldbit;
}
return result + __ffs(tmp);
}
+/**
+ * find_first_bit - find the first set bit in a memory region
+ * @addr: The address to start the search at
+ * @size: The maximum size to search
+ *
+ * Returns the bit-number of the first set bit, not the number of the byte
+ * containing a bit.
+ */
+#define find_first_bit(addr, size) \
+ find_next_bit((addr), (size), 0)
+
#define _EXT2_HAVE_ASM_BITOPS_
#ifdef __KERNEL__