xref: /linux/scripts/atomic/fallbacks/try_cmpxchg (revision ace9bad4df2684f31cbfe8c4ce7a0f5d92b27925)
1*ace9bad4SMark Rutlandcat <<EOF
2*ace9bad4SMark Rutlandstatic inline bool
3*ace9bad4SMark Rutland${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new)
4*ace9bad4SMark Rutland{
5*ace9bad4SMark Rutland	${int} r, o = *old;
6*ace9bad4SMark Rutland	r = ${atomic}_cmpxchg${order}(v, o, new);
7*ace9bad4SMark Rutland	if (unlikely(r != o))
8*ace9bad4SMark Rutland		*old = r;
9*ace9bad4SMark Rutland	return likely(r == o);
10*ace9bad4SMark Rutland}
11*ace9bad4SMark RutlandEOF
12