1193240Ssamcat <<EOF
2193240Ssam	${int} c = raw_${atomic}_read(v);
3193240Ssam
4193240Ssam	do {
5193240Ssam		if (unlikely(c < 0))
6193240Ssam			return false;
7193240Ssam	} while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1));
8193240Ssam
9193240Ssam	return true;
10193240SsamEOF
11193240Ssam