blob: 06db0f738e45eb44e5adb56da5852b27d3afedab [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001cat <<EOF
Olivier Deprez157378f2022-04-04 15:47:50 +02002static __always_inline bool
3${arch}${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new)
David Brazdil0f672f62019-12-10 10:32:29 +00004{
5 ${int} r, o = *old;
Olivier Deprez157378f2022-04-04 15:47:50 +02006 r = ${arch}${atomic}_cmpxchg${order}(v, o, new);
David Brazdil0f672f62019-12-10 10:32:29 +00007 if (unlikely(r != o))
8 *old = r;
9 return likely(r == o);
10}
11EOF