Blame tests/list_atomic.template

Packit fe9d6e
/*
Packit fe9d6e
 * Copyright (c) 2003 by Hewlett-Packard Company.  All rights reserved.
Packit fe9d6e
 *
Packit fe9d6e
 * This file is covered by the GNU general public license, version 2.
Packit fe9d6e
 * see COPYING for details.
Packit fe9d6e
 */
Packit fe9d6e
Packit fe9d6e
/* This generates a compilable program.  But it is really meant to be   */
Packit fe9d6e
/* be used only with cc -E, to inspect the expensions generated by      */
Packit fe9d6e
/* primitives.                                                          */
Packit fe9d6e
Packit fe9d6e
/* The result will not link or run.                                     */
Packit fe9d6e
Packit fe9d6e
#include <stdlib.h> /* for exit() */
Packit fe9d6e
Packit fe9d6e
void XSIZE_list_atomicXX(void)
Packit fe9d6e
{
Packit fe9d6e
# if defined(AO_HAVE_XSIZE_loadXX) || defined(AO_HAVE_XSIZE_storeXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_fetch_and_addXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_fetch_and_add1XX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_andXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_compare_and_swapXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_fetch_compare_and_swapXX)
Packit fe9d6e
    static volatile XCTYPE val /* = 0 */;
Packit fe9d6e
# endif
Packit fe9d6e
# if defined(AO_HAVE_XSIZE_compare_and_swapXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_fetch_compare_and_swapXX)
Packit fe9d6e
    static XCTYPE oldval /* = 0 */;
Packit fe9d6e
# endif
Packit fe9d6e
# if defined(AO_HAVE_XSIZE_storeXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_compare_and_swapXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_fetch_compare_and_swapXX)
Packit fe9d6e
    static XCTYPE newval /* = 0 */;
Packit fe9d6e
# endif
Packit fe9d6e
# if defined(AO_HAVE_test_and_setXX)
Packit fe9d6e
    AO_TS_t ts;
Packit fe9d6e
# endif
Packit fe9d6e
# if defined(AO_HAVE_XSIZE_fetch_and_addXX) || defined(AO_HAVE_XSIZE_andXX) \
Packit fe9d6e
     || defined(AO_HAVE_XSIZE_orXX) || defined(AO_HAVE_XSIZE_xorXX)
Packit fe9d6e
    static XCTYPE incr /* = 0 */;
Packit fe9d6e
# endif
Packit fe9d6e
Packit fe9d6e
# if defined(AO_HAVE_nopXX)
Packit fe9d6e
    (void)"AO_nopXX(): ";
Packit fe9d6e
    AO_nopXX();
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_nopXX";
Packit fe9d6e
# endif
Packit fe9d6e
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_loadXX
Packit fe9d6e
    (void)"AO_XSIZE_loadXX(&val):";
Packit fe9d6e
    (void)AO_XSIZE_loadXX(&val;;
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_loadXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_storeXX
Packit fe9d6e
    (void)"AO_XSIZE_storeXX(&val, newval):";
Packit fe9d6e
    AO_XSIZE_storeXX(&val, newval);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_storeXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_fetch_and_addXX
Packit fe9d6e
    (void)"AO_XSIZE_fetch_and_addXX(&val, incr):";
Packit fe9d6e
    (void)AO_XSIZE_fetch_and_addXX(&val, incr);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_fetch_and_addXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_fetch_and_add1XX
Packit fe9d6e
    (void)"AO_XSIZE_fetch_and_add1XX(&val):";
Packit fe9d6e
    (void)AO_XSIZE_fetch_and_add1XX(&val;;
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_fetch_and_add1XX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_fetch_and_sub1XX
Packit fe9d6e
    (void)"AO_XSIZE_fetch_and_sub1XX(&val):";
Packit fe9d6e
    (void)AO_XSIZE_fetch_and_sub1XX(&val;;
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_fetch_and_sub1XX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_andXX
Packit fe9d6e
    (void)"AO_XSIZE_andXX(&val, incr):";
Packit fe9d6e
    AO_XSIZE_andXX(&val, incr);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_andXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_orXX
Packit fe9d6e
    (void)"AO_XSIZE_orXX(&val, incr):";
Packit fe9d6e
    AO_XSIZE_orXX(&val, incr);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_orXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_xorXX
Packit fe9d6e
    (void)"AO_XSIZE_xorXX(&val, incr):";
Packit fe9d6e
    AO_XSIZE_xorXX(&val, incr);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_xorXX";
Packit fe9d6e
# endif
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_compare_and_swapXX
Packit fe9d6e
    (void)"AO_XSIZE_compare_and_swapXX(&val, oldval, newval):";
Packit fe9d6e
    if (!AO_XSIZE_compare_and_swapXX(&val, oldval, newval))
Packit fe9d6e
      exit(1);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_compare_and_swapXX";
Packit fe9d6e
# endif
Packit fe9d6e
  /* TODO: Add AO_compare_double_and_swap_doubleXX */
Packit fe9d6e
  /* TODO: Add AO_compare_and_swap_doubleXX */
Packit fe9d6e
# ifdef AO_HAVE_XSIZE_fetch_compare_and_swapXX
Packit fe9d6e
    (void)"AO_XSIZE_fetch_compare_and_swapXX(&val, oldval, newval):";
Packit fe9d6e
    if (AO_XSIZE_fetch_compare_and_swapXX(&val, oldval, newval) != oldval)
Packit fe9d6e
      exit(1);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_XSIZE_fetch_compare_and_swapXX";
Packit fe9d6e
# endif
Packit fe9d6e
Packit fe9d6e
# if defined(AO_HAVE_test_and_setXX)
Packit fe9d6e
    (void)"AO_test_and_setXX(&ts):";
Packit fe9d6e
    (void)AO_test_and_setXX(&ts);
Packit fe9d6e
# else
Packit fe9d6e
    (void)"No AO_test_and_setXX";
Packit fe9d6e
# endif
Packit fe9d6e
}