18c2ecf20Sopenharmony_cicat <<EOF 28c2ecf20Sopenharmony_cistatic __always_inline bool 38c2ecf20Sopenharmony_ci${arch}${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new) 48c2ecf20Sopenharmony_ci{ 58c2ecf20Sopenharmony_ci ${int} r, o = *old; 68c2ecf20Sopenharmony_ci r = ${arch}${atomic}_cmpxchg${order}(v, o, new); 78c2ecf20Sopenharmony_ci if (unlikely(r != o)) 88c2ecf20Sopenharmony_ci *old = r; 98c2ecf20Sopenharmony_ci return likely(r == o); 108c2ecf20Sopenharmony_ci} 118c2ecf20Sopenharmony_ciEOF 12