#include "atomic_ops.h" /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop) "AO_nop(): "; AO_nop(); # else "No AO_nop"; # endif # if defined(AO_HAVE_load) "AO_load(&val):"; AO_load(&val); # else "No AO_load"; # endif # if defined(AO_HAVE_store) "AO_store(&val, newval):"; AO_store(&val, newval); # else "No AO_store"; # endif # if defined(AO_HAVE_test_and_set) "AO_test_and_set(&ts):"; AO_test_and_set(&ts); # else "No AO_test_and_set"; # endif # if defined(AO_HAVE_fetch_and_add1) "AO_fetch_and_add1(&val):"; AO_fetch_and_add1(&val); # else "No AO_fetch_and_add1"; # endif # if defined(AO_HAVE_fetch_and_sub1) "AO_fetch_and_sub1(&val):"; AO_fetch_and_sub1(&val); # else "No AO_fetch_and_sub1"; # endif # if defined(AO_HAVE_fetch_and_add) "AO_fetch_and_add(&val, incr):"; AO_fetch_and_add(&val, incr); # else "No AO_fetch_and_add"; # endif # if defined(AO_HAVE_compare_and_swap) "AO_compare_and_swap(&val, oldval, newval):"; AO_compare_and_swap(&val, oldval, newval); # else "No AO_compare_and_swap"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_release(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_release) "AO_nop_release(): "; AO_nop_release(); # else "No AO_nop_release"; # endif # if defined(AO_HAVE_load_release) "AO_load_release(&val):"; AO_load_release(&val); # else "No AO_load_release"; # endif # if defined(AO_HAVE_store_release) "AO_store_release(&val, newval):"; AO_store_release(&val, newval); # else "No AO_store_release"; # endif # if defined(AO_HAVE_test_and_set_release) "AO_test_and_set_release(&ts):"; AO_test_and_set_release(&ts); # else "No AO_test_and_set_release"; # endif # if defined(AO_HAVE_fetch_and_add1_release) "AO_fetch_and_add1_release(&val):"; AO_fetch_and_add1_release(&val); # else "No AO_fetch_and_add1_release"; # endif # if defined(AO_HAVE_fetch_and_sub1_release) "AO_fetch_and_sub1_release(&val):"; AO_fetch_and_sub1_release(&val); # else "No AO_fetch_and_sub1_release"; # endif # if defined(AO_HAVE_fetch_and_add_release) "AO_fetch_and_add_release(&val, incr):"; AO_fetch_and_add_release(&val, incr); # else "No AO_fetch_and_add_release"; # endif # if defined(AO_HAVE_compare_and_swap_release) "AO_compare_and_swap_release(&val, oldval, newval):"; AO_compare_and_swap_release(&val, oldval, newval); # else "No AO_compare_and_swap_release"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_acquire(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_acquire) "AO_nop_acquire(): "; AO_nop_acquire(); # else "No AO_nop_acquire"; # endif # if defined(AO_HAVE_load_acquire) "AO_load_acquire(&val):"; AO_load_acquire(&val); # else "No AO_load_acquire"; # endif # if defined(AO_HAVE_store_acquire) "AO_store_acquire(&val, newval):"; AO_store_acquire(&val, newval); # else "No AO_store_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) "AO_test_and_set_acquire(&ts):"; AO_test_and_set_acquire(&ts); # else "No AO_test_and_set_acquire"; # endif # if defined(AO_HAVE_fetch_and_add1_acquire) "AO_fetch_and_add1_acquire(&val):"; AO_fetch_and_add1_acquire(&val); # else "No AO_fetch_and_add1_acquire"; # endif # if defined(AO_HAVE_fetch_and_sub1_acquire) "AO_fetch_and_sub1_acquire(&val):"; AO_fetch_and_sub1_acquire(&val); # else "No AO_fetch_and_sub1_acquire"; # endif # if defined(AO_HAVE_fetch_and_add_acquire) "AO_fetch_and_add_acquire(&val, incr):"; AO_fetch_and_add_acquire(&val, incr); # else "No AO_fetch_and_add_acquire"; # endif # if defined(AO_HAVE_compare_and_swap_acquire) "AO_compare_and_swap_acquire(&val, oldval, newval):"; AO_compare_and_swap_acquire(&val, oldval, newval); # else "No AO_compare_and_swap_acquire"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_read(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_read) "AO_nop_read(): "; AO_nop_read(); # else "No AO_nop_read"; # endif # if defined(AO_HAVE_load_read) "AO_load_read(&val):"; AO_load_read(&val); # else "No AO_load_read"; # endif # if defined(AO_HAVE_store_read) "AO_store_read(&val, newval):"; AO_store_read(&val, newval); # else "No AO_store_read"; # endif # if defined(AO_HAVE_test_and_set_read) "AO_test_and_set_read(&ts):"; AO_test_and_set_read(&ts); # else "No AO_test_and_set_read"; # endif # if defined(AO_HAVE_fetch_and_add1_read) "AO_fetch_and_add1_read(&val):"; AO_fetch_and_add1_read(&val); # else "No AO_fetch_and_add1_read"; # endif # if defined(AO_HAVE_fetch_and_sub1_read) "AO_fetch_and_sub1_read(&val):"; AO_fetch_and_sub1_read(&val); # else "No AO_fetch_and_sub1_read"; # endif # if defined(AO_HAVE_fetch_and_add_read) "AO_fetch_and_add_read(&val, incr):"; AO_fetch_and_add_read(&val, incr); # else "No AO_fetch_and_add_read"; # endif # if defined(AO_HAVE_compare_and_swap_read) "AO_compare_and_swap_read(&val, oldval, newval):"; AO_compare_and_swap_read(&val, oldval, newval); # else "No AO_compare_and_swap_read"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_write(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_write) "AO_nop_write(): "; AO_nop_write(); # else "No AO_nop_write"; # endif # if defined(AO_HAVE_load_write) "AO_load_write(&val):"; AO_load_write(&val); # else "No AO_load_write"; # endif # if defined(AO_HAVE_store_write) "AO_store_write(&val, newval):"; AO_store_write(&val, newval); # else "No AO_store_write"; # endif # if defined(AO_HAVE_test_and_set_write) "AO_test_and_set_write(&ts):"; AO_test_and_set_write(&ts); # else "No AO_test_and_set_write"; # endif # if defined(AO_HAVE_fetch_and_add1_write) "AO_fetch_and_add1_write(&val):"; AO_fetch_and_add1_write(&val); # else "No AO_fetch_and_add1_write"; # endif # if defined(AO_HAVE_fetch_and_sub1_write) "AO_fetch_and_sub1_write(&val):"; AO_fetch_and_sub1_write(&val); # else "No AO_fetch_and_sub1_write"; # endif # if defined(AO_HAVE_fetch_and_add_write) "AO_fetch_and_add_write(&val, incr):"; AO_fetch_and_add_write(&val, incr); # else "No AO_fetch_and_add_write"; # endif # if defined(AO_HAVE_compare_and_swap_write) "AO_compare_and_swap_write(&val, oldval, newval):"; AO_compare_and_swap_write(&val, oldval, newval); # else "No AO_compare_and_swap_write"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_full(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_full) "AO_nop_full(): "; AO_nop_full(); # else "No AO_nop_full"; # endif # if defined(AO_HAVE_load_full) "AO_load_full(&val):"; AO_load_full(&val); # else "No AO_load_full"; # endif # if defined(AO_HAVE_store_full) "AO_store_full(&val, newval):"; AO_store_full(&val, newval); # else "No AO_store_full"; # endif # if defined(AO_HAVE_test_and_set_full) "AO_test_and_set_full(&ts):"; AO_test_and_set_full(&ts); # else "No AO_test_and_set_full"; # endif # if defined(AO_HAVE_fetch_and_add1_full) "AO_fetch_and_add1_full(&val):"; AO_fetch_and_add1_full(&val); # else "No AO_fetch_and_add1_full"; # endif # if defined(AO_HAVE_fetch_and_sub1_full) "AO_fetch_and_sub1_full(&val):"; AO_fetch_and_sub1_full(&val); # else "No AO_fetch_and_sub1_full"; # endif # if defined(AO_HAVE_fetch_and_add_full) "AO_fetch_and_add_full(&val, incr):"; AO_fetch_and_add_full(&val, incr); # else "No AO_fetch_and_add_full"; # endif # if defined(AO_HAVE_compare_and_swap_full) "AO_compare_and_swap_full(&val, oldval, newval):"; AO_compare_and_swap_full(&val, oldval, newval); # else "No AO_compare_and_swap_full"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_release_write(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_release_write) "AO_nop_release_write(): "; AO_nop_release_write(); # else "No AO_nop_release_write"; # endif # if defined(AO_HAVE_load_release_write) "AO_load_release_write(&val):"; AO_load_release_write(&val); # else "No AO_load_release_write"; # endif # if defined(AO_HAVE_store_release_write) "AO_store_release_write(&val, newval):"; AO_store_release_write(&val, newval); # else "No AO_store_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) "AO_test_and_set_release_write(&ts):"; AO_test_and_set_release_write(&ts); # else "No AO_test_and_set_release_write"; # endif # if defined(AO_HAVE_fetch_and_add1_release_write) "AO_fetch_and_add1_release_write(&val):"; AO_fetch_and_add1_release_write(&val); # else "No AO_fetch_and_add1_release_write"; # endif # if defined(AO_HAVE_fetch_and_sub1_release_write) "AO_fetch_and_sub1_release_write(&val):"; AO_fetch_and_sub1_release_write(&val); # else "No AO_fetch_and_sub1_release_write"; # endif # if defined(AO_HAVE_fetch_and_add_release_write) "AO_fetch_and_add_release_write(&val, incr):"; AO_fetch_and_add_release_write(&val, incr); # else "No AO_fetch_and_add_release_write"; # endif # if defined(AO_HAVE_compare_and_swap_release_write) "AO_compare_and_swap_release_write(&val, oldval, newval):"; AO_compare_and_swap_release_write(&val, oldval, newval); # else "No AO_compare_and_swap_release_write"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see doc/COPYING for details. */ /* This generates a compilable program. But it is really meant to be */ /* be used only with cc -E, to inspect the expensions generated by */ /* primitives. */ /* The result will not link or run. */ void list_atomic_acquire_read(void) { AO_T val, newval = 0, oldval = 0; AO_TS_T ts; long incr = 0; # if defined(AO_HAVE_nop_acquire_read) "AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else "No AO_nop_acquire_read"; # endif # if defined(AO_HAVE_load_acquire_read) "AO_load_acquire_read(&val):"; AO_load_acquire_read(&val); # else "No AO_load_acquire_read"; # endif # if defined(AO_HAVE_store_acquire_read) "AO_store_acquire_read(&val, newval):"; AO_store_acquire_read(&val, newval); # else "No AO_store_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) "AO_test_and_set_acquire_read(&ts):"; AO_test_and_set_acquire_read(&ts); # else "No AO_test_and_set_acquire_read"; # endif # if defined(AO_HAVE_fetch_and_add1_acquire_read) "AO_fetch_and_add1_acquire_read(&val):"; AO_fetch_and_add1_acquire_read(&val); # else "No AO_fetch_and_add1_acquire_read"; # endif # if defined(AO_HAVE_fetch_and_sub1_acquire_read) "AO_fetch_and_sub1_acquire_read(&val):"; AO_fetch_and_sub1_acquire_read(&val); # else "No AO_fetch_and_sub1_acquire_read"; # endif # if defined(AO_HAVE_fetch_and_add_acquire_read) "AO_fetch_and_add_acquire_read(&val, incr):"; AO_fetch_and_add_acquire_read(&val, incr); # else "No AO_fetch_and_add_acquire_read"; # endif # if defined(AO_HAVE_compare_and_swap_acquire_read) "AO_compare_and_swap_acquire_read(&val, oldval, newval):"; AO_compare_and_swap_acquire_read(&val, oldval, newval); # else "No AO_compare_and_swap_acquire_read"; # endif }