1ace9bad4SMark Rutlandcat <<EOF 2765dcd20SMarco Elverstatic __always_inline bool 3*9257959aSMark Rutlandraw_${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new) 4ace9bad4SMark Rutland{ 5ace9bad4SMark Rutland ${int} r, o = *old; 6*9257959aSMark Rutland r = raw_${atomic}_cmpxchg${order}(v, o, new); 7ace9bad4SMark Rutland if (unlikely(r != o)) 8ace9bad4SMark Rutland *old = r; 9ace9bad4SMark Rutland return likely(r == o); 10ace9bad4SMark Rutland} 11ace9bad4SMark RutlandEOF 12