linux/tools/build/feature/test-sync-compare-and-swap.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#include <stdint.h>
   3
   4volatile uint64_t x;
   5
   6int main(int argc, char *argv[])
   7{
   8        uint64_t old, new = argc;
   9
  10        argv = argv;
  11        do {
  12                old = __sync_val_compare_and_swap(&x, 0, 0);
  13        } while (!__sync_bool_compare_and_swap(&x, old, new));
  14        return old == new;
  15}
  16