#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 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. */ #include /* for exit() */ void list_atomic(void) { # if defined(AO_HAVE_load) || defined(AO_HAVE_store) \ || defined(AO_HAVE_fetch_and_add) \ || defined(AO_HAVE_fetch_and_add1) \ || defined(AO_HAVE_and) \ || defined(AO_HAVE_compare_and_swap) \ || defined(AO_HAVE_fetch_compare_and_swap) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap) \ || defined(AO_HAVE_fetch_compare_and_swap) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store) \ || defined(AO_HAVE_compare_and_swap) \ || defined(AO_HAVE_fetch_compare_and_swap) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add) || defined(AO_HAVE_and) \ || defined(AO_HAVE_or) || defined(AO_HAVE_xor) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop) (void)"AO_nop(): "; AO_nop(); # else (void)"No AO_nop"; # endif # ifdef AO_HAVE_load (void)"AO_load(&val):"; (void)AO_load(&val); # else (void)"No AO_load"; # endif # ifdef AO_HAVE_store (void)"AO_store(&val, newval):"; AO_store(&val, newval); # else (void)"No AO_store"; # endif # ifdef AO_HAVE_fetch_and_add (void)"AO_fetch_and_add(&val, incr):"; (void)AO_fetch_and_add(&val, incr); # else (void)"No AO_fetch_and_add"; # endif # ifdef AO_HAVE_fetch_and_add1 (void)"AO_fetch_and_add1(&val):"; (void)AO_fetch_and_add1(&val); # else (void)"No AO_fetch_and_add1"; # endif # ifdef AO_HAVE_fetch_and_sub1 (void)"AO_fetch_and_sub1(&val):"; (void)AO_fetch_and_sub1(&val); # else (void)"No AO_fetch_and_sub1"; # endif # ifdef AO_HAVE_and (void)"AO_and(&val, incr):"; AO_and(&val, incr); # else (void)"No AO_and"; # endif # ifdef AO_HAVE_or (void)"AO_or(&val, incr):"; AO_or(&val, incr); # else (void)"No AO_or"; # endif # ifdef AO_HAVE_xor (void)"AO_xor(&val, incr):"; AO_xor(&val, incr); # else (void)"No AO_xor"; # endif # ifdef AO_HAVE_compare_and_swap (void)"AO_compare_and_swap(&val, oldval, newval):"; if (!AO_compare_and_swap(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap"; # endif /* TODO: Add AO_compare_double_and_swap_double */ /* TODO: Add AO_compare_and_swap_double */ # ifdef AO_HAVE_fetch_compare_and_swap (void)"AO_fetch_compare_and_swap(&val, oldval, newval):"; if (AO_fetch_compare_and_swap(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap"; # endif # if defined(AO_HAVE_test_and_set) (void)"AO_test_and_set(&ts):"; (void)AO_test_and_set(&ts); # else (void)"No AO_test_and_set"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see 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. */ #include /* for exit() */ void list_atomic_release(void) { # if defined(AO_HAVE_load_release) || defined(AO_HAVE_store_release) \ || defined(AO_HAVE_fetch_and_add_release) \ || defined(AO_HAVE_fetch_and_add1_release) \ || defined(AO_HAVE_and_release) \ || defined(AO_HAVE_compare_and_swap_release) \ || defined(AO_HAVE_fetch_compare_and_swap_release) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_release) \ || defined(AO_HAVE_fetch_compare_and_swap_release) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_release) \ || defined(AO_HAVE_compare_and_swap_release) \ || defined(AO_HAVE_fetch_compare_and_swap_release) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_release) || defined(AO_HAVE_and_release) \ || defined(AO_HAVE_or_release) || defined(AO_HAVE_xor_release) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release) (void)"AO_nop_release(): "; AO_nop_release(); # else (void)"No AO_nop_release"; # endif # ifdef AO_HAVE_load_release (void)"AO_load_release(&val):"; (void)AO_load_release(&val); # else (void)"No AO_load_release"; # endif # ifdef AO_HAVE_store_release (void)"AO_store_release(&val, newval):"; AO_store_release(&val, newval); # else (void)"No AO_store_release"; # endif # ifdef AO_HAVE_fetch_and_add_release (void)"AO_fetch_and_add_release(&val, incr):"; (void)AO_fetch_and_add_release(&val, incr); # else (void)"No AO_fetch_and_add_release"; # endif # ifdef AO_HAVE_fetch_and_add1_release (void)"AO_fetch_and_add1_release(&val):"; (void)AO_fetch_and_add1_release(&val); # else (void)"No AO_fetch_and_add1_release"; # endif # ifdef AO_HAVE_fetch_and_sub1_release (void)"AO_fetch_and_sub1_release(&val):"; (void)AO_fetch_and_sub1_release(&val); # else (void)"No AO_fetch_and_sub1_release"; # endif # ifdef AO_HAVE_and_release (void)"AO_and_release(&val, incr):"; AO_and_release(&val, incr); # else (void)"No AO_and_release"; # endif # ifdef AO_HAVE_or_release (void)"AO_or_release(&val, incr):"; AO_or_release(&val, incr); # else (void)"No AO_or_release"; # endif # ifdef AO_HAVE_xor_release (void)"AO_xor_release(&val, incr):"; AO_xor_release(&val, incr); # else (void)"No AO_xor_release"; # endif # ifdef AO_HAVE_compare_and_swap_release (void)"AO_compare_and_swap_release(&val, oldval, newval):"; if (!AO_compare_and_swap_release(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_release"; # endif /* TODO: Add AO_compare_double_and_swap_double_release */ /* TODO: Add AO_compare_and_swap_double_release */ # ifdef AO_HAVE_fetch_compare_and_swap_release (void)"AO_fetch_compare_and_swap_release(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_release(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_release"; # endif # if defined(AO_HAVE_test_and_set_release) (void)"AO_test_and_set_release(&ts):"; (void)AO_test_and_set_release(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_acquire(void) { # if defined(AO_HAVE_load_acquire) || defined(AO_HAVE_store_acquire) \ || defined(AO_HAVE_fetch_and_add_acquire) \ || defined(AO_HAVE_fetch_and_add1_acquire) \ || defined(AO_HAVE_and_acquire) \ || defined(AO_HAVE_compare_and_swap_acquire) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_acquire) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_acquire) \ || defined(AO_HAVE_compare_and_swap_acquire) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_acquire) || defined(AO_HAVE_and_acquire) \ || defined(AO_HAVE_or_acquire) || defined(AO_HAVE_xor_acquire) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire) (void)"AO_nop_acquire(): "; AO_nop_acquire(); # else (void)"No AO_nop_acquire"; # endif # ifdef AO_HAVE_load_acquire (void)"AO_load_acquire(&val):"; (void)AO_load_acquire(&val); # else (void)"No AO_load_acquire"; # endif # ifdef AO_HAVE_store_acquire (void)"AO_store_acquire(&val, newval):"; AO_store_acquire(&val, newval); # else (void)"No AO_store_acquire"; # endif # ifdef AO_HAVE_fetch_and_add_acquire (void)"AO_fetch_and_add_acquire(&val, incr):"; (void)AO_fetch_and_add_acquire(&val, incr); # else (void)"No AO_fetch_and_add_acquire"; # endif # ifdef AO_HAVE_fetch_and_add1_acquire (void)"AO_fetch_and_add1_acquire(&val):"; (void)AO_fetch_and_add1_acquire(&val); # else (void)"No AO_fetch_and_add1_acquire"; # endif # ifdef AO_HAVE_fetch_and_sub1_acquire (void)"AO_fetch_and_sub1_acquire(&val):"; (void)AO_fetch_and_sub1_acquire(&val); # else (void)"No AO_fetch_and_sub1_acquire"; # endif # ifdef AO_HAVE_and_acquire (void)"AO_and_acquire(&val, incr):"; AO_and_acquire(&val, incr); # else (void)"No AO_and_acquire"; # endif # ifdef AO_HAVE_or_acquire (void)"AO_or_acquire(&val, incr):"; AO_or_acquire(&val, incr); # else (void)"No AO_or_acquire"; # endif # ifdef AO_HAVE_xor_acquire (void)"AO_xor_acquire(&val, incr):"; AO_xor_acquire(&val, incr); # else (void)"No AO_xor_acquire"; # endif # ifdef AO_HAVE_compare_and_swap_acquire (void)"AO_compare_and_swap_acquire(&val, oldval, newval):"; if (!AO_compare_and_swap_acquire(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_acquire"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire */ /* TODO: Add AO_compare_and_swap_double_acquire */ # ifdef AO_HAVE_fetch_compare_and_swap_acquire (void)"AO_fetch_compare_and_swap_acquire(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_acquire(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) (void)"AO_test_and_set_acquire(&ts):"; (void)AO_test_and_set_acquire(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_read(void) { # if defined(AO_HAVE_load_read) || defined(AO_HAVE_store_read) \ || defined(AO_HAVE_fetch_and_add_read) \ || defined(AO_HAVE_fetch_and_add1_read) \ || defined(AO_HAVE_and_read) \ || defined(AO_HAVE_compare_and_swap_read) \ || defined(AO_HAVE_fetch_compare_and_swap_read) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_read) \ || defined(AO_HAVE_fetch_compare_and_swap_read) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_read) \ || defined(AO_HAVE_compare_and_swap_read) \ || defined(AO_HAVE_fetch_compare_and_swap_read) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_read) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_read) || defined(AO_HAVE_and_read) \ || defined(AO_HAVE_or_read) || defined(AO_HAVE_xor_read) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_read) (void)"AO_nop_read(): "; AO_nop_read(); # else (void)"No AO_nop_read"; # endif # ifdef AO_HAVE_load_read (void)"AO_load_read(&val):"; (void)AO_load_read(&val); # else (void)"No AO_load_read"; # endif # ifdef AO_HAVE_store_read (void)"AO_store_read(&val, newval):"; AO_store_read(&val, newval); # else (void)"No AO_store_read"; # endif # ifdef AO_HAVE_fetch_and_add_read (void)"AO_fetch_and_add_read(&val, incr):"; (void)AO_fetch_and_add_read(&val, incr); # else (void)"No AO_fetch_and_add_read"; # endif # ifdef AO_HAVE_fetch_and_add1_read (void)"AO_fetch_and_add1_read(&val):"; (void)AO_fetch_and_add1_read(&val); # else (void)"No AO_fetch_and_add1_read"; # endif # ifdef AO_HAVE_fetch_and_sub1_read (void)"AO_fetch_and_sub1_read(&val):"; (void)AO_fetch_and_sub1_read(&val); # else (void)"No AO_fetch_and_sub1_read"; # endif # ifdef AO_HAVE_and_read (void)"AO_and_read(&val, incr):"; AO_and_read(&val, incr); # else (void)"No AO_and_read"; # endif # ifdef AO_HAVE_or_read (void)"AO_or_read(&val, incr):"; AO_or_read(&val, incr); # else (void)"No AO_or_read"; # endif # ifdef AO_HAVE_xor_read (void)"AO_xor_read(&val, incr):"; AO_xor_read(&val, incr); # else (void)"No AO_xor_read"; # endif # ifdef AO_HAVE_compare_and_swap_read (void)"AO_compare_and_swap_read(&val, oldval, newval):"; if (!AO_compare_and_swap_read(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_read */ /* TODO: Add AO_compare_and_swap_double_read */ # ifdef AO_HAVE_fetch_compare_and_swap_read (void)"AO_fetch_compare_and_swap_read(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_read"; # endif # if defined(AO_HAVE_test_and_set_read) (void)"AO_test_and_set_read(&ts):"; (void)AO_test_and_set_read(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_write(void) { # if defined(AO_HAVE_load_write) || defined(AO_HAVE_store_write) \ || defined(AO_HAVE_fetch_and_add_write) \ || defined(AO_HAVE_fetch_and_add1_write) \ || defined(AO_HAVE_and_write) \ || defined(AO_HAVE_compare_and_swap_write) \ || defined(AO_HAVE_fetch_compare_and_swap_write) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_write) \ || defined(AO_HAVE_fetch_compare_and_swap_write) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_write) \ || defined(AO_HAVE_compare_and_swap_write) \ || defined(AO_HAVE_fetch_compare_and_swap_write) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_write) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_write) || defined(AO_HAVE_and_write) \ || defined(AO_HAVE_or_write) || defined(AO_HAVE_xor_write) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_write) (void)"AO_nop_write(): "; AO_nop_write(); # else (void)"No AO_nop_write"; # endif # ifdef AO_HAVE_load_write (void)"AO_load_write(&val):"; (void)AO_load_write(&val); # else (void)"No AO_load_write"; # endif # ifdef AO_HAVE_store_write (void)"AO_store_write(&val, newval):"; AO_store_write(&val, newval); # else (void)"No AO_store_write"; # endif # ifdef AO_HAVE_fetch_and_add_write (void)"AO_fetch_and_add_write(&val, incr):"; (void)AO_fetch_and_add_write(&val, incr); # else (void)"No AO_fetch_and_add_write"; # endif # ifdef AO_HAVE_fetch_and_add1_write (void)"AO_fetch_and_add1_write(&val):"; (void)AO_fetch_and_add1_write(&val); # else (void)"No AO_fetch_and_add1_write"; # endif # ifdef AO_HAVE_fetch_and_sub1_write (void)"AO_fetch_and_sub1_write(&val):"; (void)AO_fetch_and_sub1_write(&val); # else (void)"No AO_fetch_and_sub1_write"; # endif # ifdef AO_HAVE_and_write (void)"AO_and_write(&val, incr):"; AO_and_write(&val, incr); # else (void)"No AO_and_write"; # endif # ifdef AO_HAVE_or_write (void)"AO_or_write(&val, incr):"; AO_or_write(&val, incr); # else (void)"No AO_or_write"; # endif # ifdef AO_HAVE_xor_write (void)"AO_xor_write(&val, incr):"; AO_xor_write(&val, incr); # else (void)"No AO_xor_write"; # endif # ifdef AO_HAVE_compare_and_swap_write (void)"AO_compare_and_swap_write(&val, oldval, newval):"; if (!AO_compare_and_swap_write(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_write */ /* TODO: Add AO_compare_and_swap_double_write */ # ifdef AO_HAVE_fetch_compare_and_swap_write (void)"AO_fetch_compare_and_swap_write(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_write"; # endif # if defined(AO_HAVE_test_and_set_write) (void)"AO_test_and_set_write(&ts):"; (void)AO_test_and_set_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_full(void) { # if defined(AO_HAVE_load_full) || defined(AO_HAVE_store_full) \ || defined(AO_HAVE_fetch_and_add_full) \ || defined(AO_HAVE_fetch_and_add1_full) \ || defined(AO_HAVE_and_full) \ || defined(AO_HAVE_compare_and_swap_full) \ || defined(AO_HAVE_fetch_compare_and_swap_full) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_full) \ || defined(AO_HAVE_fetch_compare_and_swap_full) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_full) \ || defined(AO_HAVE_compare_and_swap_full) \ || defined(AO_HAVE_fetch_compare_and_swap_full) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_full) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_full) || defined(AO_HAVE_and_full) \ || defined(AO_HAVE_or_full) || defined(AO_HAVE_xor_full) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_full) (void)"AO_nop_full(): "; AO_nop_full(); # else (void)"No AO_nop_full"; # endif # ifdef AO_HAVE_load_full (void)"AO_load_full(&val):"; (void)AO_load_full(&val); # else (void)"No AO_load_full"; # endif # ifdef AO_HAVE_store_full (void)"AO_store_full(&val, newval):"; AO_store_full(&val, newval); # else (void)"No AO_store_full"; # endif # ifdef AO_HAVE_fetch_and_add_full (void)"AO_fetch_and_add_full(&val, incr):"; (void)AO_fetch_and_add_full(&val, incr); # else (void)"No AO_fetch_and_add_full"; # endif # ifdef AO_HAVE_fetch_and_add1_full (void)"AO_fetch_and_add1_full(&val):"; (void)AO_fetch_and_add1_full(&val); # else (void)"No AO_fetch_and_add1_full"; # endif # ifdef AO_HAVE_fetch_and_sub1_full (void)"AO_fetch_and_sub1_full(&val):"; (void)AO_fetch_and_sub1_full(&val); # else (void)"No AO_fetch_and_sub1_full"; # endif # ifdef AO_HAVE_and_full (void)"AO_and_full(&val, incr):"; AO_and_full(&val, incr); # else (void)"No AO_and_full"; # endif # ifdef AO_HAVE_or_full (void)"AO_or_full(&val, incr):"; AO_or_full(&val, incr); # else (void)"No AO_or_full"; # endif # ifdef AO_HAVE_xor_full (void)"AO_xor_full(&val, incr):"; AO_xor_full(&val, incr); # else (void)"No AO_xor_full"; # endif # ifdef AO_HAVE_compare_and_swap_full (void)"AO_compare_and_swap_full(&val, oldval, newval):"; if (!AO_compare_and_swap_full(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_full"; # endif /* TODO: Add AO_compare_double_and_swap_double_full */ /* TODO: Add AO_compare_and_swap_double_full */ # ifdef AO_HAVE_fetch_compare_and_swap_full (void)"AO_fetch_compare_and_swap_full(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_full(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_full"; # endif # if defined(AO_HAVE_test_and_set_full) (void)"AO_test_and_set_full(&ts):"; (void)AO_test_and_set_full(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_release_write(void) { # if defined(AO_HAVE_load_release_write) || defined(AO_HAVE_store_release_write) \ || defined(AO_HAVE_fetch_and_add_release_write) \ || defined(AO_HAVE_fetch_and_add1_release_write) \ || defined(AO_HAVE_and_release_write) \ || defined(AO_HAVE_compare_and_swap_release_write) \ || defined(AO_HAVE_fetch_compare_and_swap_release_write) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_release_write) \ || defined(AO_HAVE_fetch_compare_and_swap_release_write) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_release_write) \ || defined(AO_HAVE_compare_and_swap_release_write) \ || defined(AO_HAVE_fetch_compare_and_swap_release_write) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release_write) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_release_write) || defined(AO_HAVE_and_release_write) \ || defined(AO_HAVE_or_release_write) || defined(AO_HAVE_xor_release_write) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release_write) (void)"AO_nop_release_write(): "; AO_nop_release_write(); # else (void)"No AO_nop_release_write"; # endif # ifdef AO_HAVE_load_release_write (void)"AO_load_release_write(&val):"; (void)AO_load_release_write(&val); # else (void)"No AO_load_release_write"; # endif # ifdef AO_HAVE_store_release_write (void)"AO_store_release_write(&val, newval):"; AO_store_release_write(&val, newval); # else (void)"No AO_store_release_write"; # endif # ifdef AO_HAVE_fetch_and_add_release_write (void)"AO_fetch_and_add_release_write(&val, incr):"; (void)AO_fetch_and_add_release_write(&val, incr); # else (void)"No AO_fetch_and_add_release_write"; # endif # ifdef AO_HAVE_fetch_and_add1_release_write (void)"AO_fetch_and_add1_release_write(&val):"; (void)AO_fetch_and_add1_release_write(&val); # else (void)"No AO_fetch_and_add1_release_write"; # endif # ifdef AO_HAVE_fetch_and_sub1_release_write (void)"AO_fetch_and_sub1_release_write(&val):"; (void)AO_fetch_and_sub1_release_write(&val); # else (void)"No AO_fetch_and_sub1_release_write"; # endif # ifdef AO_HAVE_and_release_write (void)"AO_and_release_write(&val, incr):"; AO_and_release_write(&val, incr); # else (void)"No AO_and_release_write"; # endif # ifdef AO_HAVE_or_release_write (void)"AO_or_release_write(&val, incr):"; AO_or_release_write(&val, incr); # else (void)"No AO_or_release_write"; # endif # ifdef AO_HAVE_xor_release_write (void)"AO_xor_release_write(&val, incr):"; AO_xor_release_write(&val, incr); # else (void)"No AO_xor_release_write"; # endif # ifdef AO_HAVE_compare_and_swap_release_write (void)"AO_compare_and_swap_release_write(&val, oldval, newval):"; if (!AO_compare_and_swap_release_write(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_release_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_release_write */ /* TODO: Add AO_compare_and_swap_double_release_write */ # ifdef AO_HAVE_fetch_compare_and_swap_release_write (void)"AO_fetch_compare_and_swap_release_write(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_release_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) (void)"AO_test_and_set_release_write(&ts):"; (void)AO_test_and_set_release_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void list_atomic_acquire_read(void) { # if defined(AO_HAVE_load_acquire_read) || defined(AO_HAVE_store_acquire_read) \ || defined(AO_HAVE_fetch_and_add_acquire_read) \ || defined(AO_HAVE_fetch_and_add1_acquire_read) \ || defined(AO_HAVE_and_acquire_read) \ || defined(AO_HAVE_compare_and_swap_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire_read) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire_read) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_acquire_read) \ || defined(AO_HAVE_compare_and_swap_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_acquire_read) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_acquire_read) || defined(AO_HAVE_and_acquire_read) \ || defined(AO_HAVE_or_acquire_read) || defined(AO_HAVE_xor_acquire_read) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire_read) (void)"AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else (void)"No AO_nop_acquire_read"; # endif # ifdef AO_HAVE_load_acquire_read (void)"AO_load_acquire_read(&val):"; (void)AO_load_acquire_read(&val); # else (void)"No AO_load_acquire_read"; # endif # ifdef AO_HAVE_store_acquire_read (void)"AO_store_acquire_read(&val, newval):"; AO_store_acquire_read(&val, newval); # else (void)"No AO_store_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_add_acquire_read (void)"AO_fetch_and_add_acquire_read(&val, incr):"; (void)AO_fetch_and_add_acquire_read(&val, incr); # else (void)"No AO_fetch_and_add_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_add1_acquire_read (void)"AO_fetch_and_add1_acquire_read(&val):"; (void)AO_fetch_and_add1_acquire_read(&val); # else (void)"No AO_fetch_and_add1_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_sub1_acquire_read (void)"AO_fetch_and_sub1_acquire_read(&val):"; (void)AO_fetch_and_sub1_acquire_read(&val); # else (void)"No AO_fetch_and_sub1_acquire_read"; # endif # ifdef AO_HAVE_and_acquire_read (void)"AO_and_acquire_read(&val, incr):"; AO_and_acquire_read(&val, incr); # else (void)"No AO_and_acquire_read"; # endif # ifdef AO_HAVE_or_acquire_read (void)"AO_or_acquire_read(&val, incr):"; AO_or_acquire_read(&val, incr); # else (void)"No AO_or_acquire_read"; # endif # ifdef AO_HAVE_xor_acquire_read (void)"AO_xor_acquire_read(&val, incr):"; AO_xor_acquire_read(&val, incr); # else (void)"No AO_xor_acquire_read"; # endif # ifdef AO_HAVE_compare_and_swap_acquire_read (void)"AO_compare_and_swap_acquire_read(&val, oldval, newval):"; if (!AO_compare_and_swap_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire_read */ /* TODO: Add AO_compare_and_swap_double_acquire_read */ # ifdef AO_HAVE_fetch_compare_and_swap_acquire_read (void)"AO_fetch_compare_and_swap_acquire_read(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) (void)"AO_test_and_set_acquire_read(&ts):"; (void)AO_test_and_set_acquire_read(&ts); # else (void)"No AO_test_and_set_acquire_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 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. */ #include /* for exit() */ void list_atomic_dd_acquire_read(void) { # if defined(AO_HAVE_load_dd_acquire_read) || defined(AO_HAVE_store_dd_acquire_read) \ || defined(AO_HAVE_fetch_and_add_dd_acquire_read) \ || defined(AO_HAVE_fetch_and_add1_dd_acquire_read) \ || defined(AO_HAVE_and_dd_acquire_read) \ || defined(AO_HAVE_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_dd_acquire_read) static volatile AO_t val /* = 0 */; # endif # if defined(AO_HAVE_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_dd_acquire_read) static AO_t oldval /* = 0 */; # endif # if defined(AO_HAVE_store_dd_acquire_read) \ || defined(AO_HAVE_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_fetch_compare_and_swap_dd_acquire_read) static AO_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_fetch_and_add_dd_acquire_read) || defined(AO_HAVE_and_dd_acquire_read) \ || defined(AO_HAVE_or_dd_acquire_read) || defined(AO_HAVE_xor_dd_acquire_read) static AO_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_dd_acquire_read) (void)"AO_nop_dd_acquire_read(): "; AO_nop_dd_acquire_read(); # else (void)"No AO_nop_dd_acquire_read"; # endif # ifdef AO_HAVE_load_dd_acquire_read (void)"AO_load_dd_acquire_read(&val):"; (void)AO_load_dd_acquire_read(&val); # else (void)"No AO_load_dd_acquire_read"; # endif # ifdef AO_HAVE_store_dd_acquire_read (void)"AO_store_dd_acquire_read(&val, newval):"; AO_store_dd_acquire_read(&val, newval); # else (void)"No AO_store_dd_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_add_dd_acquire_read (void)"AO_fetch_and_add_dd_acquire_read(&val, incr):"; (void)AO_fetch_and_add_dd_acquire_read(&val, incr); # else (void)"No AO_fetch_and_add_dd_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_add1_dd_acquire_read (void)"AO_fetch_and_add1_dd_acquire_read(&val):"; (void)AO_fetch_and_add1_dd_acquire_read(&val); # else (void)"No AO_fetch_and_add1_dd_acquire_read"; # endif # ifdef AO_HAVE_fetch_and_sub1_dd_acquire_read (void)"AO_fetch_and_sub1_dd_acquire_read(&val):"; (void)AO_fetch_and_sub1_dd_acquire_read(&val); # else (void)"No AO_fetch_and_sub1_dd_acquire_read"; # endif # ifdef AO_HAVE_and_dd_acquire_read (void)"AO_and_dd_acquire_read(&val, incr):"; AO_and_dd_acquire_read(&val, incr); # else (void)"No AO_and_dd_acquire_read"; # endif # ifdef AO_HAVE_or_dd_acquire_read (void)"AO_or_dd_acquire_read(&val, incr):"; AO_or_dd_acquire_read(&val, incr); # else (void)"No AO_or_dd_acquire_read"; # endif # ifdef AO_HAVE_xor_dd_acquire_read (void)"AO_xor_dd_acquire_read(&val, incr):"; AO_xor_dd_acquire_read(&val, incr); # else (void)"No AO_xor_dd_acquire_read"; # endif # ifdef AO_HAVE_compare_and_swap_dd_acquire_read (void)"AO_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (!AO_compare_and_swap_dd_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_compare_and_swap_dd_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_dd_acquire_read */ /* TODO: Add AO_compare_and_swap_double_dd_acquire_read */ # ifdef AO_HAVE_fetch_compare_and_swap_dd_acquire_read (void)"AO_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (AO_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_fetch_compare_and_swap_dd_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) (void)"AO_test_and_set_dd_acquire_read(&ts):"; (void)AO_test_and_set_dd_acquire_read(&ts); # else (void)"No AO_test_and_set_dd_acquire_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 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. */ #include /* for exit() */ void char_list_atomic(void) { # if defined(AO_HAVE_char_load) || defined(AO_HAVE_char_store) \ || defined(AO_HAVE_char_fetch_and_add) \ || defined(AO_HAVE_char_fetch_and_add1) \ || defined(AO_HAVE_char_and) \ || defined(AO_HAVE_char_compare_and_swap) \ || defined(AO_HAVE_char_fetch_compare_and_swap) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap) \ || defined(AO_HAVE_char_fetch_compare_and_swap) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store) \ || defined(AO_HAVE_char_compare_and_swap) \ || defined(AO_HAVE_char_fetch_compare_and_swap) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add) || defined(AO_HAVE_char_and) \ || defined(AO_HAVE_char_or) || defined(AO_HAVE_char_xor) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop) (void)"AO_nop(): "; AO_nop(); # else (void)"No AO_nop"; # endif # ifdef AO_HAVE_char_load (void)"AO_char_load(&val):"; (void)AO_char_load(&val); # else (void)"No AO_char_load"; # endif # ifdef AO_HAVE_char_store (void)"AO_char_store(&val, newval):"; AO_char_store(&val, newval); # else (void)"No AO_char_store"; # endif # ifdef AO_HAVE_char_fetch_and_add (void)"AO_char_fetch_and_add(&val, incr):"; (void)AO_char_fetch_and_add(&val, incr); # else (void)"No AO_char_fetch_and_add"; # endif # ifdef AO_HAVE_char_fetch_and_add1 (void)"AO_char_fetch_and_add1(&val):"; (void)AO_char_fetch_and_add1(&val); # else (void)"No AO_char_fetch_and_add1"; # endif # ifdef AO_HAVE_char_fetch_and_sub1 (void)"AO_char_fetch_and_sub1(&val):"; (void)AO_char_fetch_and_sub1(&val); # else (void)"No AO_char_fetch_and_sub1"; # endif # ifdef AO_HAVE_char_and (void)"AO_char_and(&val, incr):"; AO_char_and(&val, incr); # else (void)"No AO_char_and"; # endif # ifdef AO_HAVE_char_or (void)"AO_char_or(&val, incr):"; AO_char_or(&val, incr); # else (void)"No AO_char_or"; # endif # ifdef AO_HAVE_char_xor (void)"AO_char_xor(&val, incr):"; AO_char_xor(&val, incr); # else (void)"No AO_char_xor"; # endif # ifdef AO_HAVE_char_compare_and_swap (void)"AO_char_compare_and_swap(&val, oldval, newval):"; if (!AO_char_compare_and_swap(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap"; # endif /* TODO: Add AO_compare_double_and_swap_double */ /* TODO: Add AO_compare_and_swap_double */ # ifdef AO_HAVE_char_fetch_compare_and_swap (void)"AO_char_fetch_compare_and_swap(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap"; # endif # if defined(AO_HAVE_test_and_set) (void)"AO_test_and_set(&ts):"; (void)AO_test_and_set(&ts); # else (void)"No AO_test_and_set"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see 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. */ #include /* for exit() */ void char_list_atomic_release(void) { # if defined(AO_HAVE_char_load_release) || defined(AO_HAVE_char_store_release) \ || defined(AO_HAVE_char_fetch_and_add_release) \ || defined(AO_HAVE_char_fetch_and_add1_release) \ || defined(AO_HAVE_char_and_release) \ || defined(AO_HAVE_char_compare_and_swap_release) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_release) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_release) \ || defined(AO_HAVE_char_compare_and_swap_release) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_release) || defined(AO_HAVE_char_and_release) \ || defined(AO_HAVE_char_or_release) || defined(AO_HAVE_char_xor_release) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release) (void)"AO_nop_release(): "; AO_nop_release(); # else (void)"No AO_nop_release"; # endif # ifdef AO_HAVE_char_load_release (void)"AO_char_load_release(&val):"; (void)AO_char_load_release(&val); # else (void)"No AO_char_load_release"; # endif # ifdef AO_HAVE_char_store_release (void)"AO_char_store_release(&val, newval):"; AO_char_store_release(&val, newval); # else (void)"No AO_char_store_release"; # endif # ifdef AO_HAVE_char_fetch_and_add_release (void)"AO_char_fetch_and_add_release(&val, incr):"; (void)AO_char_fetch_and_add_release(&val, incr); # else (void)"No AO_char_fetch_and_add_release"; # endif # ifdef AO_HAVE_char_fetch_and_add1_release (void)"AO_char_fetch_and_add1_release(&val):"; (void)AO_char_fetch_and_add1_release(&val); # else (void)"No AO_char_fetch_and_add1_release"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_release (void)"AO_char_fetch_and_sub1_release(&val):"; (void)AO_char_fetch_and_sub1_release(&val); # else (void)"No AO_char_fetch_and_sub1_release"; # endif # ifdef AO_HAVE_char_and_release (void)"AO_char_and_release(&val, incr):"; AO_char_and_release(&val, incr); # else (void)"No AO_char_and_release"; # endif # ifdef AO_HAVE_char_or_release (void)"AO_char_or_release(&val, incr):"; AO_char_or_release(&val, incr); # else (void)"No AO_char_or_release"; # endif # ifdef AO_HAVE_char_xor_release (void)"AO_char_xor_release(&val, incr):"; AO_char_xor_release(&val, incr); # else (void)"No AO_char_xor_release"; # endif # ifdef AO_HAVE_char_compare_and_swap_release (void)"AO_char_compare_and_swap_release(&val, oldval, newval):"; if (!AO_char_compare_and_swap_release(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_release"; # endif /* TODO: Add AO_compare_double_and_swap_double_release */ /* TODO: Add AO_compare_and_swap_double_release */ # ifdef AO_HAVE_char_fetch_compare_and_swap_release (void)"AO_char_fetch_compare_and_swap_release(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_release(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_release"; # endif # if defined(AO_HAVE_test_and_set_release) (void)"AO_test_and_set_release(&ts):"; (void)AO_test_and_set_release(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_acquire(void) { # if defined(AO_HAVE_char_load_acquire) || defined(AO_HAVE_char_store_acquire) \ || defined(AO_HAVE_char_fetch_and_add_acquire) \ || defined(AO_HAVE_char_fetch_and_add1_acquire) \ || defined(AO_HAVE_char_and_acquire) \ || defined(AO_HAVE_char_compare_and_swap_acquire) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_acquire) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_acquire) \ || defined(AO_HAVE_char_compare_and_swap_acquire) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_acquire) || defined(AO_HAVE_char_and_acquire) \ || defined(AO_HAVE_char_or_acquire) || defined(AO_HAVE_char_xor_acquire) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire) (void)"AO_nop_acquire(): "; AO_nop_acquire(); # else (void)"No AO_nop_acquire"; # endif # ifdef AO_HAVE_char_load_acquire (void)"AO_char_load_acquire(&val):"; (void)AO_char_load_acquire(&val); # else (void)"No AO_char_load_acquire"; # endif # ifdef AO_HAVE_char_store_acquire (void)"AO_char_store_acquire(&val, newval):"; AO_char_store_acquire(&val, newval); # else (void)"No AO_char_store_acquire"; # endif # ifdef AO_HAVE_char_fetch_and_add_acquire (void)"AO_char_fetch_and_add_acquire(&val, incr):"; (void)AO_char_fetch_and_add_acquire(&val, incr); # else (void)"No AO_char_fetch_and_add_acquire"; # endif # ifdef AO_HAVE_char_fetch_and_add1_acquire (void)"AO_char_fetch_and_add1_acquire(&val):"; (void)AO_char_fetch_and_add1_acquire(&val); # else (void)"No AO_char_fetch_and_add1_acquire"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_acquire (void)"AO_char_fetch_and_sub1_acquire(&val):"; (void)AO_char_fetch_and_sub1_acquire(&val); # else (void)"No AO_char_fetch_and_sub1_acquire"; # endif # ifdef AO_HAVE_char_and_acquire (void)"AO_char_and_acquire(&val, incr):"; AO_char_and_acquire(&val, incr); # else (void)"No AO_char_and_acquire"; # endif # ifdef AO_HAVE_char_or_acquire (void)"AO_char_or_acquire(&val, incr):"; AO_char_or_acquire(&val, incr); # else (void)"No AO_char_or_acquire"; # endif # ifdef AO_HAVE_char_xor_acquire (void)"AO_char_xor_acquire(&val, incr):"; AO_char_xor_acquire(&val, incr); # else (void)"No AO_char_xor_acquire"; # endif # ifdef AO_HAVE_char_compare_and_swap_acquire (void)"AO_char_compare_and_swap_acquire(&val, oldval, newval):"; if (!AO_char_compare_and_swap_acquire(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_acquire"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire */ /* TODO: Add AO_compare_and_swap_double_acquire */ # ifdef AO_HAVE_char_fetch_compare_and_swap_acquire (void)"AO_char_fetch_compare_and_swap_acquire(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_acquire(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) (void)"AO_test_and_set_acquire(&ts):"; (void)AO_test_and_set_acquire(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_read(void) { # if defined(AO_HAVE_char_load_read) || defined(AO_HAVE_char_store_read) \ || defined(AO_HAVE_char_fetch_and_add_read) \ || defined(AO_HAVE_char_fetch_and_add1_read) \ || defined(AO_HAVE_char_and_read) \ || defined(AO_HAVE_char_compare_and_swap_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_read) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_read) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_read) \ || defined(AO_HAVE_char_compare_and_swap_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_read) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_read) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_read) || defined(AO_HAVE_char_and_read) \ || defined(AO_HAVE_char_or_read) || defined(AO_HAVE_char_xor_read) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_read) (void)"AO_nop_read(): "; AO_nop_read(); # else (void)"No AO_nop_read"; # endif # ifdef AO_HAVE_char_load_read (void)"AO_char_load_read(&val):"; (void)AO_char_load_read(&val); # else (void)"No AO_char_load_read"; # endif # ifdef AO_HAVE_char_store_read (void)"AO_char_store_read(&val, newval):"; AO_char_store_read(&val, newval); # else (void)"No AO_char_store_read"; # endif # ifdef AO_HAVE_char_fetch_and_add_read (void)"AO_char_fetch_and_add_read(&val, incr):"; (void)AO_char_fetch_and_add_read(&val, incr); # else (void)"No AO_char_fetch_and_add_read"; # endif # ifdef AO_HAVE_char_fetch_and_add1_read (void)"AO_char_fetch_and_add1_read(&val):"; (void)AO_char_fetch_and_add1_read(&val); # else (void)"No AO_char_fetch_and_add1_read"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_read (void)"AO_char_fetch_and_sub1_read(&val):"; (void)AO_char_fetch_and_sub1_read(&val); # else (void)"No AO_char_fetch_and_sub1_read"; # endif # ifdef AO_HAVE_char_and_read (void)"AO_char_and_read(&val, incr):"; AO_char_and_read(&val, incr); # else (void)"No AO_char_and_read"; # endif # ifdef AO_HAVE_char_or_read (void)"AO_char_or_read(&val, incr):"; AO_char_or_read(&val, incr); # else (void)"No AO_char_or_read"; # endif # ifdef AO_HAVE_char_xor_read (void)"AO_char_xor_read(&val, incr):"; AO_char_xor_read(&val, incr); # else (void)"No AO_char_xor_read"; # endif # ifdef AO_HAVE_char_compare_and_swap_read (void)"AO_char_compare_and_swap_read(&val, oldval, newval):"; if (!AO_char_compare_and_swap_read(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_read */ /* TODO: Add AO_compare_and_swap_double_read */ # ifdef AO_HAVE_char_fetch_compare_and_swap_read (void)"AO_char_fetch_compare_and_swap_read(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_read"; # endif # if defined(AO_HAVE_test_and_set_read) (void)"AO_test_and_set_read(&ts):"; (void)AO_test_and_set_read(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_write(void) { # if defined(AO_HAVE_char_load_write) || defined(AO_HAVE_char_store_write) \ || defined(AO_HAVE_char_fetch_and_add_write) \ || defined(AO_HAVE_char_fetch_and_add1_write) \ || defined(AO_HAVE_char_and_write) \ || defined(AO_HAVE_char_compare_and_swap_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_write) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_write) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_write) \ || defined(AO_HAVE_char_compare_and_swap_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_write) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_write) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_write) || defined(AO_HAVE_char_and_write) \ || defined(AO_HAVE_char_or_write) || defined(AO_HAVE_char_xor_write) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_write) (void)"AO_nop_write(): "; AO_nop_write(); # else (void)"No AO_nop_write"; # endif # ifdef AO_HAVE_char_load_write (void)"AO_char_load_write(&val):"; (void)AO_char_load_write(&val); # else (void)"No AO_char_load_write"; # endif # ifdef AO_HAVE_char_store_write (void)"AO_char_store_write(&val, newval):"; AO_char_store_write(&val, newval); # else (void)"No AO_char_store_write"; # endif # ifdef AO_HAVE_char_fetch_and_add_write (void)"AO_char_fetch_and_add_write(&val, incr):"; (void)AO_char_fetch_and_add_write(&val, incr); # else (void)"No AO_char_fetch_and_add_write"; # endif # ifdef AO_HAVE_char_fetch_and_add1_write (void)"AO_char_fetch_and_add1_write(&val):"; (void)AO_char_fetch_and_add1_write(&val); # else (void)"No AO_char_fetch_and_add1_write"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_write (void)"AO_char_fetch_and_sub1_write(&val):"; (void)AO_char_fetch_and_sub1_write(&val); # else (void)"No AO_char_fetch_and_sub1_write"; # endif # ifdef AO_HAVE_char_and_write (void)"AO_char_and_write(&val, incr):"; AO_char_and_write(&val, incr); # else (void)"No AO_char_and_write"; # endif # ifdef AO_HAVE_char_or_write (void)"AO_char_or_write(&val, incr):"; AO_char_or_write(&val, incr); # else (void)"No AO_char_or_write"; # endif # ifdef AO_HAVE_char_xor_write (void)"AO_char_xor_write(&val, incr):"; AO_char_xor_write(&val, incr); # else (void)"No AO_char_xor_write"; # endif # ifdef AO_HAVE_char_compare_and_swap_write (void)"AO_char_compare_and_swap_write(&val, oldval, newval):"; if (!AO_char_compare_and_swap_write(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_write */ /* TODO: Add AO_compare_and_swap_double_write */ # ifdef AO_HAVE_char_fetch_compare_and_swap_write (void)"AO_char_fetch_compare_and_swap_write(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_write"; # endif # if defined(AO_HAVE_test_and_set_write) (void)"AO_test_and_set_write(&ts):"; (void)AO_test_and_set_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_full(void) { # if defined(AO_HAVE_char_load_full) || defined(AO_HAVE_char_store_full) \ || defined(AO_HAVE_char_fetch_and_add_full) \ || defined(AO_HAVE_char_fetch_and_add1_full) \ || defined(AO_HAVE_char_and_full) \ || defined(AO_HAVE_char_compare_and_swap_full) \ || defined(AO_HAVE_char_fetch_compare_and_swap_full) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_full) \ || defined(AO_HAVE_char_fetch_compare_and_swap_full) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_full) \ || defined(AO_HAVE_char_compare_and_swap_full) \ || defined(AO_HAVE_char_fetch_compare_and_swap_full) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_full) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_full) || defined(AO_HAVE_char_and_full) \ || defined(AO_HAVE_char_or_full) || defined(AO_HAVE_char_xor_full) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_full) (void)"AO_nop_full(): "; AO_nop_full(); # else (void)"No AO_nop_full"; # endif # ifdef AO_HAVE_char_load_full (void)"AO_char_load_full(&val):"; (void)AO_char_load_full(&val); # else (void)"No AO_char_load_full"; # endif # ifdef AO_HAVE_char_store_full (void)"AO_char_store_full(&val, newval):"; AO_char_store_full(&val, newval); # else (void)"No AO_char_store_full"; # endif # ifdef AO_HAVE_char_fetch_and_add_full (void)"AO_char_fetch_and_add_full(&val, incr):"; (void)AO_char_fetch_and_add_full(&val, incr); # else (void)"No AO_char_fetch_and_add_full"; # endif # ifdef AO_HAVE_char_fetch_and_add1_full (void)"AO_char_fetch_and_add1_full(&val):"; (void)AO_char_fetch_and_add1_full(&val); # else (void)"No AO_char_fetch_and_add1_full"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_full (void)"AO_char_fetch_and_sub1_full(&val):"; (void)AO_char_fetch_and_sub1_full(&val); # else (void)"No AO_char_fetch_and_sub1_full"; # endif # ifdef AO_HAVE_char_and_full (void)"AO_char_and_full(&val, incr):"; AO_char_and_full(&val, incr); # else (void)"No AO_char_and_full"; # endif # ifdef AO_HAVE_char_or_full (void)"AO_char_or_full(&val, incr):"; AO_char_or_full(&val, incr); # else (void)"No AO_char_or_full"; # endif # ifdef AO_HAVE_char_xor_full (void)"AO_char_xor_full(&val, incr):"; AO_char_xor_full(&val, incr); # else (void)"No AO_char_xor_full"; # endif # ifdef AO_HAVE_char_compare_and_swap_full (void)"AO_char_compare_and_swap_full(&val, oldval, newval):"; if (!AO_char_compare_and_swap_full(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_full"; # endif /* TODO: Add AO_compare_double_and_swap_double_full */ /* TODO: Add AO_compare_and_swap_double_full */ # ifdef AO_HAVE_char_fetch_compare_and_swap_full (void)"AO_char_fetch_compare_and_swap_full(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_full(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_full"; # endif # if defined(AO_HAVE_test_and_set_full) (void)"AO_test_and_set_full(&ts):"; (void)AO_test_and_set_full(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_release_write(void) { # if defined(AO_HAVE_char_load_release_write) || defined(AO_HAVE_char_store_release_write) \ || defined(AO_HAVE_char_fetch_and_add_release_write) \ || defined(AO_HAVE_char_fetch_and_add1_release_write) \ || defined(AO_HAVE_char_and_release_write) \ || defined(AO_HAVE_char_compare_and_swap_release_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release_write) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_release_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release_write) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_release_write) \ || defined(AO_HAVE_char_compare_and_swap_release_write) \ || defined(AO_HAVE_char_fetch_compare_and_swap_release_write) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release_write) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_release_write) || defined(AO_HAVE_char_and_release_write) \ || defined(AO_HAVE_char_or_release_write) || defined(AO_HAVE_char_xor_release_write) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release_write) (void)"AO_nop_release_write(): "; AO_nop_release_write(); # else (void)"No AO_nop_release_write"; # endif # ifdef AO_HAVE_char_load_release_write (void)"AO_char_load_release_write(&val):"; (void)AO_char_load_release_write(&val); # else (void)"No AO_char_load_release_write"; # endif # ifdef AO_HAVE_char_store_release_write (void)"AO_char_store_release_write(&val, newval):"; AO_char_store_release_write(&val, newval); # else (void)"No AO_char_store_release_write"; # endif # ifdef AO_HAVE_char_fetch_and_add_release_write (void)"AO_char_fetch_and_add_release_write(&val, incr):"; (void)AO_char_fetch_and_add_release_write(&val, incr); # else (void)"No AO_char_fetch_and_add_release_write"; # endif # ifdef AO_HAVE_char_fetch_and_add1_release_write (void)"AO_char_fetch_and_add1_release_write(&val):"; (void)AO_char_fetch_and_add1_release_write(&val); # else (void)"No AO_char_fetch_and_add1_release_write"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_release_write (void)"AO_char_fetch_and_sub1_release_write(&val):"; (void)AO_char_fetch_and_sub1_release_write(&val); # else (void)"No AO_char_fetch_and_sub1_release_write"; # endif # ifdef AO_HAVE_char_and_release_write (void)"AO_char_and_release_write(&val, incr):"; AO_char_and_release_write(&val, incr); # else (void)"No AO_char_and_release_write"; # endif # ifdef AO_HAVE_char_or_release_write (void)"AO_char_or_release_write(&val, incr):"; AO_char_or_release_write(&val, incr); # else (void)"No AO_char_or_release_write"; # endif # ifdef AO_HAVE_char_xor_release_write (void)"AO_char_xor_release_write(&val, incr):"; AO_char_xor_release_write(&val, incr); # else (void)"No AO_char_xor_release_write"; # endif # ifdef AO_HAVE_char_compare_and_swap_release_write (void)"AO_char_compare_and_swap_release_write(&val, oldval, newval):"; if (!AO_char_compare_and_swap_release_write(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_release_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_release_write */ /* TODO: Add AO_compare_and_swap_double_release_write */ # ifdef AO_HAVE_char_fetch_compare_and_swap_release_write (void)"AO_char_fetch_compare_and_swap_release_write(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_release_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) (void)"AO_test_and_set_release_write(&ts):"; (void)AO_test_and_set_release_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void char_list_atomic_acquire_read(void) { # if defined(AO_HAVE_char_load_acquire_read) || defined(AO_HAVE_char_store_acquire_read) \ || defined(AO_HAVE_char_fetch_and_add_acquire_read) \ || defined(AO_HAVE_char_fetch_and_add1_acquire_read) \ || defined(AO_HAVE_char_and_acquire_read) \ || defined(AO_HAVE_char_compare_and_swap_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire_read) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire_read) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_acquire_read) \ || defined(AO_HAVE_char_compare_and_swap_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_acquire_read) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_acquire_read) || defined(AO_HAVE_char_and_acquire_read) \ || defined(AO_HAVE_char_or_acquire_read) || defined(AO_HAVE_char_xor_acquire_read) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire_read) (void)"AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else (void)"No AO_nop_acquire_read"; # endif # ifdef AO_HAVE_char_load_acquire_read (void)"AO_char_load_acquire_read(&val):"; (void)AO_char_load_acquire_read(&val); # else (void)"No AO_char_load_acquire_read"; # endif # ifdef AO_HAVE_char_store_acquire_read (void)"AO_char_store_acquire_read(&val, newval):"; AO_char_store_acquire_read(&val, newval); # else (void)"No AO_char_store_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_add_acquire_read (void)"AO_char_fetch_and_add_acquire_read(&val, incr):"; (void)AO_char_fetch_and_add_acquire_read(&val, incr); # else (void)"No AO_char_fetch_and_add_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_add1_acquire_read (void)"AO_char_fetch_and_add1_acquire_read(&val):"; (void)AO_char_fetch_and_add1_acquire_read(&val); # else (void)"No AO_char_fetch_and_add1_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_acquire_read (void)"AO_char_fetch_and_sub1_acquire_read(&val):"; (void)AO_char_fetch_and_sub1_acquire_read(&val); # else (void)"No AO_char_fetch_and_sub1_acquire_read"; # endif # ifdef AO_HAVE_char_and_acquire_read (void)"AO_char_and_acquire_read(&val, incr):"; AO_char_and_acquire_read(&val, incr); # else (void)"No AO_char_and_acquire_read"; # endif # ifdef AO_HAVE_char_or_acquire_read (void)"AO_char_or_acquire_read(&val, incr):"; AO_char_or_acquire_read(&val, incr); # else (void)"No AO_char_or_acquire_read"; # endif # ifdef AO_HAVE_char_xor_acquire_read (void)"AO_char_xor_acquire_read(&val, incr):"; AO_char_xor_acquire_read(&val, incr); # else (void)"No AO_char_xor_acquire_read"; # endif # ifdef AO_HAVE_char_compare_and_swap_acquire_read (void)"AO_char_compare_and_swap_acquire_read(&val, oldval, newval):"; if (!AO_char_compare_and_swap_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire_read */ /* TODO: Add AO_compare_and_swap_double_acquire_read */ # ifdef AO_HAVE_char_fetch_compare_and_swap_acquire_read (void)"AO_char_fetch_compare_and_swap_acquire_read(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) (void)"AO_test_and_set_acquire_read(&ts):"; (void)AO_test_and_set_acquire_read(&ts); # else (void)"No AO_test_and_set_acquire_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 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. */ #include /* for exit() */ void char_list_atomic_dd_acquire_read(void) { # if defined(AO_HAVE_char_load_dd_acquire_read) || defined(AO_HAVE_char_store_dd_acquire_read) \ || defined(AO_HAVE_char_fetch_and_add_dd_acquire_read) \ || defined(AO_HAVE_char_fetch_and_add1_dd_acquire_read) \ || defined(AO_HAVE_char_and_dd_acquire_read) \ || defined(AO_HAVE_char_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_dd_acquire_read) static volatile unsigned/**/char val /* = 0 */; # endif # if defined(AO_HAVE_char_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_dd_acquire_read) static unsigned/**/char oldval /* = 0 */; # endif # if defined(AO_HAVE_char_store_dd_acquire_read) \ || defined(AO_HAVE_char_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_char_fetch_compare_and_swap_dd_acquire_read) static unsigned/**/char newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_char_fetch_and_add_dd_acquire_read) || defined(AO_HAVE_char_and_dd_acquire_read) \ || defined(AO_HAVE_char_or_dd_acquire_read) || defined(AO_HAVE_char_xor_dd_acquire_read) static unsigned/**/char incr /* = 0 */; # endif # if defined(AO_HAVE_nop_dd_acquire_read) (void)"AO_nop_dd_acquire_read(): "; AO_nop_dd_acquire_read(); # else (void)"No AO_nop_dd_acquire_read"; # endif # ifdef AO_HAVE_char_load_dd_acquire_read (void)"AO_char_load_dd_acquire_read(&val):"; (void)AO_char_load_dd_acquire_read(&val); # else (void)"No AO_char_load_dd_acquire_read"; # endif # ifdef AO_HAVE_char_store_dd_acquire_read (void)"AO_char_store_dd_acquire_read(&val, newval):"; AO_char_store_dd_acquire_read(&val, newval); # else (void)"No AO_char_store_dd_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_add_dd_acquire_read (void)"AO_char_fetch_and_add_dd_acquire_read(&val, incr):"; (void)AO_char_fetch_and_add_dd_acquire_read(&val, incr); # else (void)"No AO_char_fetch_and_add_dd_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_add1_dd_acquire_read (void)"AO_char_fetch_and_add1_dd_acquire_read(&val):"; (void)AO_char_fetch_and_add1_dd_acquire_read(&val); # else (void)"No AO_char_fetch_and_add1_dd_acquire_read"; # endif # ifdef AO_HAVE_char_fetch_and_sub1_dd_acquire_read (void)"AO_char_fetch_and_sub1_dd_acquire_read(&val):"; (void)AO_char_fetch_and_sub1_dd_acquire_read(&val); # else (void)"No AO_char_fetch_and_sub1_dd_acquire_read"; # endif # ifdef AO_HAVE_char_and_dd_acquire_read (void)"AO_char_and_dd_acquire_read(&val, incr):"; AO_char_and_dd_acquire_read(&val, incr); # else (void)"No AO_char_and_dd_acquire_read"; # endif # ifdef AO_HAVE_char_or_dd_acquire_read (void)"AO_char_or_dd_acquire_read(&val, incr):"; AO_char_or_dd_acquire_read(&val, incr); # else (void)"No AO_char_or_dd_acquire_read"; # endif # ifdef AO_HAVE_char_xor_dd_acquire_read (void)"AO_char_xor_dd_acquire_read(&val, incr):"; AO_char_xor_dd_acquire_read(&val, incr); # else (void)"No AO_char_xor_dd_acquire_read"; # endif # ifdef AO_HAVE_char_compare_and_swap_dd_acquire_read (void)"AO_char_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (!AO_char_compare_and_swap_dd_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_char_compare_and_swap_dd_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_dd_acquire_read */ /* TODO: Add AO_compare_and_swap_double_dd_acquire_read */ # ifdef AO_HAVE_char_fetch_compare_and_swap_dd_acquire_read (void)"AO_char_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (AO_char_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_char_fetch_compare_and_swap_dd_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) (void)"AO_test_and_set_dd_acquire_read(&ts):"; (void)AO_test_and_set_dd_acquire_read(&ts); # else (void)"No AO_test_and_set_dd_acquire_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 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. */ #include /* for exit() */ void short_list_atomic(void) { # if defined(AO_HAVE_short_load) || defined(AO_HAVE_short_store) \ || defined(AO_HAVE_short_fetch_and_add) \ || defined(AO_HAVE_short_fetch_and_add1) \ || defined(AO_HAVE_short_and) \ || defined(AO_HAVE_short_compare_and_swap) \ || defined(AO_HAVE_short_fetch_compare_and_swap) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap) \ || defined(AO_HAVE_short_fetch_compare_and_swap) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store) \ || defined(AO_HAVE_short_compare_and_swap) \ || defined(AO_HAVE_short_fetch_compare_and_swap) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add) || defined(AO_HAVE_short_and) \ || defined(AO_HAVE_short_or) || defined(AO_HAVE_short_xor) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop) (void)"AO_nop(): "; AO_nop(); # else (void)"No AO_nop"; # endif # ifdef AO_HAVE_short_load (void)"AO_short_load(&val):"; (void)AO_short_load(&val); # else (void)"No AO_short_load"; # endif # ifdef AO_HAVE_short_store (void)"AO_short_store(&val, newval):"; AO_short_store(&val, newval); # else (void)"No AO_short_store"; # endif # ifdef AO_HAVE_short_fetch_and_add (void)"AO_short_fetch_and_add(&val, incr):"; (void)AO_short_fetch_and_add(&val, incr); # else (void)"No AO_short_fetch_and_add"; # endif # ifdef AO_HAVE_short_fetch_and_add1 (void)"AO_short_fetch_and_add1(&val):"; (void)AO_short_fetch_and_add1(&val); # else (void)"No AO_short_fetch_and_add1"; # endif # ifdef AO_HAVE_short_fetch_and_sub1 (void)"AO_short_fetch_and_sub1(&val):"; (void)AO_short_fetch_and_sub1(&val); # else (void)"No AO_short_fetch_and_sub1"; # endif # ifdef AO_HAVE_short_and (void)"AO_short_and(&val, incr):"; AO_short_and(&val, incr); # else (void)"No AO_short_and"; # endif # ifdef AO_HAVE_short_or (void)"AO_short_or(&val, incr):"; AO_short_or(&val, incr); # else (void)"No AO_short_or"; # endif # ifdef AO_HAVE_short_xor (void)"AO_short_xor(&val, incr):"; AO_short_xor(&val, incr); # else (void)"No AO_short_xor"; # endif # ifdef AO_HAVE_short_compare_and_swap (void)"AO_short_compare_and_swap(&val, oldval, newval):"; if (!AO_short_compare_and_swap(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap"; # endif /* TODO: Add AO_compare_double_and_swap_double */ /* TODO: Add AO_compare_and_swap_double */ # ifdef AO_HAVE_short_fetch_compare_and_swap (void)"AO_short_fetch_compare_and_swap(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap"; # endif # if defined(AO_HAVE_test_and_set) (void)"AO_test_and_set(&ts):"; (void)AO_test_and_set(&ts); # else (void)"No AO_test_and_set"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see 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. */ #include /* for exit() */ void short_list_atomic_release(void) { # if defined(AO_HAVE_short_load_release) || defined(AO_HAVE_short_store_release) \ || defined(AO_HAVE_short_fetch_and_add_release) \ || defined(AO_HAVE_short_fetch_and_add1_release) \ || defined(AO_HAVE_short_and_release) \ || defined(AO_HAVE_short_compare_and_swap_release) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_release) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_release) \ || defined(AO_HAVE_short_compare_and_swap_release) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_release) || defined(AO_HAVE_short_and_release) \ || defined(AO_HAVE_short_or_release) || defined(AO_HAVE_short_xor_release) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release) (void)"AO_nop_release(): "; AO_nop_release(); # else (void)"No AO_nop_release"; # endif # ifdef AO_HAVE_short_load_release (void)"AO_short_load_release(&val):"; (void)AO_short_load_release(&val); # else (void)"No AO_short_load_release"; # endif # ifdef AO_HAVE_short_store_release (void)"AO_short_store_release(&val, newval):"; AO_short_store_release(&val, newval); # else (void)"No AO_short_store_release"; # endif # ifdef AO_HAVE_short_fetch_and_add_release (void)"AO_short_fetch_and_add_release(&val, incr):"; (void)AO_short_fetch_and_add_release(&val, incr); # else (void)"No AO_short_fetch_and_add_release"; # endif # ifdef AO_HAVE_short_fetch_and_add1_release (void)"AO_short_fetch_and_add1_release(&val):"; (void)AO_short_fetch_and_add1_release(&val); # else (void)"No AO_short_fetch_and_add1_release"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_release (void)"AO_short_fetch_and_sub1_release(&val):"; (void)AO_short_fetch_and_sub1_release(&val); # else (void)"No AO_short_fetch_and_sub1_release"; # endif # ifdef AO_HAVE_short_and_release (void)"AO_short_and_release(&val, incr):"; AO_short_and_release(&val, incr); # else (void)"No AO_short_and_release"; # endif # ifdef AO_HAVE_short_or_release (void)"AO_short_or_release(&val, incr):"; AO_short_or_release(&val, incr); # else (void)"No AO_short_or_release"; # endif # ifdef AO_HAVE_short_xor_release (void)"AO_short_xor_release(&val, incr):"; AO_short_xor_release(&val, incr); # else (void)"No AO_short_xor_release"; # endif # ifdef AO_HAVE_short_compare_and_swap_release (void)"AO_short_compare_and_swap_release(&val, oldval, newval):"; if (!AO_short_compare_and_swap_release(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_release"; # endif /* TODO: Add AO_compare_double_and_swap_double_release */ /* TODO: Add AO_compare_and_swap_double_release */ # ifdef AO_HAVE_short_fetch_compare_and_swap_release (void)"AO_short_fetch_compare_and_swap_release(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_release(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_release"; # endif # if defined(AO_HAVE_test_and_set_release) (void)"AO_test_and_set_release(&ts):"; (void)AO_test_and_set_release(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_acquire(void) { # if defined(AO_HAVE_short_load_acquire) || defined(AO_HAVE_short_store_acquire) \ || defined(AO_HAVE_short_fetch_and_add_acquire) \ || defined(AO_HAVE_short_fetch_and_add1_acquire) \ || defined(AO_HAVE_short_and_acquire) \ || defined(AO_HAVE_short_compare_and_swap_acquire) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_acquire) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_acquire) \ || defined(AO_HAVE_short_compare_and_swap_acquire) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_acquire) || defined(AO_HAVE_short_and_acquire) \ || defined(AO_HAVE_short_or_acquire) || defined(AO_HAVE_short_xor_acquire) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire) (void)"AO_nop_acquire(): "; AO_nop_acquire(); # else (void)"No AO_nop_acquire"; # endif # ifdef AO_HAVE_short_load_acquire (void)"AO_short_load_acquire(&val):"; (void)AO_short_load_acquire(&val); # else (void)"No AO_short_load_acquire"; # endif # ifdef AO_HAVE_short_store_acquire (void)"AO_short_store_acquire(&val, newval):"; AO_short_store_acquire(&val, newval); # else (void)"No AO_short_store_acquire"; # endif # ifdef AO_HAVE_short_fetch_and_add_acquire (void)"AO_short_fetch_and_add_acquire(&val, incr):"; (void)AO_short_fetch_and_add_acquire(&val, incr); # else (void)"No AO_short_fetch_and_add_acquire"; # endif # ifdef AO_HAVE_short_fetch_and_add1_acquire (void)"AO_short_fetch_and_add1_acquire(&val):"; (void)AO_short_fetch_and_add1_acquire(&val); # else (void)"No AO_short_fetch_and_add1_acquire"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_acquire (void)"AO_short_fetch_and_sub1_acquire(&val):"; (void)AO_short_fetch_and_sub1_acquire(&val); # else (void)"No AO_short_fetch_and_sub1_acquire"; # endif # ifdef AO_HAVE_short_and_acquire (void)"AO_short_and_acquire(&val, incr):"; AO_short_and_acquire(&val, incr); # else (void)"No AO_short_and_acquire"; # endif # ifdef AO_HAVE_short_or_acquire (void)"AO_short_or_acquire(&val, incr):"; AO_short_or_acquire(&val, incr); # else (void)"No AO_short_or_acquire"; # endif # ifdef AO_HAVE_short_xor_acquire (void)"AO_short_xor_acquire(&val, incr):"; AO_short_xor_acquire(&val, incr); # else (void)"No AO_short_xor_acquire"; # endif # ifdef AO_HAVE_short_compare_and_swap_acquire (void)"AO_short_compare_and_swap_acquire(&val, oldval, newval):"; if (!AO_short_compare_and_swap_acquire(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_acquire"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire */ /* TODO: Add AO_compare_and_swap_double_acquire */ # ifdef AO_HAVE_short_fetch_compare_and_swap_acquire (void)"AO_short_fetch_compare_and_swap_acquire(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_acquire(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) (void)"AO_test_and_set_acquire(&ts):"; (void)AO_test_and_set_acquire(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_read(void) { # if defined(AO_HAVE_short_load_read) || defined(AO_HAVE_short_store_read) \ || defined(AO_HAVE_short_fetch_and_add_read) \ || defined(AO_HAVE_short_fetch_and_add1_read) \ || defined(AO_HAVE_short_and_read) \ || defined(AO_HAVE_short_compare_and_swap_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_read) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_read) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_read) \ || defined(AO_HAVE_short_compare_and_swap_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_read) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_read) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_read) || defined(AO_HAVE_short_and_read) \ || defined(AO_HAVE_short_or_read) || defined(AO_HAVE_short_xor_read) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_read) (void)"AO_nop_read(): "; AO_nop_read(); # else (void)"No AO_nop_read"; # endif # ifdef AO_HAVE_short_load_read (void)"AO_short_load_read(&val):"; (void)AO_short_load_read(&val); # else (void)"No AO_short_load_read"; # endif # ifdef AO_HAVE_short_store_read (void)"AO_short_store_read(&val, newval):"; AO_short_store_read(&val, newval); # else (void)"No AO_short_store_read"; # endif # ifdef AO_HAVE_short_fetch_and_add_read (void)"AO_short_fetch_and_add_read(&val, incr):"; (void)AO_short_fetch_and_add_read(&val, incr); # else (void)"No AO_short_fetch_and_add_read"; # endif # ifdef AO_HAVE_short_fetch_and_add1_read (void)"AO_short_fetch_and_add1_read(&val):"; (void)AO_short_fetch_and_add1_read(&val); # else (void)"No AO_short_fetch_and_add1_read"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_read (void)"AO_short_fetch_and_sub1_read(&val):"; (void)AO_short_fetch_and_sub1_read(&val); # else (void)"No AO_short_fetch_and_sub1_read"; # endif # ifdef AO_HAVE_short_and_read (void)"AO_short_and_read(&val, incr):"; AO_short_and_read(&val, incr); # else (void)"No AO_short_and_read"; # endif # ifdef AO_HAVE_short_or_read (void)"AO_short_or_read(&val, incr):"; AO_short_or_read(&val, incr); # else (void)"No AO_short_or_read"; # endif # ifdef AO_HAVE_short_xor_read (void)"AO_short_xor_read(&val, incr):"; AO_short_xor_read(&val, incr); # else (void)"No AO_short_xor_read"; # endif # ifdef AO_HAVE_short_compare_and_swap_read (void)"AO_short_compare_and_swap_read(&val, oldval, newval):"; if (!AO_short_compare_and_swap_read(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_read */ /* TODO: Add AO_compare_and_swap_double_read */ # ifdef AO_HAVE_short_fetch_compare_and_swap_read (void)"AO_short_fetch_compare_and_swap_read(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_read"; # endif # if defined(AO_HAVE_test_and_set_read) (void)"AO_test_and_set_read(&ts):"; (void)AO_test_and_set_read(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_write(void) { # if defined(AO_HAVE_short_load_write) || defined(AO_HAVE_short_store_write) \ || defined(AO_HAVE_short_fetch_and_add_write) \ || defined(AO_HAVE_short_fetch_and_add1_write) \ || defined(AO_HAVE_short_and_write) \ || defined(AO_HAVE_short_compare_and_swap_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_write) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_write) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_write) \ || defined(AO_HAVE_short_compare_and_swap_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_write) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_write) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_write) || defined(AO_HAVE_short_and_write) \ || defined(AO_HAVE_short_or_write) || defined(AO_HAVE_short_xor_write) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_write) (void)"AO_nop_write(): "; AO_nop_write(); # else (void)"No AO_nop_write"; # endif # ifdef AO_HAVE_short_load_write (void)"AO_short_load_write(&val):"; (void)AO_short_load_write(&val); # else (void)"No AO_short_load_write"; # endif # ifdef AO_HAVE_short_store_write (void)"AO_short_store_write(&val, newval):"; AO_short_store_write(&val, newval); # else (void)"No AO_short_store_write"; # endif # ifdef AO_HAVE_short_fetch_and_add_write (void)"AO_short_fetch_and_add_write(&val, incr):"; (void)AO_short_fetch_and_add_write(&val, incr); # else (void)"No AO_short_fetch_and_add_write"; # endif # ifdef AO_HAVE_short_fetch_and_add1_write (void)"AO_short_fetch_and_add1_write(&val):"; (void)AO_short_fetch_and_add1_write(&val); # else (void)"No AO_short_fetch_and_add1_write"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_write (void)"AO_short_fetch_and_sub1_write(&val):"; (void)AO_short_fetch_and_sub1_write(&val); # else (void)"No AO_short_fetch_and_sub1_write"; # endif # ifdef AO_HAVE_short_and_write (void)"AO_short_and_write(&val, incr):"; AO_short_and_write(&val, incr); # else (void)"No AO_short_and_write"; # endif # ifdef AO_HAVE_short_or_write (void)"AO_short_or_write(&val, incr):"; AO_short_or_write(&val, incr); # else (void)"No AO_short_or_write"; # endif # ifdef AO_HAVE_short_xor_write (void)"AO_short_xor_write(&val, incr):"; AO_short_xor_write(&val, incr); # else (void)"No AO_short_xor_write"; # endif # ifdef AO_HAVE_short_compare_and_swap_write (void)"AO_short_compare_and_swap_write(&val, oldval, newval):"; if (!AO_short_compare_and_swap_write(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_write */ /* TODO: Add AO_compare_and_swap_double_write */ # ifdef AO_HAVE_short_fetch_compare_and_swap_write (void)"AO_short_fetch_compare_and_swap_write(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_write"; # endif # if defined(AO_HAVE_test_and_set_write) (void)"AO_test_and_set_write(&ts):"; (void)AO_test_and_set_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_full(void) { # if defined(AO_HAVE_short_load_full) || defined(AO_HAVE_short_store_full) \ || defined(AO_HAVE_short_fetch_and_add_full) \ || defined(AO_HAVE_short_fetch_and_add1_full) \ || defined(AO_HAVE_short_and_full) \ || defined(AO_HAVE_short_compare_and_swap_full) \ || defined(AO_HAVE_short_fetch_compare_and_swap_full) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_full) \ || defined(AO_HAVE_short_fetch_compare_and_swap_full) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_full) \ || defined(AO_HAVE_short_compare_and_swap_full) \ || defined(AO_HAVE_short_fetch_compare_and_swap_full) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_full) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_full) || defined(AO_HAVE_short_and_full) \ || defined(AO_HAVE_short_or_full) || defined(AO_HAVE_short_xor_full) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_full) (void)"AO_nop_full(): "; AO_nop_full(); # else (void)"No AO_nop_full"; # endif # ifdef AO_HAVE_short_load_full (void)"AO_short_load_full(&val):"; (void)AO_short_load_full(&val); # else (void)"No AO_short_load_full"; # endif # ifdef AO_HAVE_short_store_full (void)"AO_short_store_full(&val, newval):"; AO_short_store_full(&val, newval); # else (void)"No AO_short_store_full"; # endif # ifdef AO_HAVE_short_fetch_and_add_full (void)"AO_short_fetch_and_add_full(&val, incr):"; (void)AO_short_fetch_and_add_full(&val, incr); # else (void)"No AO_short_fetch_and_add_full"; # endif # ifdef AO_HAVE_short_fetch_and_add1_full (void)"AO_short_fetch_and_add1_full(&val):"; (void)AO_short_fetch_and_add1_full(&val); # else (void)"No AO_short_fetch_and_add1_full"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_full (void)"AO_short_fetch_and_sub1_full(&val):"; (void)AO_short_fetch_and_sub1_full(&val); # else (void)"No AO_short_fetch_and_sub1_full"; # endif # ifdef AO_HAVE_short_and_full (void)"AO_short_and_full(&val, incr):"; AO_short_and_full(&val, incr); # else (void)"No AO_short_and_full"; # endif # ifdef AO_HAVE_short_or_full (void)"AO_short_or_full(&val, incr):"; AO_short_or_full(&val, incr); # else (void)"No AO_short_or_full"; # endif # ifdef AO_HAVE_short_xor_full (void)"AO_short_xor_full(&val, incr):"; AO_short_xor_full(&val, incr); # else (void)"No AO_short_xor_full"; # endif # ifdef AO_HAVE_short_compare_and_swap_full (void)"AO_short_compare_and_swap_full(&val, oldval, newval):"; if (!AO_short_compare_and_swap_full(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_full"; # endif /* TODO: Add AO_compare_double_and_swap_double_full */ /* TODO: Add AO_compare_and_swap_double_full */ # ifdef AO_HAVE_short_fetch_compare_and_swap_full (void)"AO_short_fetch_compare_and_swap_full(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_full(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_full"; # endif # if defined(AO_HAVE_test_and_set_full) (void)"AO_test_and_set_full(&ts):"; (void)AO_test_and_set_full(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_release_write(void) { # if defined(AO_HAVE_short_load_release_write) || defined(AO_HAVE_short_store_release_write) \ || defined(AO_HAVE_short_fetch_and_add_release_write) \ || defined(AO_HAVE_short_fetch_and_add1_release_write) \ || defined(AO_HAVE_short_and_release_write) \ || defined(AO_HAVE_short_compare_and_swap_release_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release_write) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_release_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release_write) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_release_write) \ || defined(AO_HAVE_short_compare_and_swap_release_write) \ || defined(AO_HAVE_short_fetch_compare_and_swap_release_write) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release_write) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_release_write) || defined(AO_HAVE_short_and_release_write) \ || defined(AO_HAVE_short_or_release_write) || defined(AO_HAVE_short_xor_release_write) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release_write) (void)"AO_nop_release_write(): "; AO_nop_release_write(); # else (void)"No AO_nop_release_write"; # endif # ifdef AO_HAVE_short_load_release_write (void)"AO_short_load_release_write(&val):"; (void)AO_short_load_release_write(&val); # else (void)"No AO_short_load_release_write"; # endif # ifdef AO_HAVE_short_store_release_write (void)"AO_short_store_release_write(&val, newval):"; AO_short_store_release_write(&val, newval); # else (void)"No AO_short_store_release_write"; # endif # ifdef AO_HAVE_short_fetch_and_add_release_write (void)"AO_short_fetch_and_add_release_write(&val, incr):"; (void)AO_short_fetch_and_add_release_write(&val, incr); # else (void)"No AO_short_fetch_and_add_release_write"; # endif # ifdef AO_HAVE_short_fetch_and_add1_release_write (void)"AO_short_fetch_and_add1_release_write(&val):"; (void)AO_short_fetch_and_add1_release_write(&val); # else (void)"No AO_short_fetch_and_add1_release_write"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_release_write (void)"AO_short_fetch_and_sub1_release_write(&val):"; (void)AO_short_fetch_and_sub1_release_write(&val); # else (void)"No AO_short_fetch_and_sub1_release_write"; # endif # ifdef AO_HAVE_short_and_release_write (void)"AO_short_and_release_write(&val, incr):"; AO_short_and_release_write(&val, incr); # else (void)"No AO_short_and_release_write"; # endif # ifdef AO_HAVE_short_or_release_write (void)"AO_short_or_release_write(&val, incr):"; AO_short_or_release_write(&val, incr); # else (void)"No AO_short_or_release_write"; # endif # ifdef AO_HAVE_short_xor_release_write (void)"AO_short_xor_release_write(&val, incr):"; AO_short_xor_release_write(&val, incr); # else (void)"No AO_short_xor_release_write"; # endif # ifdef AO_HAVE_short_compare_and_swap_release_write (void)"AO_short_compare_and_swap_release_write(&val, oldval, newval):"; if (!AO_short_compare_and_swap_release_write(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_release_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_release_write */ /* TODO: Add AO_compare_and_swap_double_release_write */ # ifdef AO_HAVE_short_fetch_compare_and_swap_release_write (void)"AO_short_fetch_compare_and_swap_release_write(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_release_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) (void)"AO_test_and_set_release_write(&ts):"; (void)AO_test_and_set_release_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void short_list_atomic_acquire_read(void) { # if defined(AO_HAVE_short_load_acquire_read) || defined(AO_HAVE_short_store_acquire_read) \ || defined(AO_HAVE_short_fetch_and_add_acquire_read) \ || defined(AO_HAVE_short_fetch_and_add1_acquire_read) \ || defined(AO_HAVE_short_and_acquire_read) \ || defined(AO_HAVE_short_compare_and_swap_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire_read) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire_read) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_acquire_read) \ || defined(AO_HAVE_short_compare_and_swap_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_acquire_read) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_acquire_read) || defined(AO_HAVE_short_and_acquire_read) \ || defined(AO_HAVE_short_or_acquire_read) || defined(AO_HAVE_short_xor_acquire_read) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire_read) (void)"AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else (void)"No AO_nop_acquire_read"; # endif # ifdef AO_HAVE_short_load_acquire_read (void)"AO_short_load_acquire_read(&val):"; (void)AO_short_load_acquire_read(&val); # else (void)"No AO_short_load_acquire_read"; # endif # ifdef AO_HAVE_short_store_acquire_read (void)"AO_short_store_acquire_read(&val, newval):"; AO_short_store_acquire_read(&val, newval); # else (void)"No AO_short_store_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_add_acquire_read (void)"AO_short_fetch_and_add_acquire_read(&val, incr):"; (void)AO_short_fetch_and_add_acquire_read(&val, incr); # else (void)"No AO_short_fetch_and_add_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_add1_acquire_read (void)"AO_short_fetch_and_add1_acquire_read(&val):"; (void)AO_short_fetch_and_add1_acquire_read(&val); # else (void)"No AO_short_fetch_and_add1_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_acquire_read (void)"AO_short_fetch_and_sub1_acquire_read(&val):"; (void)AO_short_fetch_and_sub1_acquire_read(&val); # else (void)"No AO_short_fetch_and_sub1_acquire_read"; # endif # ifdef AO_HAVE_short_and_acquire_read (void)"AO_short_and_acquire_read(&val, incr):"; AO_short_and_acquire_read(&val, incr); # else (void)"No AO_short_and_acquire_read"; # endif # ifdef AO_HAVE_short_or_acquire_read (void)"AO_short_or_acquire_read(&val, incr):"; AO_short_or_acquire_read(&val, incr); # else (void)"No AO_short_or_acquire_read"; # endif # ifdef AO_HAVE_short_xor_acquire_read (void)"AO_short_xor_acquire_read(&val, incr):"; AO_short_xor_acquire_read(&val, incr); # else (void)"No AO_short_xor_acquire_read"; # endif # ifdef AO_HAVE_short_compare_and_swap_acquire_read (void)"AO_short_compare_and_swap_acquire_read(&val, oldval, newval):"; if (!AO_short_compare_and_swap_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire_read */ /* TODO: Add AO_compare_and_swap_double_acquire_read */ # ifdef AO_HAVE_short_fetch_compare_and_swap_acquire_read (void)"AO_short_fetch_compare_and_swap_acquire_read(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) (void)"AO_test_and_set_acquire_read(&ts):"; (void)AO_test_and_set_acquire_read(&ts); # else (void)"No AO_test_and_set_acquire_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 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. */ #include /* for exit() */ void short_list_atomic_dd_acquire_read(void) { # if defined(AO_HAVE_short_load_dd_acquire_read) || defined(AO_HAVE_short_store_dd_acquire_read) \ || defined(AO_HAVE_short_fetch_and_add_dd_acquire_read) \ || defined(AO_HAVE_short_fetch_and_add1_dd_acquire_read) \ || defined(AO_HAVE_short_and_dd_acquire_read) \ || defined(AO_HAVE_short_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_dd_acquire_read) static volatile unsigned/**/short val /* = 0 */; # endif # if defined(AO_HAVE_short_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_dd_acquire_read) static unsigned/**/short oldval /* = 0 */; # endif # if defined(AO_HAVE_short_store_dd_acquire_read) \ || defined(AO_HAVE_short_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_short_fetch_compare_and_swap_dd_acquire_read) static unsigned/**/short newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_short_fetch_and_add_dd_acquire_read) || defined(AO_HAVE_short_and_dd_acquire_read) \ || defined(AO_HAVE_short_or_dd_acquire_read) || defined(AO_HAVE_short_xor_dd_acquire_read) static unsigned/**/short incr /* = 0 */; # endif # if defined(AO_HAVE_nop_dd_acquire_read) (void)"AO_nop_dd_acquire_read(): "; AO_nop_dd_acquire_read(); # else (void)"No AO_nop_dd_acquire_read"; # endif # ifdef AO_HAVE_short_load_dd_acquire_read (void)"AO_short_load_dd_acquire_read(&val):"; (void)AO_short_load_dd_acquire_read(&val); # else (void)"No AO_short_load_dd_acquire_read"; # endif # ifdef AO_HAVE_short_store_dd_acquire_read (void)"AO_short_store_dd_acquire_read(&val, newval):"; AO_short_store_dd_acquire_read(&val, newval); # else (void)"No AO_short_store_dd_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_add_dd_acquire_read (void)"AO_short_fetch_and_add_dd_acquire_read(&val, incr):"; (void)AO_short_fetch_and_add_dd_acquire_read(&val, incr); # else (void)"No AO_short_fetch_and_add_dd_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_add1_dd_acquire_read (void)"AO_short_fetch_and_add1_dd_acquire_read(&val):"; (void)AO_short_fetch_and_add1_dd_acquire_read(&val); # else (void)"No AO_short_fetch_and_add1_dd_acquire_read"; # endif # ifdef AO_HAVE_short_fetch_and_sub1_dd_acquire_read (void)"AO_short_fetch_and_sub1_dd_acquire_read(&val):"; (void)AO_short_fetch_and_sub1_dd_acquire_read(&val); # else (void)"No AO_short_fetch_and_sub1_dd_acquire_read"; # endif # ifdef AO_HAVE_short_and_dd_acquire_read (void)"AO_short_and_dd_acquire_read(&val, incr):"; AO_short_and_dd_acquire_read(&val, incr); # else (void)"No AO_short_and_dd_acquire_read"; # endif # ifdef AO_HAVE_short_or_dd_acquire_read (void)"AO_short_or_dd_acquire_read(&val, incr):"; AO_short_or_dd_acquire_read(&val, incr); # else (void)"No AO_short_or_dd_acquire_read"; # endif # ifdef AO_HAVE_short_xor_dd_acquire_read (void)"AO_short_xor_dd_acquire_read(&val, incr):"; AO_short_xor_dd_acquire_read(&val, incr); # else (void)"No AO_short_xor_dd_acquire_read"; # endif # ifdef AO_HAVE_short_compare_and_swap_dd_acquire_read (void)"AO_short_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (!AO_short_compare_and_swap_dd_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_short_compare_and_swap_dd_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_dd_acquire_read */ /* TODO: Add AO_compare_and_swap_double_dd_acquire_read */ # ifdef AO_HAVE_short_fetch_compare_and_swap_dd_acquire_read (void)"AO_short_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (AO_short_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_short_fetch_compare_and_swap_dd_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) (void)"AO_test_and_set_dd_acquire_read(&ts):"; (void)AO_test_and_set_dd_acquire_read(&ts); # else (void)"No AO_test_and_set_dd_acquire_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 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. */ #include /* for exit() */ void int_list_atomic(void) { # if defined(AO_HAVE_int_load) || defined(AO_HAVE_int_store) \ || defined(AO_HAVE_int_fetch_and_add) \ || defined(AO_HAVE_int_fetch_and_add1) \ || defined(AO_HAVE_int_and) \ || defined(AO_HAVE_int_compare_and_swap) \ || defined(AO_HAVE_int_fetch_compare_and_swap) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap) \ || defined(AO_HAVE_int_fetch_compare_and_swap) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store) \ || defined(AO_HAVE_int_compare_and_swap) \ || defined(AO_HAVE_int_fetch_compare_and_swap) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add) || defined(AO_HAVE_int_and) \ || defined(AO_HAVE_int_or) || defined(AO_HAVE_int_xor) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop) (void)"AO_nop(): "; AO_nop(); # else (void)"No AO_nop"; # endif # ifdef AO_HAVE_int_load (void)"AO_int_load(&val):"; (void)AO_int_load(&val); # else (void)"No AO_int_load"; # endif # ifdef AO_HAVE_int_store (void)"AO_int_store(&val, newval):"; AO_int_store(&val, newval); # else (void)"No AO_int_store"; # endif # ifdef AO_HAVE_int_fetch_and_add (void)"AO_int_fetch_and_add(&val, incr):"; (void)AO_int_fetch_and_add(&val, incr); # else (void)"No AO_int_fetch_and_add"; # endif # ifdef AO_HAVE_int_fetch_and_add1 (void)"AO_int_fetch_and_add1(&val):"; (void)AO_int_fetch_and_add1(&val); # else (void)"No AO_int_fetch_and_add1"; # endif # ifdef AO_HAVE_int_fetch_and_sub1 (void)"AO_int_fetch_and_sub1(&val):"; (void)AO_int_fetch_and_sub1(&val); # else (void)"No AO_int_fetch_and_sub1"; # endif # ifdef AO_HAVE_int_and (void)"AO_int_and(&val, incr):"; AO_int_and(&val, incr); # else (void)"No AO_int_and"; # endif # ifdef AO_HAVE_int_or (void)"AO_int_or(&val, incr):"; AO_int_or(&val, incr); # else (void)"No AO_int_or"; # endif # ifdef AO_HAVE_int_xor (void)"AO_int_xor(&val, incr):"; AO_int_xor(&val, incr); # else (void)"No AO_int_xor"; # endif # ifdef AO_HAVE_int_compare_and_swap (void)"AO_int_compare_and_swap(&val, oldval, newval):"; if (!AO_int_compare_and_swap(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap"; # endif /* TODO: Add AO_compare_double_and_swap_double */ /* TODO: Add AO_compare_and_swap_double */ # ifdef AO_HAVE_int_fetch_compare_and_swap (void)"AO_int_fetch_compare_and_swap(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap"; # endif # if defined(AO_HAVE_test_and_set) (void)"AO_test_and_set(&ts):"; (void)AO_test_and_set(&ts); # else (void)"No AO_test_and_set"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see 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. */ #include /* for exit() */ void int_list_atomic_release(void) { # if defined(AO_HAVE_int_load_release) || defined(AO_HAVE_int_store_release) \ || defined(AO_HAVE_int_fetch_and_add_release) \ || defined(AO_HAVE_int_fetch_and_add1_release) \ || defined(AO_HAVE_int_and_release) \ || defined(AO_HAVE_int_compare_and_swap_release) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_release) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_release) \ || defined(AO_HAVE_int_compare_and_swap_release) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_release) || defined(AO_HAVE_int_and_release) \ || defined(AO_HAVE_int_or_release) || defined(AO_HAVE_int_xor_release) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release) (void)"AO_nop_release(): "; AO_nop_release(); # else (void)"No AO_nop_release"; # endif # ifdef AO_HAVE_int_load_release (void)"AO_int_load_release(&val):"; (void)AO_int_load_release(&val); # else (void)"No AO_int_load_release"; # endif # ifdef AO_HAVE_int_store_release (void)"AO_int_store_release(&val, newval):"; AO_int_store_release(&val, newval); # else (void)"No AO_int_store_release"; # endif # ifdef AO_HAVE_int_fetch_and_add_release (void)"AO_int_fetch_and_add_release(&val, incr):"; (void)AO_int_fetch_and_add_release(&val, incr); # else (void)"No AO_int_fetch_and_add_release"; # endif # ifdef AO_HAVE_int_fetch_and_add1_release (void)"AO_int_fetch_and_add1_release(&val):"; (void)AO_int_fetch_and_add1_release(&val); # else (void)"No AO_int_fetch_and_add1_release"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_release (void)"AO_int_fetch_and_sub1_release(&val):"; (void)AO_int_fetch_and_sub1_release(&val); # else (void)"No AO_int_fetch_and_sub1_release"; # endif # ifdef AO_HAVE_int_and_release (void)"AO_int_and_release(&val, incr):"; AO_int_and_release(&val, incr); # else (void)"No AO_int_and_release"; # endif # ifdef AO_HAVE_int_or_release (void)"AO_int_or_release(&val, incr):"; AO_int_or_release(&val, incr); # else (void)"No AO_int_or_release"; # endif # ifdef AO_HAVE_int_xor_release (void)"AO_int_xor_release(&val, incr):"; AO_int_xor_release(&val, incr); # else (void)"No AO_int_xor_release"; # endif # ifdef AO_HAVE_int_compare_and_swap_release (void)"AO_int_compare_and_swap_release(&val, oldval, newval):"; if (!AO_int_compare_and_swap_release(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_release"; # endif /* TODO: Add AO_compare_double_and_swap_double_release */ /* TODO: Add AO_compare_and_swap_double_release */ # ifdef AO_HAVE_int_fetch_compare_and_swap_release (void)"AO_int_fetch_compare_and_swap_release(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_release(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_release"; # endif # if defined(AO_HAVE_test_and_set_release) (void)"AO_test_and_set_release(&ts):"; (void)AO_test_and_set_release(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_acquire(void) { # if defined(AO_HAVE_int_load_acquire) || defined(AO_HAVE_int_store_acquire) \ || defined(AO_HAVE_int_fetch_and_add_acquire) \ || defined(AO_HAVE_int_fetch_and_add1_acquire) \ || defined(AO_HAVE_int_and_acquire) \ || defined(AO_HAVE_int_compare_and_swap_acquire) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_acquire) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_acquire) \ || defined(AO_HAVE_int_compare_and_swap_acquire) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_acquire) || defined(AO_HAVE_int_and_acquire) \ || defined(AO_HAVE_int_or_acquire) || defined(AO_HAVE_int_xor_acquire) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire) (void)"AO_nop_acquire(): "; AO_nop_acquire(); # else (void)"No AO_nop_acquire"; # endif # ifdef AO_HAVE_int_load_acquire (void)"AO_int_load_acquire(&val):"; (void)AO_int_load_acquire(&val); # else (void)"No AO_int_load_acquire"; # endif # ifdef AO_HAVE_int_store_acquire (void)"AO_int_store_acquire(&val, newval):"; AO_int_store_acquire(&val, newval); # else (void)"No AO_int_store_acquire"; # endif # ifdef AO_HAVE_int_fetch_and_add_acquire (void)"AO_int_fetch_and_add_acquire(&val, incr):"; (void)AO_int_fetch_and_add_acquire(&val, incr); # else (void)"No AO_int_fetch_and_add_acquire"; # endif # ifdef AO_HAVE_int_fetch_and_add1_acquire (void)"AO_int_fetch_and_add1_acquire(&val):"; (void)AO_int_fetch_and_add1_acquire(&val); # else (void)"No AO_int_fetch_and_add1_acquire"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_acquire (void)"AO_int_fetch_and_sub1_acquire(&val):"; (void)AO_int_fetch_and_sub1_acquire(&val); # else (void)"No AO_int_fetch_and_sub1_acquire"; # endif # ifdef AO_HAVE_int_and_acquire (void)"AO_int_and_acquire(&val, incr):"; AO_int_and_acquire(&val, incr); # else (void)"No AO_int_and_acquire"; # endif # ifdef AO_HAVE_int_or_acquire (void)"AO_int_or_acquire(&val, incr):"; AO_int_or_acquire(&val, incr); # else (void)"No AO_int_or_acquire"; # endif # ifdef AO_HAVE_int_xor_acquire (void)"AO_int_xor_acquire(&val, incr):"; AO_int_xor_acquire(&val, incr); # else (void)"No AO_int_xor_acquire"; # endif # ifdef AO_HAVE_int_compare_and_swap_acquire (void)"AO_int_compare_and_swap_acquire(&val, oldval, newval):"; if (!AO_int_compare_and_swap_acquire(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_acquire"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire */ /* TODO: Add AO_compare_and_swap_double_acquire */ # ifdef AO_HAVE_int_fetch_compare_and_swap_acquire (void)"AO_int_fetch_compare_and_swap_acquire(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_acquire(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) (void)"AO_test_and_set_acquire(&ts):"; (void)AO_test_and_set_acquire(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_read(void) { # if defined(AO_HAVE_int_load_read) || defined(AO_HAVE_int_store_read) \ || defined(AO_HAVE_int_fetch_and_add_read) \ || defined(AO_HAVE_int_fetch_and_add1_read) \ || defined(AO_HAVE_int_and_read) \ || defined(AO_HAVE_int_compare_and_swap_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_read) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_read) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_read) \ || defined(AO_HAVE_int_compare_and_swap_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_read) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_read) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_read) || defined(AO_HAVE_int_and_read) \ || defined(AO_HAVE_int_or_read) || defined(AO_HAVE_int_xor_read) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_read) (void)"AO_nop_read(): "; AO_nop_read(); # else (void)"No AO_nop_read"; # endif # ifdef AO_HAVE_int_load_read (void)"AO_int_load_read(&val):"; (void)AO_int_load_read(&val); # else (void)"No AO_int_load_read"; # endif # ifdef AO_HAVE_int_store_read (void)"AO_int_store_read(&val, newval):"; AO_int_store_read(&val, newval); # else (void)"No AO_int_store_read"; # endif # ifdef AO_HAVE_int_fetch_and_add_read (void)"AO_int_fetch_and_add_read(&val, incr):"; (void)AO_int_fetch_and_add_read(&val, incr); # else (void)"No AO_int_fetch_and_add_read"; # endif # ifdef AO_HAVE_int_fetch_and_add1_read (void)"AO_int_fetch_and_add1_read(&val):"; (void)AO_int_fetch_and_add1_read(&val); # else (void)"No AO_int_fetch_and_add1_read"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_read (void)"AO_int_fetch_and_sub1_read(&val):"; (void)AO_int_fetch_and_sub1_read(&val); # else (void)"No AO_int_fetch_and_sub1_read"; # endif # ifdef AO_HAVE_int_and_read (void)"AO_int_and_read(&val, incr):"; AO_int_and_read(&val, incr); # else (void)"No AO_int_and_read"; # endif # ifdef AO_HAVE_int_or_read (void)"AO_int_or_read(&val, incr):"; AO_int_or_read(&val, incr); # else (void)"No AO_int_or_read"; # endif # ifdef AO_HAVE_int_xor_read (void)"AO_int_xor_read(&val, incr):"; AO_int_xor_read(&val, incr); # else (void)"No AO_int_xor_read"; # endif # ifdef AO_HAVE_int_compare_and_swap_read (void)"AO_int_compare_and_swap_read(&val, oldval, newval):"; if (!AO_int_compare_and_swap_read(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_read */ /* TODO: Add AO_compare_and_swap_double_read */ # ifdef AO_HAVE_int_fetch_compare_and_swap_read (void)"AO_int_fetch_compare_and_swap_read(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_read"; # endif # if defined(AO_HAVE_test_and_set_read) (void)"AO_test_and_set_read(&ts):"; (void)AO_test_and_set_read(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_write(void) { # if defined(AO_HAVE_int_load_write) || defined(AO_HAVE_int_store_write) \ || defined(AO_HAVE_int_fetch_and_add_write) \ || defined(AO_HAVE_int_fetch_and_add1_write) \ || defined(AO_HAVE_int_and_write) \ || defined(AO_HAVE_int_compare_and_swap_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_write) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_write) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_write) \ || defined(AO_HAVE_int_compare_and_swap_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_write) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_write) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_write) || defined(AO_HAVE_int_and_write) \ || defined(AO_HAVE_int_or_write) || defined(AO_HAVE_int_xor_write) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_write) (void)"AO_nop_write(): "; AO_nop_write(); # else (void)"No AO_nop_write"; # endif # ifdef AO_HAVE_int_load_write (void)"AO_int_load_write(&val):"; (void)AO_int_load_write(&val); # else (void)"No AO_int_load_write"; # endif # ifdef AO_HAVE_int_store_write (void)"AO_int_store_write(&val, newval):"; AO_int_store_write(&val, newval); # else (void)"No AO_int_store_write"; # endif # ifdef AO_HAVE_int_fetch_and_add_write (void)"AO_int_fetch_and_add_write(&val, incr):"; (void)AO_int_fetch_and_add_write(&val, incr); # else (void)"No AO_int_fetch_and_add_write"; # endif # ifdef AO_HAVE_int_fetch_and_add1_write (void)"AO_int_fetch_and_add1_write(&val):"; (void)AO_int_fetch_and_add1_write(&val); # else (void)"No AO_int_fetch_and_add1_write"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_write (void)"AO_int_fetch_and_sub1_write(&val):"; (void)AO_int_fetch_and_sub1_write(&val); # else (void)"No AO_int_fetch_and_sub1_write"; # endif # ifdef AO_HAVE_int_and_write (void)"AO_int_and_write(&val, incr):"; AO_int_and_write(&val, incr); # else (void)"No AO_int_and_write"; # endif # ifdef AO_HAVE_int_or_write (void)"AO_int_or_write(&val, incr):"; AO_int_or_write(&val, incr); # else (void)"No AO_int_or_write"; # endif # ifdef AO_HAVE_int_xor_write (void)"AO_int_xor_write(&val, incr):"; AO_int_xor_write(&val, incr); # else (void)"No AO_int_xor_write"; # endif # ifdef AO_HAVE_int_compare_and_swap_write (void)"AO_int_compare_and_swap_write(&val, oldval, newval):"; if (!AO_int_compare_and_swap_write(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_write */ /* TODO: Add AO_compare_and_swap_double_write */ # ifdef AO_HAVE_int_fetch_compare_and_swap_write (void)"AO_int_fetch_compare_and_swap_write(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_write"; # endif # if defined(AO_HAVE_test_and_set_write) (void)"AO_test_and_set_write(&ts):"; (void)AO_test_and_set_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_full(void) { # if defined(AO_HAVE_int_load_full) || defined(AO_HAVE_int_store_full) \ || defined(AO_HAVE_int_fetch_and_add_full) \ || defined(AO_HAVE_int_fetch_and_add1_full) \ || defined(AO_HAVE_int_and_full) \ || defined(AO_HAVE_int_compare_and_swap_full) \ || defined(AO_HAVE_int_fetch_compare_and_swap_full) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_full) \ || defined(AO_HAVE_int_fetch_compare_and_swap_full) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_full) \ || defined(AO_HAVE_int_compare_and_swap_full) \ || defined(AO_HAVE_int_fetch_compare_and_swap_full) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_full) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_full) || defined(AO_HAVE_int_and_full) \ || defined(AO_HAVE_int_or_full) || defined(AO_HAVE_int_xor_full) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_full) (void)"AO_nop_full(): "; AO_nop_full(); # else (void)"No AO_nop_full"; # endif # ifdef AO_HAVE_int_load_full (void)"AO_int_load_full(&val):"; (void)AO_int_load_full(&val); # else (void)"No AO_int_load_full"; # endif # ifdef AO_HAVE_int_store_full (void)"AO_int_store_full(&val, newval):"; AO_int_store_full(&val, newval); # else (void)"No AO_int_store_full"; # endif # ifdef AO_HAVE_int_fetch_and_add_full (void)"AO_int_fetch_and_add_full(&val, incr):"; (void)AO_int_fetch_and_add_full(&val, incr); # else (void)"No AO_int_fetch_and_add_full"; # endif # ifdef AO_HAVE_int_fetch_and_add1_full (void)"AO_int_fetch_and_add1_full(&val):"; (void)AO_int_fetch_and_add1_full(&val); # else (void)"No AO_int_fetch_and_add1_full"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_full (void)"AO_int_fetch_and_sub1_full(&val):"; (void)AO_int_fetch_and_sub1_full(&val); # else (void)"No AO_int_fetch_and_sub1_full"; # endif # ifdef AO_HAVE_int_and_full (void)"AO_int_and_full(&val, incr):"; AO_int_and_full(&val, incr); # else (void)"No AO_int_and_full"; # endif # ifdef AO_HAVE_int_or_full (void)"AO_int_or_full(&val, incr):"; AO_int_or_full(&val, incr); # else (void)"No AO_int_or_full"; # endif # ifdef AO_HAVE_int_xor_full (void)"AO_int_xor_full(&val, incr):"; AO_int_xor_full(&val, incr); # else (void)"No AO_int_xor_full"; # endif # ifdef AO_HAVE_int_compare_and_swap_full (void)"AO_int_compare_and_swap_full(&val, oldval, newval):"; if (!AO_int_compare_and_swap_full(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_full"; # endif /* TODO: Add AO_compare_double_and_swap_double_full */ /* TODO: Add AO_compare_and_swap_double_full */ # ifdef AO_HAVE_int_fetch_compare_and_swap_full (void)"AO_int_fetch_compare_and_swap_full(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_full(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_full"; # endif # if defined(AO_HAVE_test_and_set_full) (void)"AO_test_and_set_full(&ts):"; (void)AO_test_and_set_full(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_release_write(void) { # if defined(AO_HAVE_int_load_release_write) || defined(AO_HAVE_int_store_release_write) \ || defined(AO_HAVE_int_fetch_and_add_release_write) \ || defined(AO_HAVE_int_fetch_and_add1_release_write) \ || defined(AO_HAVE_int_and_release_write) \ || defined(AO_HAVE_int_compare_and_swap_release_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release_write) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_release_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release_write) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_release_write) \ || defined(AO_HAVE_int_compare_and_swap_release_write) \ || defined(AO_HAVE_int_fetch_compare_and_swap_release_write) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release_write) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_release_write) || defined(AO_HAVE_int_and_release_write) \ || defined(AO_HAVE_int_or_release_write) || defined(AO_HAVE_int_xor_release_write) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release_write) (void)"AO_nop_release_write(): "; AO_nop_release_write(); # else (void)"No AO_nop_release_write"; # endif # ifdef AO_HAVE_int_load_release_write (void)"AO_int_load_release_write(&val):"; (void)AO_int_load_release_write(&val); # else (void)"No AO_int_load_release_write"; # endif # ifdef AO_HAVE_int_store_release_write (void)"AO_int_store_release_write(&val, newval):"; AO_int_store_release_write(&val, newval); # else (void)"No AO_int_store_release_write"; # endif # ifdef AO_HAVE_int_fetch_and_add_release_write (void)"AO_int_fetch_and_add_release_write(&val, incr):"; (void)AO_int_fetch_and_add_release_write(&val, incr); # else (void)"No AO_int_fetch_and_add_release_write"; # endif # ifdef AO_HAVE_int_fetch_and_add1_release_write (void)"AO_int_fetch_and_add1_release_write(&val):"; (void)AO_int_fetch_and_add1_release_write(&val); # else (void)"No AO_int_fetch_and_add1_release_write"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_release_write (void)"AO_int_fetch_and_sub1_release_write(&val):"; (void)AO_int_fetch_and_sub1_release_write(&val); # else (void)"No AO_int_fetch_and_sub1_release_write"; # endif # ifdef AO_HAVE_int_and_release_write (void)"AO_int_and_release_write(&val, incr):"; AO_int_and_release_write(&val, incr); # else (void)"No AO_int_and_release_write"; # endif # ifdef AO_HAVE_int_or_release_write (void)"AO_int_or_release_write(&val, incr):"; AO_int_or_release_write(&val, incr); # else (void)"No AO_int_or_release_write"; # endif # ifdef AO_HAVE_int_xor_release_write (void)"AO_int_xor_release_write(&val, incr):"; AO_int_xor_release_write(&val, incr); # else (void)"No AO_int_xor_release_write"; # endif # ifdef AO_HAVE_int_compare_and_swap_release_write (void)"AO_int_compare_and_swap_release_write(&val, oldval, newval):"; if (!AO_int_compare_and_swap_release_write(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_release_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_release_write */ /* TODO: Add AO_compare_and_swap_double_release_write */ # ifdef AO_HAVE_int_fetch_compare_and_swap_release_write (void)"AO_int_fetch_compare_and_swap_release_write(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_release_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) (void)"AO_test_and_set_release_write(&ts):"; (void)AO_test_and_set_release_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void int_list_atomic_acquire_read(void) { # if defined(AO_HAVE_int_load_acquire_read) || defined(AO_HAVE_int_store_acquire_read) \ || defined(AO_HAVE_int_fetch_and_add_acquire_read) \ || defined(AO_HAVE_int_fetch_and_add1_acquire_read) \ || defined(AO_HAVE_int_and_acquire_read) \ || defined(AO_HAVE_int_compare_and_swap_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire_read) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire_read) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_acquire_read) \ || defined(AO_HAVE_int_compare_and_swap_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_acquire_read) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_acquire_read) || defined(AO_HAVE_int_and_acquire_read) \ || defined(AO_HAVE_int_or_acquire_read) || defined(AO_HAVE_int_xor_acquire_read) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire_read) (void)"AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else (void)"No AO_nop_acquire_read"; # endif # ifdef AO_HAVE_int_load_acquire_read (void)"AO_int_load_acquire_read(&val):"; (void)AO_int_load_acquire_read(&val); # else (void)"No AO_int_load_acquire_read"; # endif # ifdef AO_HAVE_int_store_acquire_read (void)"AO_int_store_acquire_read(&val, newval):"; AO_int_store_acquire_read(&val, newval); # else (void)"No AO_int_store_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_add_acquire_read (void)"AO_int_fetch_and_add_acquire_read(&val, incr):"; (void)AO_int_fetch_and_add_acquire_read(&val, incr); # else (void)"No AO_int_fetch_and_add_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_add1_acquire_read (void)"AO_int_fetch_and_add1_acquire_read(&val):"; (void)AO_int_fetch_and_add1_acquire_read(&val); # else (void)"No AO_int_fetch_and_add1_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_acquire_read (void)"AO_int_fetch_and_sub1_acquire_read(&val):"; (void)AO_int_fetch_and_sub1_acquire_read(&val); # else (void)"No AO_int_fetch_and_sub1_acquire_read"; # endif # ifdef AO_HAVE_int_and_acquire_read (void)"AO_int_and_acquire_read(&val, incr):"; AO_int_and_acquire_read(&val, incr); # else (void)"No AO_int_and_acquire_read"; # endif # ifdef AO_HAVE_int_or_acquire_read (void)"AO_int_or_acquire_read(&val, incr):"; AO_int_or_acquire_read(&val, incr); # else (void)"No AO_int_or_acquire_read"; # endif # ifdef AO_HAVE_int_xor_acquire_read (void)"AO_int_xor_acquire_read(&val, incr):"; AO_int_xor_acquire_read(&val, incr); # else (void)"No AO_int_xor_acquire_read"; # endif # ifdef AO_HAVE_int_compare_and_swap_acquire_read (void)"AO_int_compare_and_swap_acquire_read(&val, oldval, newval):"; if (!AO_int_compare_and_swap_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire_read */ /* TODO: Add AO_compare_and_swap_double_acquire_read */ # ifdef AO_HAVE_int_fetch_compare_and_swap_acquire_read (void)"AO_int_fetch_compare_and_swap_acquire_read(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) (void)"AO_test_and_set_acquire_read(&ts):"; (void)AO_test_and_set_acquire_read(&ts); # else (void)"No AO_test_and_set_acquire_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 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. */ #include /* for exit() */ void int_list_atomic_dd_acquire_read(void) { # if defined(AO_HAVE_int_load_dd_acquire_read) || defined(AO_HAVE_int_store_dd_acquire_read) \ || defined(AO_HAVE_int_fetch_and_add_dd_acquire_read) \ || defined(AO_HAVE_int_fetch_and_add1_dd_acquire_read) \ || defined(AO_HAVE_int_and_dd_acquire_read) \ || defined(AO_HAVE_int_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_dd_acquire_read) static volatile unsigned val /* = 0 */; # endif # if defined(AO_HAVE_int_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_dd_acquire_read) static unsigned oldval /* = 0 */; # endif # if defined(AO_HAVE_int_store_dd_acquire_read) \ || defined(AO_HAVE_int_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_int_fetch_compare_and_swap_dd_acquire_read) static unsigned newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_int_fetch_and_add_dd_acquire_read) || defined(AO_HAVE_int_and_dd_acquire_read) \ || defined(AO_HAVE_int_or_dd_acquire_read) || defined(AO_HAVE_int_xor_dd_acquire_read) static unsigned incr /* = 0 */; # endif # if defined(AO_HAVE_nop_dd_acquire_read) (void)"AO_nop_dd_acquire_read(): "; AO_nop_dd_acquire_read(); # else (void)"No AO_nop_dd_acquire_read"; # endif # ifdef AO_HAVE_int_load_dd_acquire_read (void)"AO_int_load_dd_acquire_read(&val):"; (void)AO_int_load_dd_acquire_read(&val); # else (void)"No AO_int_load_dd_acquire_read"; # endif # ifdef AO_HAVE_int_store_dd_acquire_read (void)"AO_int_store_dd_acquire_read(&val, newval):"; AO_int_store_dd_acquire_read(&val, newval); # else (void)"No AO_int_store_dd_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_add_dd_acquire_read (void)"AO_int_fetch_and_add_dd_acquire_read(&val, incr):"; (void)AO_int_fetch_and_add_dd_acquire_read(&val, incr); # else (void)"No AO_int_fetch_and_add_dd_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_add1_dd_acquire_read (void)"AO_int_fetch_and_add1_dd_acquire_read(&val):"; (void)AO_int_fetch_and_add1_dd_acquire_read(&val); # else (void)"No AO_int_fetch_and_add1_dd_acquire_read"; # endif # ifdef AO_HAVE_int_fetch_and_sub1_dd_acquire_read (void)"AO_int_fetch_and_sub1_dd_acquire_read(&val):"; (void)AO_int_fetch_and_sub1_dd_acquire_read(&val); # else (void)"No AO_int_fetch_and_sub1_dd_acquire_read"; # endif # ifdef AO_HAVE_int_and_dd_acquire_read (void)"AO_int_and_dd_acquire_read(&val, incr):"; AO_int_and_dd_acquire_read(&val, incr); # else (void)"No AO_int_and_dd_acquire_read"; # endif # ifdef AO_HAVE_int_or_dd_acquire_read (void)"AO_int_or_dd_acquire_read(&val, incr):"; AO_int_or_dd_acquire_read(&val, incr); # else (void)"No AO_int_or_dd_acquire_read"; # endif # ifdef AO_HAVE_int_xor_dd_acquire_read (void)"AO_int_xor_dd_acquire_read(&val, incr):"; AO_int_xor_dd_acquire_read(&val, incr); # else (void)"No AO_int_xor_dd_acquire_read"; # endif # ifdef AO_HAVE_int_compare_and_swap_dd_acquire_read (void)"AO_int_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (!AO_int_compare_and_swap_dd_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_int_compare_and_swap_dd_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_dd_acquire_read */ /* TODO: Add AO_compare_and_swap_double_dd_acquire_read */ # ifdef AO_HAVE_int_fetch_compare_and_swap_dd_acquire_read (void)"AO_int_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (AO_int_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_int_fetch_compare_and_swap_dd_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) (void)"AO_test_and_set_dd_acquire_read(&ts):"; (void)AO_test_and_set_dd_acquire_read(&ts); # else (void)"No AO_test_and_set_dd_acquire_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 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. */ #include /* for exit() */ void double_list_atomic(void) { # if defined(AO_HAVE_double_load) || defined(AO_HAVE_double_store) \ || defined(AO_HAVE_double_fetch_and_add) \ || defined(AO_HAVE_double_fetch_and_add1) \ || defined(AO_HAVE_double_and) \ || defined(AO_HAVE_double_compare_and_swap) \ || defined(AO_HAVE_double_fetch_compare_and_swap) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap) \ || defined(AO_HAVE_double_fetch_compare_and_swap) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store) \ || defined(AO_HAVE_double_compare_and_swap) \ || defined(AO_HAVE_double_fetch_compare_and_swap) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add) || defined(AO_HAVE_double_and) \ || defined(AO_HAVE_double_or) || defined(AO_HAVE_double_xor) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop) (void)"AO_nop(): "; AO_nop(); # else (void)"No AO_nop"; # endif # ifdef AO_HAVE_double_load (void)"AO_double_load(&val):"; (void)AO_double_load(&val); # else (void)"No AO_double_load"; # endif # ifdef AO_HAVE_double_store (void)"AO_double_store(&val, newval):"; AO_double_store(&val, newval); # else (void)"No AO_double_store"; # endif # ifdef AO_HAVE_double_fetch_and_add (void)"AO_double_fetch_and_add(&val, incr):"; (void)AO_double_fetch_and_add(&val, incr); # else (void)"No AO_double_fetch_and_add"; # endif # ifdef AO_HAVE_double_fetch_and_add1 (void)"AO_double_fetch_and_add1(&val):"; (void)AO_double_fetch_and_add1(&val); # else (void)"No AO_double_fetch_and_add1"; # endif # ifdef AO_HAVE_double_fetch_and_sub1 (void)"AO_double_fetch_and_sub1(&val):"; (void)AO_double_fetch_and_sub1(&val); # else (void)"No AO_double_fetch_and_sub1"; # endif # ifdef AO_HAVE_double_and (void)"AO_double_and(&val, incr):"; AO_double_and(&val, incr); # else (void)"No AO_double_and"; # endif # ifdef AO_HAVE_double_or (void)"AO_double_or(&val, incr):"; AO_double_or(&val, incr); # else (void)"No AO_double_or"; # endif # ifdef AO_HAVE_double_xor (void)"AO_double_xor(&val, incr):"; AO_double_xor(&val, incr); # else (void)"No AO_double_xor"; # endif # ifdef AO_HAVE_double_compare_and_swap (void)"AO_double_compare_and_swap(&val, oldval, newval):"; if (!AO_double_compare_and_swap(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap"; # endif /* TODO: Add AO_compare_double_and_swap_double */ /* TODO: Add AO_compare_and_swap_double */ # ifdef AO_HAVE_double_fetch_compare_and_swap (void)"AO_double_fetch_compare_and_swap(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap"; # endif # if defined(AO_HAVE_test_and_set) (void)"AO_test_and_set(&ts):"; (void)AO_test_and_set(&ts); # else (void)"No AO_test_and_set"; # endif } /* * Copyright (c) 2003 by Hewlett-Packard Company. All rights reserved. * * This file is covered by the GNU general public license, version 2. * see 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. */ #include /* for exit() */ void double_list_atomic_release(void) { # if defined(AO_HAVE_double_load_release) || defined(AO_HAVE_double_store_release) \ || defined(AO_HAVE_double_fetch_and_add_release) \ || defined(AO_HAVE_double_fetch_and_add1_release) \ || defined(AO_HAVE_double_and_release) \ || defined(AO_HAVE_double_compare_and_swap_release) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_release) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_release) \ || defined(AO_HAVE_double_compare_and_swap_release) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_release) || defined(AO_HAVE_double_and_release) \ || defined(AO_HAVE_double_or_release) || defined(AO_HAVE_double_xor_release) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release) (void)"AO_nop_release(): "; AO_nop_release(); # else (void)"No AO_nop_release"; # endif # ifdef AO_HAVE_double_load_release (void)"AO_double_load_release(&val):"; (void)AO_double_load_release(&val); # else (void)"No AO_double_load_release"; # endif # ifdef AO_HAVE_double_store_release (void)"AO_double_store_release(&val, newval):"; AO_double_store_release(&val, newval); # else (void)"No AO_double_store_release"; # endif # ifdef AO_HAVE_double_fetch_and_add_release (void)"AO_double_fetch_and_add_release(&val, incr):"; (void)AO_double_fetch_and_add_release(&val, incr); # else (void)"No AO_double_fetch_and_add_release"; # endif # ifdef AO_HAVE_double_fetch_and_add1_release (void)"AO_double_fetch_and_add1_release(&val):"; (void)AO_double_fetch_and_add1_release(&val); # else (void)"No AO_double_fetch_and_add1_release"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_release (void)"AO_double_fetch_and_sub1_release(&val):"; (void)AO_double_fetch_and_sub1_release(&val); # else (void)"No AO_double_fetch_and_sub1_release"; # endif # ifdef AO_HAVE_double_and_release (void)"AO_double_and_release(&val, incr):"; AO_double_and_release(&val, incr); # else (void)"No AO_double_and_release"; # endif # ifdef AO_HAVE_double_or_release (void)"AO_double_or_release(&val, incr):"; AO_double_or_release(&val, incr); # else (void)"No AO_double_or_release"; # endif # ifdef AO_HAVE_double_xor_release (void)"AO_double_xor_release(&val, incr):"; AO_double_xor_release(&val, incr); # else (void)"No AO_double_xor_release"; # endif # ifdef AO_HAVE_double_compare_and_swap_release (void)"AO_double_compare_and_swap_release(&val, oldval, newval):"; if (!AO_double_compare_and_swap_release(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_release"; # endif /* TODO: Add AO_compare_double_and_swap_double_release */ /* TODO: Add AO_compare_and_swap_double_release */ # ifdef AO_HAVE_double_fetch_compare_and_swap_release (void)"AO_double_fetch_compare_and_swap_release(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_release(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_release"; # endif # if defined(AO_HAVE_test_and_set_release) (void)"AO_test_and_set_release(&ts):"; (void)AO_test_and_set_release(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_acquire(void) { # if defined(AO_HAVE_double_load_acquire) || defined(AO_HAVE_double_store_acquire) \ || defined(AO_HAVE_double_fetch_and_add_acquire) \ || defined(AO_HAVE_double_fetch_and_add1_acquire) \ || defined(AO_HAVE_double_and_acquire) \ || defined(AO_HAVE_double_compare_and_swap_acquire) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_acquire) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_acquire) \ || defined(AO_HAVE_double_compare_and_swap_acquire) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_acquire) || defined(AO_HAVE_double_and_acquire) \ || defined(AO_HAVE_double_or_acquire) || defined(AO_HAVE_double_xor_acquire) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire) (void)"AO_nop_acquire(): "; AO_nop_acquire(); # else (void)"No AO_nop_acquire"; # endif # ifdef AO_HAVE_double_load_acquire (void)"AO_double_load_acquire(&val):"; (void)AO_double_load_acquire(&val); # else (void)"No AO_double_load_acquire"; # endif # ifdef AO_HAVE_double_store_acquire (void)"AO_double_store_acquire(&val, newval):"; AO_double_store_acquire(&val, newval); # else (void)"No AO_double_store_acquire"; # endif # ifdef AO_HAVE_double_fetch_and_add_acquire (void)"AO_double_fetch_and_add_acquire(&val, incr):"; (void)AO_double_fetch_and_add_acquire(&val, incr); # else (void)"No AO_double_fetch_and_add_acquire"; # endif # ifdef AO_HAVE_double_fetch_and_add1_acquire (void)"AO_double_fetch_and_add1_acquire(&val):"; (void)AO_double_fetch_and_add1_acquire(&val); # else (void)"No AO_double_fetch_and_add1_acquire"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_acquire (void)"AO_double_fetch_and_sub1_acquire(&val):"; (void)AO_double_fetch_and_sub1_acquire(&val); # else (void)"No AO_double_fetch_and_sub1_acquire"; # endif # ifdef AO_HAVE_double_and_acquire (void)"AO_double_and_acquire(&val, incr):"; AO_double_and_acquire(&val, incr); # else (void)"No AO_double_and_acquire"; # endif # ifdef AO_HAVE_double_or_acquire (void)"AO_double_or_acquire(&val, incr):"; AO_double_or_acquire(&val, incr); # else (void)"No AO_double_or_acquire"; # endif # ifdef AO_HAVE_double_xor_acquire (void)"AO_double_xor_acquire(&val, incr):"; AO_double_xor_acquire(&val, incr); # else (void)"No AO_double_xor_acquire"; # endif # ifdef AO_HAVE_double_compare_and_swap_acquire (void)"AO_double_compare_and_swap_acquire(&val, oldval, newval):"; if (!AO_double_compare_and_swap_acquire(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_acquire"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire */ /* TODO: Add AO_compare_and_swap_double_acquire */ # ifdef AO_HAVE_double_fetch_compare_and_swap_acquire (void)"AO_double_fetch_compare_and_swap_acquire(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_acquire(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_acquire"; # endif # if defined(AO_HAVE_test_and_set_acquire) (void)"AO_test_and_set_acquire(&ts):"; (void)AO_test_and_set_acquire(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_read(void) { # if defined(AO_HAVE_double_load_read) || defined(AO_HAVE_double_store_read) \ || defined(AO_HAVE_double_fetch_and_add_read) \ || defined(AO_HAVE_double_fetch_and_add1_read) \ || defined(AO_HAVE_double_and_read) \ || defined(AO_HAVE_double_compare_and_swap_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_read) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_read) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_read) \ || defined(AO_HAVE_double_compare_and_swap_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_read) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_read) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_read) || defined(AO_HAVE_double_and_read) \ || defined(AO_HAVE_double_or_read) || defined(AO_HAVE_double_xor_read) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_read) (void)"AO_nop_read(): "; AO_nop_read(); # else (void)"No AO_nop_read"; # endif # ifdef AO_HAVE_double_load_read (void)"AO_double_load_read(&val):"; (void)AO_double_load_read(&val); # else (void)"No AO_double_load_read"; # endif # ifdef AO_HAVE_double_store_read (void)"AO_double_store_read(&val, newval):"; AO_double_store_read(&val, newval); # else (void)"No AO_double_store_read"; # endif # ifdef AO_HAVE_double_fetch_and_add_read (void)"AO_double_fetch_and_add_read(&val, incr):"; (void)AO_double_fetch_and_add_read(&val, incr); # else (void)"No AO_double_fetch_and_add_read"; # endif # ifdef AO_HAVE_double_fetch_and_add1_read (void)"AO_double_fetch_and_add1_read(&val):"; (void)AO_double_fetch_and_add1_read(&val); # else (void)"No AO_double_fetch_and_add1_read"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_read (void)"AO_double_fetch_and_sub1_read(&val):"; (void)AO_double_fetch_and_sub1_read(&val); # else (void)"No AO_double_fetch_and_sub1_read"; # endif # ifdef AO_HAVE_double_and_read (void)"AO_double_and_read(&val, incr):"; AO_double_and_read(&val, incr); # else (void)"No AO_double_and_read"; # endif # ifdef AO_HAVE_double_or_read (void)"AO_double_or_read(&val, incr):"; AO_double_or_read(&val, incr); # else (void)"No AO_double_or_read"; # endif # ifdef AO_HAVE_double_xor_read (void)"AO_double_xor_read(&val, incr):"; AO_double_xor_read(&val, incr); # else (void)"No AO_double_xor_read"; # endif # ifdef AO_HAVE_double_compare_and_swap_read (void)"AO_double_compare_and_swap_read(&val, oldval, newval):"; if (!AO_double_compare_and_swap_read(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_read */ /* TODO: Add AO_compare_and_swap_double_read */ # ifdef AO_HAVE_double_fetch_compare_and_swap_read (void)"AO_double_fetch_compare_and_swap_read(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_read"; # endif # if defined(AO_HAVE_test_and_set_read) (void)"AO_test_and_set_read(&ts):"; (void)AO_test_and_set_read(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_write(void) { # if defined(AO_HAVE_double_load_write) || defined(AO_HAVE_double_store_write) \ || defined(AO_HAVE_double_fetch_and_add_write) \ || defined(AO_HAVE_double_fetch_and_add1_write) \ || defined(AO_HAVE_double_and_write) \ || defined(AO_HAVE_double_compare_and_swap_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_write) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_write) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_write) \ || defined(AO_HAVE_double_compare_and_swap_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_write) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_write) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_write) || defined(AO_HAVE_double_and_write) \ || defined(AO_HAVE_double_or_write) || defined(AO_HAVE_double_xor_write) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_write) (void)"AO_nop_write(): "; AO_nop_write(); # else (void)"No AO_nop_write"; # endif # ifdef AO_HAVE_double_load_write (void)"AO_double_load_write(&val):"; (void)AO_double_load_write(&val); # else (void)"No AO_double_load_write"; # endif # ifdef AO_HAVE_double_store_write (void)"AO_double_store_write(&val, newval):"; AO_double_store_write(&val, newval); # else (void)"No AO_double_store_write"; # endif # ifdef AO_HAVE_double_fetch_and_add_write (void)"AO_double_fetch_and_add_write(&val, incr):"; (void)AO_double_fetch_and_add_write(&val, incr); # else (void)"No AO_double_fetch_and_add_write"; # endif # ifdef AO_HAVE_double_fetch_and_add1_write (void)"AO_double_fetch_and_add1_write(&val):"; (void)AO_double_fetch_and_add1_write(&val); # else (void)"No AO_double_fetch_and_add1_write"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_write (void)"AO_double_fetch_and_sub1_write(&val):"; (void)AO_double_fetch_and_sub1_write(&val); # else (void)"No AO_double_fetch_and_sub1_write"; # endif # ifdef AO_HAVE_double_and_write (void)"AO_double_and_write(&val, incr):"; AO_double_and_write(&val, incr); # else (void)"No AO_double_and_write"; # endif # ifdef AO_HAVE_double_or_write (void)"AO_double_or_write(&val, incr):"; AO_double_or_write(&val, incr); # else (void)"No AO_double_or_write"; # endif # ifdef AO_HAVE_double_xor_write (void)"AO_double_xor_write(&val, incr):"; AO_double_xor_write(&val, incr); # else (void)"No AO_double_xor_write"; # endif # ifdef AO_HAVE_double_compare_and_swap_write (void)"AO_double_compare_and_swap_write(&val, oldval, newval):"; if (!AO_double_compare_and_swap_write(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_write */ /* TODO: Add AO_compare_and_swap_double_write */ # ifdef AO_HAVE_double_fetch_compare_and_swap_write (void)"AO_double_fetch_compare_and_swap_write(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_write"; # endif # if defined(AO_HAVE_test_and_set_write) (void)"AO_test_and_set_write(&ts):"; (void)AO_test_and_set_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_full(void) { # if defined(AO_HAVE_double_load_full) || defined(AO_HAVE_double_store_full) \ || defined(AO_HAVE_double_fetch_and_add_full) \ || defined(AO_HAVE_double_fetch_and_add1_full) \ || defined(AO_HAVE_double_and_full) \ || defined(AO_HAVE_double_compare_and_swap_full) \ || defined(AO_HAVE_double_fetch_compare_and_swap_full) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_full) \ || defined(AO_HAVE_double_fetch_compare_and_swap_full) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_full) \ || defined(AO_HAVE_double_compare_and_swap_full) \ || defined(AO_HAVE_double_fetch_compare_and_swap_full) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_full) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_full) || defined(AO_HAVE_double_and_full) \ || defined(AO_HAVE_double_or_full) || defined(AO_HAVE_double_xor_full) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_full) (void)"AO_nop_full(): "; AO_nop_full(); # else (void)"No AO_nop_full"; # endif # ifdef AO_HAVE_double_load_full (void)"AO_double_load_full(&val):"; (void)AO_double_load_full(&val); # else (void)"No AO_double_load_full"; # endif # ifdef AO_HAVE_double_store_full (void)"AO_double_store_full(&val, newval):"; AO_double_store_full(&val, newval); # else (void)"No AO_double_store_full"; # endif # ifdef AO_HAVE_double_fetch_and_add_full (void)"AO_double_fetch_and_add_full(&val, incr):"; (void)AO_double_fetch_and_add_full(&val, incr); # else (void)"No AO_double_fetch_and_add_full"; # endif # ifdef AO_HAVE_double_fetch_and_add1_full (void)"AO_double_fetch_and_add1_full(&val):"; (void)AO_double_fetch_and_add1_full(&val); # else (void)"No AO_double_fetch_and_add1_full"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_full (void)"AO_double_fetch_and_sub1_full(&val):"; (void)AO_double_fetch_and_sub1_full(&val); # else (void)"No AO_double_fetch_and_sub1_full"; # endif # ifdef AO_HAVE_double_and_full (void)"AO_double_and_full(&val, incr):"; AO_double_and_full(&val, incr); # else (void)"No AO_double_and_full"; # endif # ifdef AO_HAVE_double_or_full (void)"AO_double_or_full(&val, incr):"; AO_double_or_full(&val, incr); # else (void)"No AO_double_or_full"; # endif # ifdef AO_HAVE_double_xor_full (void)"AO_double_xor_full(&val, incr):"; AO_double_xor_full(&val, incr); # else (void)"No AO_double_xor_full"; # endif # ifdef AO_HAVE_double_compare_and_swap_full (void)"AO_double_compare_and_swap_full(&val, oldval, newval):"; if (!AO_double_compare_and_swap_full(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_full"; # endif /* TODO: Add AO_compare_double_and_swap_double_full */ /* TODO: Add AO_compare_and_swap_double_full */ # ifdef AO_HAVE_double_fetch_compare_and_swap_full (void)"AO_double_fetch_compare_and_swap_full(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_full(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_full"; # endif # if defined(AO_HAVE_test_and_set_full) (void)"AO_test_and_set_full(&ts):"; (void)AO_test_and_set_full(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_release_write(void) { # if defined(AO_HAVE_double_load_release_write) || defined(AO_HAVE_double_store_release_write) \ || defined(AO_HAVE_double_fetch_and_add_release_write) \ || defined(AO_HAVE_double_fetch_and_add1_release_write) \ || defined(AO_HAVE_double_and_release_write) \ || defined(AO_HAVE_double_compare_and_swap_release_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release_write) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_release_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release_write) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_release_write) \ || defined(AO_HAVE_double_compare_and_swap_release_write) \ || defined(AO_HAVE_double_fetch_compare_and_swap_release_write) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_release_write) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_release_write) || defined(AO_HAVE_double_and_release_write) \ || defined(AO_HAVE_double_or_release_write) || defined(AO_HAVE_double_xor_release_write) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_release_write) (void)"AO_nop_release_write(): "; AO_nop_release_write(); # else (void)"No AO_nop_release_write"; # endif # ifdef AO_HAVE_double_load_release_write (void)"AO_double_load_release_write(&val):"; (void)AO_double_load_release_write(&val); # else (void)"No AO_double_load_release_write"; # endif # ifdef AO_HAVE_double_store_release_write (void)"AO_double_store_release_write(&val, newval):"; AO_double_store_release_write(&val, newval); # else (void)"No AO_double_store_release_write"; # endif # ifdef AO_HAVE_double_fetch_and_add_release_write (void)"AO_double_fetch_and_add_release_write(&val, incr):"; (void)AO_double_fetch_and_add_release_write(&val, incr); # else (void)"No AO_double_fetch_and_add_release_write"; # endif # ifdef AO_HAVE_double_fetch_and_add1_release_write (void)"AO_double_fetch_and_add1_release_write(&val):"; (void)AO_double_fetch_and_add1_release_write(&val); # else (void)"No AO_double_fetch_and_add1_release_write"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_release_write (void)"AO_double_fetch_and_sub1_release_write(&val):"; (void)AO_double_fetch_and_sub1_release_write(&val); # else (void)"No AO_double_fetch_and_sub1_release_write"; # endif # ifdef AO_HAVE_double_and_release_write (void)"AO_double_and_release_write(&val, incr):"; AO_double_and_release_write(&val, incr); # else (void)"No AO_double_and_release_write"; # endif # ifdef AO_HAVE_double_or_release_write (void)"AO_double_or_release_write(&val, incr):"; AO_double_or_release_write(&val, incr); # else (void)"No AO_double_or_release_write"; # endif # ifdef AO_HAVE_double_xor_release_write (void)"AO_double_xor_release_write(&val, incr):"; AO_double_xor_release_write(&val, incr); # else (void)"No AO_double_xor_release_write"; # endif # ifdef AO_HAVE_double_compare_and_swap_release_write (void)"AO_double_compare_and_swap_release_write(&val, oldval, newval):"; if (!AO_double_compare_and_swap_release_write(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_release_write"; # endif /* TODO: Add AO_compare_double_and_swap_double_release_write */ /* TODO: Add AO_compare_and_swap_double_release_write */ # ifdef AO_HAVE_double_fetch_compare_and_swap_release_write (void)"AO_double_fetch_compare_and_swap_release_write(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_release_write(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_release_write"; # endif # if defined(AO_HAVE_test_and_set_release_write) (void)"AO_test_and_set_release_write(&ts):"; (void)AO_test_and_set_release_write(&ts); # else (void)"No AO_test_and_set_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 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. */ #include /* for exit() */ void double_list_atomic_acquire_read(void) { # if defined(AO_HAVE_double_load_acquire_read) || defined(AO_HAVE_double_store_acquire_read) \ || defined(AO_HAVE_double_fetch_and_add_acquire_read) \ || defined(AO_HAVE_double_fetch_and_add1_acquire_read) \ || defined(AO_HAVE_double_and_acquire_read) \ || defined(AO_HAVE_double_compare_and_swap_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire_read) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire_read) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_acquire_read) \ || defined(AO_HAVE_double_compare_and_swap_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_acquire_read) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_acquire_read) || defined(AO_HAVE_double_and_acquire_read) \ || defined(AO_HAVE_double_or_acquire_read) || defined(AO_HAVE_double_xor_acquire_read) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_acquire_read) (void)"AO_nop_acquire_read(): "; AO_nop_acquire_read(); # else (void)"No AO_nop_acquire_read"; # endif # ifdef AO_HAVE_double_load_acquire_read (void)"AO_double_load_acquire_read(&val):"; (void)AO_double_load_acquire_read(&val); # else (void)"No AO_double_load_acquire_read"; # endif # ifdef AO_HAVE_double_store_acquire_read (void)"AO_double_store_acquire_read(&val, newval):"; AO_double_store_acquire_read(&val, newval); # else (void)"No AO_double_store_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_add_acquire_read (void)"AO_double_fetch_and_add_acquire_read(&val, incr):"; (void)AO_double_fetch_and_add_acquire_read(&val, incr); # else (void)"No AO_double_fetch_and_add_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_add1_acquire_read (void)"AO_double_fetch_and_add1_acquire_read(&val):"; (void)AO_double_fetch_and_add1_acquire_read(&val); # else (void)"No AO_double_fetch_and_add1_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_acquire_read (void)"AO_double_fetch_and_sub1_acquire_read(&val):"; (void)AO_double_fetch_and_sub1_acquire_read(&val); # else (void)"No AO_double_fetch_and_sub1_acquire_read"; # endif # ifdef AO_HAVE_double_and_acquire_read (void)"AO_double_and_acquire_read(&val, incr):"; AO_double_and_acquire_read(&val, incr); # else (void)"No AO_double_and_acquire_read"; # endif # ifdef AO_HAVE_double_or_acquire_read (void)"AO_double_or_acquire_read(&val, incr):"; AO_double_or_acquire_read(&val, incr); # else (void)"No AO_double_or_acquire_read"; # endif # ifdef AO_HAVE_double_xor_acquire_read (void)"AO_double_xor_acquire_read(&val, incr):"; AO_double_xor_acquire_read(&val, incr); # else (void)"No AO_double_xor_acquire_read"; # endif # ifdef AO_HAVE_double_compare_and_swap_acquire_read (void)"AO_double_compare_and_swap_acquire_read(&val, oldval, newval):"; if (!AO_double_compare_and_swap_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_acquire_read */ /* TODO: Add AO_compare_and_swap_double_acquire_read */ # ifdef AO_HAVE_double_fetch_compare_and_swap_acquire_read (void)"AO_double_fetch_compare_and_swap_acquire_read(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_acquire_read) (void)"AO_test_and_set_acquire_read(&ts):"; (void)AO_test_and_set_acquire_read(&ts); # else (void)"No AO_test_and_set_acquire_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 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. */ #include /* for exit() */ void double_list_atomic_dd_acquire_read(void) { # if defined(AO_HAVE_double_load_dd_acquire_read) || defined(AO_HAVE_double_store_dd_acquire_read) \ || defined(AO_HAVE_double_fetch_and_add_dd_acquire_read) \ || defined(AO_HAVE_double_fetch_and_add1_dd_acquire_read) \ || defined(AO_HAVE_double_and_dd_acquire_read) \ || defined(AO_HAVE_double_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_dd_acquire_read) static volatile AO_double_t val /* = 0 */; # endif # if defined(AO_HAVE_double_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_dd_acquire_read) static AO_double_t oldval /* = 0 */; # endif # if defined(AO_HAVE_double_store_dd_acquire_read) \ || defined(AO_HAVE_double_compare_and_swap_dd_acquire_read) \ || defined(AO_HAVE_double_fetch_compare_and_swap_dd_acquire_read) static AO_double_t newval /* = 0 */; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) AO_TS_t ts; # endif # if defined(AO_HAVE_double_fetch_and_add_dd_acquire_read) || defined(AO_HAVE_double_and_dd_acquire_read) \ || defined(AO_HAVE_double_or_dd_acquire_read) || defined(AO_HAVE_double_xor_dd_acquire_read) static AO_double_t incr /* = 0 */; # endif # if defined(AO_HAVE_nop_dd_acquire_read) (void)"AO_nop_dd_acquire_read(): "; AO_nop_dd_acquire_read(); # else (void)"No AO_nop_dd_acquire_read"; # endif # ifdef AO_HAVE_double_load_dd_acquire_read (void)"AO_double_load_dd_acquire_read(&val):"; (void)AO_double_load_dd_acquire_read(&val); # else (void)"No AO_double_load_dd_acquire_read"; # endif # ifdef AO_HAVE_double_store_dd_acquire_read (void)"AO_double_store_dd_acquire_read(&val, newval):"; AO_double_store_dd_acquire_read(&val, newval); # else (void)"No AO_double_store_dd_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_add_dd_acquire_read (void)"AO_double_fetch_and_add_dd_acquire_read(&val, incr):"; (void)AO_double_fetch_and_add_dd_acquire_read(&val, incr); # else (void)"No AO_double_fetch_and_add_dd_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_add1_dd_acquire_read (void)"AO_double_fetch_and_add1_dd_acquire_read(&val):"; (void)AO_double_fetch_and_add1_dd_acquire_read(&val); # else (void)"No AO_double_fetch_and_add1_dd_acquire_read"; # endif # ifdef AO_HAVE_double_fetch_and_sub1_dd_acquire_read (void)"AO_double_fetch_and_sub1_dd_acquire_read(&val):"; (void)AO_double_fetch_and_sub1_dd_acquire_read(&val); # else (void)"No AO_double_fetch_and_sub1_dd_acquire_read"; # endif # ifdef AO_HAVE_double_and_dd_acquire_read (void)"AO_double_and_dd_acquire_read(&val, incr):"; AO_double_and_dd_acquire_read(&val, incr); # else (void)"No AO_double_and_dd_acquire_read"; # endif # ifdef AO_HAVE_double_or_dd_acquire_read (void)"AO_double_or_dd_acquire_read(&val, incr):"; AO_double_or_dd_acquire_read(&val, incr); # else (void)"No AO_double_or_dd_acquire_read"; # endif # ifdef AO_HAVE_double_xor_dd_acquire_read (void)"AO_double_xor_dd_acquire_read(&val, incr):"; AO_double_xor_dd_acquire_read(&val, incr); # else (void)"No AO_double_xor_dd_acquire_read"; # endif # ifdef AO_HAVE_double_compare_and_swap_dd_acquire_read (void)"AO_double_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (!AO_double_compare_and_swap_dd_acquire_read(&val, oldval, newval)) exit(1); # else (void)"No AO_double_compare_and_swap_dd_acquire_read"; # endif /* TODO: Add AO_compare_double_and_swap_double_dd_acquire_read */ /* TODO: Add AO_compare_and_swap_double_dd_acquire_read */ # ifdef AO_HAVE_double_fetch_compare_and_swap_dd_acquire_read (void)"AO_double_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval):"; if (AO_double_fetch_compare_and_swap_dd_acquire_read(&val, oldval, newval) != oldval) exit(1); # else (void)"No AO_double_fetch_compare_and_swap_dd_acquire_read"; # endif # if defined(AO_HAVE_test_and_set_dd_acquire_read) (void)"AO_test_and_set_dd_acquire_read(&ts):"; (void)AO_test_and_set_dd_acquire_read(&ts); # else (void)"No AO_test_and_set_dd_acquire_read"; # endif }