1cat <<EOF 2 ${int} r, o = *old; 3 r = raw_${atomic}_cmpxchg${order}(v, o, new); 4 if (unlikely(r != o)) 5 *old = r; 6 return likely(r == o); 7EOF 8