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