|
@@ -1,91 +0,0 @@
|
|
|
-#ifndef __ASM_SH_BITOPS_IRQ_H
|
|
|
-#define __ASM_SH_BITOPS_IRQ_H
|
|
|
-
|
|
|
-static inline void set_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- *a |= mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void clear_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- *a &= ~mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void change_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- *a ^= mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline int test_and_set_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask, retval;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- retval = (mask & *a) != 0;
|
|
|
- *a |= mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-
|
|
|
- return retval;
|
|
|
-}
|
|
|
-
|
|
|
-static inline int test_and_clear_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask, retval;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- retval = (mask & *a) != 0;
|
|
|
- *a &= ~mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-
|
|
|
- return retval;
|
|
|
-}
|
|
|
-
|
|
|
-static inline int test_and_change_bit(int nr, volatile void *addr)
|
|
|
-{
|
|
|
- int mask, retval;
|
|
|
- volatile unsigned int *a = addr;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- a += nr >> 5;
|
|
|
- mask = 1 << (nr & 0x1f);
|
|
|
- local_irq_save(flags);
|
|
|
- retval = (mask & *a) != 0;
|
|
|
- *a ^= mask;
|
|
|
- local_irq_restore(flags);
|
|
|
-
|
|
|
- return retval;
|
|
|
-}
|
|
|
-
|
|
|
-#endif /* __ASM_SH_BITOPS_IRQ_H */
|