1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_METAG_CMPXCHG_IRQ_H
3 #define __ASM_METAG_CMPXCHG_IRQ_H
5 #include <linux/irqflags.h>
7 static inline unsigned long xchg_u32(volatile u32 *m, unsigned long val)
9 unsigned long flags, retval;
11 local_irq_save(flags);
14 local_irq_restore(flags);
18 static inline unsigned long xchg_u8(volatile u8 *m, unsigned long val)
20 unsigned long flags, retval;
22 local_irq_save(flags);
25 local_irq_restore(flags);
29 static inline unsigned long __cmpxchg_u32(volatile int *m, unsigned long old,
35 local_irq_save(flags);
39 local_irq_restore(flags); /* implies memory barrier */
43 #endif /* __ASM_METAG_CMPXCHG_IRQ_H */