|
@@ -227,6 +227,32 @@ static inline unsigned long __ffs64(u64 word)
|
|
|
return __ffs((unsigned long)word);
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * clear_bit32 - Clear a bit in memory for u32 array
|
|
|
+ * @nr: Bit to clear
|
|
|
+ * @addr: u32 * address of bitmap
|
|
|
+ *
|
|
|
+ * Same as clear_bit, but avoids needing casts for u32 arrays.
|
|
|
+ */
|
|
|
+
|
|
|
+static __always_inline void clear_bit32(long nr, volatile u32 *addr)
|
|
|
+{
|
|
|
+ clear_bit(nr, (volatile unsigned long *)addr);
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * set_bit32 - Set a bit in memory for u32 array
|
|
|
+ * @nr: Bit to clear
|
|
|
+ * @addr: u32 * address of bitmap
|
|
|
+ *
|
|
|
+ * Same as set_bit, but avoids needing casts for u32 arrays.
|
|
|
+ */
|
|
|
+
|
|
|
+static __always_inline void set_bit32(long nr, volatile u32 *addr)
|
|
|
+{
|
|
|
+ set_bit(nr, (volatile unsigned long *)addr);
|
|
|
+}
|
|
|
+
|
|
|
#ifdef __KERNEL__
|
|
|
|
|
|
#ifndef set_mask_bits
|