File: //usr/src/linux-headers-5.15.0-151-generic/arch/sh/include/asm/futex-irq.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_SH_FUTEX_IRQ_H
#define __ASM_SH_FUTEX_IRQ_H
static inline int atomic_futex_op_cmpxchg_inatomic(u32 *uval,
						   u32 __user *uaddr,
						   u32 oldval, u32 newval)
{
	unsigned long flags;
	int ret;
	u32 prev = 0;
	local_irq_save(flags);
	ret = get_user(prev, uaddr);
	if (!ret && oldval == prev)
		ret = put_user(newval, uaddr);
	local_irq_restore(flags);
	*uval = prev;
	return ret;
}
#endif /* __ASM_SH_FUTEX_IRQ_H */