Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

atomic_test2.c File Reference

#include <stdio.h>
#include "../atomic_ops.h"
#include "../lock_ops.h"

Go to the source code of this file.

Defines

#define CC_GCC_LIKE_ASM
#define MB
#define MEMBAR_STR   ""
#define SUF
#define ATOMIC_TYPE   atomic_t
#define VALUE_TYPE   volatile int
#define get_val(v)   (v->val)
#define _STR(S)   #S
#define STR(S)   _STR(S)
#define _AT_DECL(OP, P, S)   P##atomic_##OP##S
#define _AT_DECL1(OP, P, S)   _AT_DECL(OP, P, S)
#define AT_DECL(OP)   _AT_DECL1(OP, MB, SUF)
#define at_set   AT_DECL(set)
#define at_get   AT_DECL(get)
#define at_inc   AT_DECL(inc)
#define at_dec   AT_DECL(dec)
#define at_inc_and_test   AT_DECL(inc_and_test)
#define at_dec_and_test   AT_DECL(dec_and_test)
#define at_and   AT_DECL(and)
#define at_or   AT_DECL(or)
#define at_get_and_set   AT_DECL(get_and_set)
#define at_cmpxchg   AT_DECL(cmpxchg)
#define at_add   AT_DECL(add)
#define CHECK_ERR(txt, x, y)
#define VERIFY(ops, y)

Functions

int main (int argc, char **argv)

Variables

gen_lock_t * __membar_lock = 0
gen_lock_t dummy_membar_lock
gen_lock_t * _atomic_lock = 0
gen_lock_t dummy_atomic_lock
char * flags


Define Documentation

#define _AT_DECL OP,
P,
 )     P##atomic_##OP##S
 

Definition at line 127 of file atomic_test2.c.

#define _AT_DECL1 OP,
P,
 )     _AT_DECL(OP, P, S)
 

Definition at line 133 of file atomic_test2.c.

#define _STR  )     #S
 

Definition at line 91 of file atomic_test2.c.

#define at_add   AT_DECL(add)
 

Definition at line 148 of file atomic_test2.c.

Referenced by main().

#define at_and   AT_DECL(and)
 

Definition at line 144 of file atomic_test2.c.

Referenced by main().

#define at_cmpxchg   AT_DECL(cmpxchg)
 

Definition at line 147 of file atomic_test2.c.

Referenced by main().

#define at_dec   AT_DECL(dec)
 

Definition at line 141 of file atomic_test2.c.

Referenced by main().

#define at_dec_and_test   AT_DECL(dec_and_test)
 

Definition at line 143 of file atomic_test2.c.

Referenced by main().

#define AT_DECL OP   )     _AT_DECL1(OP, MB, SUF)
 

Definition at line 134 of file atomic_test2.c.

#define at_get   AT_DECL(get)
 

Definition at line 138 of file atomic_test2.c.

Referenced by main().

#define at_get_and_set   AT_DECL(get_and_set)
 

Definition at line 146 of file atomic_test2.c.

Referenced by main().

#define at_inc   AT_DECL(inc)
 

Definition at line 140 of file atomic_test2.c.

Referenced by main().

#define at_inc_and_test   AT_DECL(inc_and_test)
 

Definition at line 142 of file atomic_test2.c.

Referenced by main().

#define at_or   AT_DECL(or)
 

Definition at line 145 of file atomic_test2.c.

Referenced by main().

#define at_set   AT_DECL(set)
 

Definition at line 137 of file atomic_test2.c.

Referenced by main().

#define ATOMIC_TYPE   atomic_t
 

Definition at line 78 of file atomic_test2.c.

Referenced by main().

#define CC_GCC_LIKE_ASM
 

Definition at line 39 of file atomic_test2.c.

#define CHECK_ERR txt,
x,
 ) 
 

Value:

if (x!=y) { \
                fprintf(stderr, "ERROR: line %d: %s failed: expected 0x%02x but got "\
                                                "0x%02x.\n", \
                                                __LINE__, #txt, (unsigned) x, (unsigned) y);\
                goto error; \
        }

Definition at line 151 of file atomic_test2.c.

Referenced by main().

#define get_val  )     (v->val)
 

Definition at line 80 of file atomic_test2.c.

#define MB
 

Definition at line 72 of file atomic_test2.c.

#define MEMBAR_STR   ""
 

Definition at line 73 of file atomic_test2.c.

#define STR  )     _STR(S)
 

Definition at line 92 of file atomic_test2.c.

#define SUF
 

Definition at line 77 of file atomic_test2.c.

#define VALUE_TYPE   volatile int
 

Definition at line 79 of file atomic_test2.c.

Referenced by main().

#define VERIFY ops,
 ) 
 

Value:

ops ; \
        CHECK_ERR( ops, y, get_val(v))

Definition at line 159 of file atomic_test2.c.

Referenced by main().


Function Documentation

int main int  argc,
char **  argv
 

Definition at line 164 of file atomic_test2.c.

References __membar_lock, _atomic_lock, at_add, at_and, at_cmpxchg, at_dec, at_dec_and_test, at_get, at_get_and_set, at_inc, at_inc_and_test, at_or, at_set, atomic_add, ATOMIC_TYPE, CHECK_ERR, flags, membar, membar_atomic_op, membar_atomic_setget, membar_depends, membar_enter_lock, membar_leave_lock, membar_read, membar_read_atomic_op, membar_read_atomic_setget, membar_write, membar_write_atomic_op, membar_write_atomic_setget, VALUE_TYPE, and VERIFY.


Variable Documentation

gen_lock_t* __membar_lock = 0
 

Definition at line 51 of file atomic_test2.c.

Referenced by destroy_atomic_ops(), init_atomic_ops(), and main().

gen_lock_t* _atomic_lock = 0
 

Definition at line 60 of file atomic_test2.c.

Referenced by destroy_atomic_ops(), init_atomic_ops(), and main().

gen_lock_t dummy_atomic_lock
 

Definition at line 61 of file atomic_test2.c.

gen_lock_t dummy_membar_lock
 

Definition at line 52 of file atomic_test2.c.

char* flags [static]
 

Initial value:







        "smp "

        MEMBAR_STR

        "no_asm_membar(slow) "


        "no_asm_atomic_ops"



        ":use_lock"

        " "




        "atomic_t "

Definition at line 94 of file atomic_test2.c.

Referenced by main().


Generated on Tue Sep 7 04:16:33 2010 for SIPExpressRouter by  doxygen 1.3.9.1