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