try_cmpxchg 250 B

1234567891011
  1. cat <<EOF
  2. static __always_inline bool
  3. arch_${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new)
  4. {
  5. ${int} r, o = *old;
  6. r = arch_${atomic}_cmpxchg${order}(v, o, new);
  7. if (unlikely(r != o))
  8. *old = r;
  9. return likely(r == o);
  10. }
  11. EOF