David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 1 | cat <<EOF |
Olivier Deprez | 157378f | 2022-04-04 15:47:50 +0200 | [diff] [blame^] | 2 | static __always_inline bool |
| 3 | ${arch}${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new) |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 4 | { |
| 5 | ${int} r, o = *old; |
Olivier Deprez | 157378f | 2022-04-04 15:47:50 +0200 | [diff] [blame^] | 6 | r = ${arch}${atomic}_cmpxchg${order}(v, o, new); |
David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame] | 7 | if (unlikely(r != o)) |
| 8 | *old = r; |
| 9 | return likely(r == o); |
| 10 | } |
| 11 | EOF |