| |
| #define STRONG 0 |
| #define WEAK 1 |
| int v = 0; |
| |
| int |
| atomic_compare_exchange_STRONG_RELEASE_ACQUIRE (int a, int b) |
| { |
| return __atomic_compare_exchange (&v, &a, &b, |
| STRONG, __ATOMIC_RELEASE, |
| __ATOMIC_ACQUIRE); |
| } |
| |
| int |
| atomic_compare_exchange_WEAK_RELEASE_ACQUIRE (int a, int b) |
| { |
| return __atomic_compare_exchange (&v, &a, &b, |
| WEAK, __ATOMIC_RELEASE, |
| __ATOMIC_ACQUIRE); |
| } |
| |
| int |
| atomic_compare_exchange_n_STRONG_RELEASE_ACQUIRE (int a, int b) |
| { |
| return __atomic_compare_exchange_n (&v, &a, b, |
| STRONG, __ATOMIC_RELEASE, |
| __ATOMIC_ACQUIRE); |
| } |
| |
| int |
| atomic_compare_exchange_n_WEAK_RELEASE_ACQUIRE (int a, int b) |
| { |
| return __atomic_compare_exchange_n (&v, &a, b, |
| WEAK, __ATOMIC_RELEASE, |
| __ATOMIC_ACQUIRE); |
| } |