diff options
Diffstat (limited to 'kernel/arch/sh/include/asm/atomic-irq.h')
-rw-r--r-- | kernel/arch/sh/include/asm/atomic-irq.h | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/kernel/arch/sh/include/asm/atomic-irq.h b/kernel/arch/sh/include/asm/atomic-irq.h index 61d107523..23fcdad57 100644 --- a/kernel/arch/sh/include/asm/atomic-irq.h +++ b/kernel/arch/sh/include/asm/atomic-irq.h @@ -37,27 +37,12 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \ ATOMIC_OPS(add, +=) ATOMIC_OPS(sub, -=) +ATOMIC_OP(and, &=) +ATOMIC_OP(or, |=) +ATOMIC_OP(xor, ^=) #undef ATOMIC_OPS #undef ATOMIC_OP_RETURN #undef ATOMIC_OP -static inline void atomic_clear_mask(unsigned int mask, atomic_t *v) -{ - unsigned long flags; - - raw_local_irq_save(flags); - v->counter &= ~mask; - raw_local_irq_restore(flags); -} - -static inline void atomic_set_mask(unsigned int mask, atomic_t *v) -{ - unsigned long flags; - - raw_local_irq_save(flags); - v->counter |= mask; - raw_local_irq_restore(flags); -} - #endif /* __ASM_SH_ATOMIC_IRQ_H */ |