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

atomic_unknown.h File Reference

#include "../lock_ops.h"

Go to the source code of this file.

Defines

#define MEMBAR_USES_LOCK
#define _membar_lock   lock_get(__membar_lock)
#define _membar_unlock   lock_release(__membar_lock)
#define membar()
#define membar_write()   membar()
#define membar_read()   membar()
#define membar_depends()   do {} while(0)
#define membar_enter_lock()   do {} while(0)
#define membar_leave_lock()   do {} while(0)
#define membar_atomic_op()   membar()
#define membar_atomic_setget()   membar()
#define membar_write_atomic_op()   membar_write()
#define membar_write_atomic_setget()   membar_write()
#define membar_read_atomic_op()   membar_read()
#define membar_read_atomic_setget()   membar_read()
#define atomic_lock(v)   lock_get(_atomic_lock)
#define atomic_unlock(v)   lock_release(_atomic_lock)
#define ATOMIC_FUNC_DECL(NAME, OP, P_TYPE, RET_TYPE, RET_EXPR)
#define ATOMIC_FUNC_DECL1(NAME, OP, P_TYPE, RET_TYPE, RET_EXPR)
#define ATOMIC_FUNC_DECL_RET(NAME, OP, P_TYPE, RET_TYPE, RET_EXPR)
#define ATOMIC_FUNC_DECL1_RET(NAME, OP, P_TYPE, RET_TYPE, RET_EXPR)
#define ATOMIC_FUNC_DECL2_RET(NAME, OP, P_TYPE, RET_TYPE, RET_EXPR)
#define atomic_inc(var)   atomic_inc_int(&(var)->val)
#define atomic_dec(var)   atomic_dec_int(&(var)->val)
#define atomic_and(var, mask)   atomic_and_int(&(var)->val, (mask))
#define atomic_or(var, mask)   atomic_or_int(&(var)->val, (mask))
#define atomic_dec_and_test(var)   atomic_dec_and_test_int(&(var)->val)
#define atomic_inc_and_test(var)   atomic_inc_and_test_int(&(var)->val)
#define atomic_get_and_set(var, i)   atomic_get_and_set_int(&(var)->val, i)
#define atomic_cmpxchg(var, old, new_v)   atomic_cmpxchg_int(&(var)->val, old, new_v)
#define atomic_add(var, v)   atomic_add_int(&(var)->val, v)
#define mb_atomic_set_int(v, i)
#define mb_atomic_set_long(v, i)
#define mb_atomic_inc_int(v)   atomic_inc_int(v)
#define mb_atomic_dec_int(v)   atomic_dec_int(v)
#define mb_atomic_or_int(v, m)   atomic_or_int(v, m)
#define mb_atomic_and_int(v, m)   atomic_and_int(v, m)
#define mb_atomic_inc_and_test_int(v)   atomic_inc_and_test_int(v)
#define mb_atomic_dec_and_test_int(v)   atomic_dec_and_test_int(v)
#define mb_atomic_get_and_set_int(v, i)   atomic_get_and_set_int(v, i)
#define mb_atomic_cmpxchg_int(v, o, n)   atomic_cmpxchg_int(v, o, n)
#define mb_atomic_add_int(v, i)   atomic_add_int(v, i)
#define mb_atomic_inc_long(v)   atomic_inc_long(v)
#define mb_atomic_dec_long(v)   atomic_dec_long(v)
#define mb_atomic_or_long(v, m)   atomic_or_long(v, m)
#define mb_atomic_and_long(v, m)   atomic_and_long(v, m)
#define mb_atomic_inc_and_test_long(v)   atomic_inc_and_test_long(v)
#define mb_atomic_dec_and_test_long(v)   atomic_dec_and_test_long(v)
#define mb_atomic_get_and_set_long(v, i)   atomic_get_and_set_long(v, i)
#define mb_atomic_cmpxchg_long(v, o, n)   atomic_cmpxchg_long(v, o, n)
#define mb_atomic_add_long(v, i)   atomic_add_long(v, i)
#define mb_atomic_inc(var)   mb_atomic_inc_int(&(var)->val)
#define mb_atomic_dec(var)   mb_atomic_dec_int(&(var)->val)
#define mb_atomic_and(var, mask)   mb_atomic_and_int(&(var)->val, (mask))
#define mb_atomic_or(var, mask)   mb_atomic_or_int(&(var)->val, (mask))
#define mb_atomic_dec_and_test(var)   mb_atomic_dec_and_test_int(&(var)->val)
#define mb_atomic_inc_and_test(var)   mb_atomic_inc_and_test_int(&(var)->val)
#define mb_atomic_get_and_set(var, i)   mb_atomic_get_and_set_int(&(var)->val, i)
#define mb_atomic_cmpxchg(v, o, n)   atomic_cmpxchg_int(&(v)->val, o, n)
#define mb_atomic_add(v, i)   atomic_add_int(&(v)->val, i)
#define mb_atomic_get(var)   mb_atomic_get_int(&(var)->val)
#define mb_atomic_set(var, i)   mb_atomic_set_int(&(var)->val, i)

Functions

 ATOMIC_FUNC_DECL (inc,(*var)++, int, void,) ATOMIC_FUNC_DECL(dec
 ATOMIC_FUNC_DECL_RET (inc_and_test, ret=++(*var), int, int,(ret==0)) ATOMIC_FUNC_DECL_RET(dec_and_test

Variables

gen_lock_t * __membar_lock
gen_lock_t * _atomic_lock
 var
 int
 void


Define Documentation

#define _membar_lock   lock_get(__membar_lock)
 

Definition at line 61 of file atomic_unknown.h.

#define _membar_unlock   lock_release(__membar_lock)
 

Definition at line 62 of file atomic_unknown.h.

#define atomic_add var,
 )     atomic_add_int(&(var)->val, v)
 

#define atomic_and var,
mask   )     atomic_and_int(&(var)->val, (mask))
 

#define atomic_cmpxchg var,
old,
new_v   )     atomic_cmpxchg_int(&(var)->val, old, new_v)
 

#define atomic_dec var   )     atomic_dec_int(&(var)->val)
 

#define atomic_dec_and_test var   )     atomic_dec_and_test_int(&(var)->val)
 

#define ATOMIC_FUNC_DECL NAME,
OP,
P_TYPE,
RET_TYPE,
RET_EXPR   ) 
 

Value:

inline static RET_TYPE atomic_##NAME##_##P_TYPE (volatile P_TYPE *var) \
        { \
                atomic_lock(var); \
                OP ; \
                atomic_unlock(var); \
                return RET_EXPR; \
        }

Definition at line 147 of file atomic_unknown.h.

#define ATOMIC_FUNC_DECL1 NAME,
OP,
P_TYPE,
RET_TYPE,
RET_EXPR   ) 
 

Value:

inline static RET_TYPE atomic_##NAME##_##P_TYPE (volatile P_TYPE *var, \
                                                                                                                P_TYPE v) \
        { \
                atomic_lock(var); \
                OP ; \
                atomic_unlock(var); \
                return RET_EXPR; \
        }

Definition at line 159 of file atomic_unknown.h.

#define ATOMIC_FUNC_DECL1_RET NAME,
OP,
P_TYPE,
RET_TYPE,
RET_EXPR   ) 
 

Value:

inline static RET_TYPE atomic_##NAME##_##P_TYPE (volatile P_TYPE *var, \
                                                                                                                P_TYPE v) \
        { \
                P_TYPE ret; \
                atomic_lock(var); \
                OP ; \
                atomic_unlock(var); \
                return RET_EXPR; \
        }

Definition at line 182 of file atomic_unknown.h.

#define ATOMIC_FUNC_DECL2_RET NAME,
OP,
P_TYPE,
RET_TYPE,
RET_EXPR   ) 
 

Value:

inline static RET_TYPE atomic_##NAME##_##P_TYPE (volatile P_TYPE *var, \
                                                                                                                P_TYPE v1, P_TYPE v2)\
        { \
                P_TYPE ret; \
                atomic_lock(var); \
                OP ; \
                atomic_unlock(var); \
                return RET_EXPR; \
        }

Definition at line 194 of file atomic_unknown.h.

#define ATOMIC_FUNC_DECL_RET NAME,
OP,
P_TYPE,
RET_TYPE,
RET_EXPR   ) 
 

Value:

inline static RET_TYPE atomic_##NAME##_##P_TYPE (volatile P_TYPE *var) \
        { \
                P_TYPE ret; \
                atomic_lock(var); \
                OP ; \
                atomic_unlock(var); \
                return RET_EXPR; \
        }

Definition at line 171 of file atomic_unknown.h.

#define atomic_get_and_set var,
 )     atomic_get_and_set_int(&(var)->val, i)
 

#define atomic_inc var   )     atomic_inc_int(&(var)->val)
 

#define atomic_inc_and_test var   )     atomic_inc_and_test_int(&(var)->val)
 

#define atomic_lock  )     lock_get(_atomic_lock)
 

Definition at line 138 of file atomic_unknown.h.

#define atomic_or var,
mask   )     atomic_or_int(&(var)->val, (mask))
 

#define atomic_unlock  )     lock_release(_atomic_lock)
 

Definition at line 139 of file atomic_unknown.h.

#define mb_atomic_add v,
 )     atomic_add_int(&(v)->val, i)
 

#define mb_atomic_add_int v,
 )     atomic_add_int(v, i)
 

#define mb_atomic_add_long v,
 )     atomic_add_long(v, i)
 

#define mb_atomic_and var,
mask   )     mb_atomic_and_int(&(var)->val, (mask))
 

#define mb_atomic_and_int v,
 )     atomic_and_int(v, m)
 

#define mb_atomic_and_long v,
 )     atomic_and_long(v, m)
 

#define mb_atomic_cmpxchg v,
o,
 )     atomic_cmpxchg_int(&(v)->val, o, n)
 

#define mb_atomic_cmpxchg_int v,
o,
 )     atomic_cmpxchg_int(v, o, n)
 

#define mb_atomic_cmpxchg_long v,
o,
 )     atomic_cmpxchg_long(v, o, n)
 

#define mb_atomic_dec var   )     mb_atomic_dec_int(&(var)->val)
 

#define mb_atomic_dec_and_test var   )     mb_atomic_dec_and_test_int(&(var)->val)
 

#define mb_atomic_dec_and_test_int  )     atomic_dec_and_test_int(v)
 

#define mb_atomic_dec_and_test_long  )     atomic_dec_and_test_long(v)
 

#define mb_atomic_dec_int  )     atomic_dec_int(v)
 

#define mb_atomic_dec_long  )     atomic_dec_long(v)
 

#define mb_atomic_get var   )     mb_atomic_get_int(&(var)->val)
 

#define mb_atomic_get_and_set var,
 )     mb_atomic_get_and_set_int(&(var)->val, i)
 

#define mb_atomic_get_and_set_int v,
 )     atomic_get_and_set_int(v, i)
 

#define mb_atomic_get_and_set_long v,
 )     atomic_get_and_set_long(v, i)
 

#define mb_atomic_inc var   )     mb_atomic_inc_int(&(var)->val)
 

#define mb_atomic_inc_and_test var   )     mb_atomic_inc_and_test_int(&(var)->val)
 

#define mb_atomic_inc_and_test_int  )     atomic_inc_and_test_int(v)
 

#define mb_atomic_inc_and_test_long  )     atomic_inc_and_test_long(v)
 

#define mb_atomic_inc_int  )     atomic_inc_int(v)
 

#define mb_atomic_inc_long  )     atomic_inc_long(v)
 

#define mb_atomic_or var,
mask   )     mb_atomic_or_int(&(var)->val, (mask))
 

#define mb_atomic_or_int v,
 )     atomic_or_int(v, m)
 

#define mb_atomic_or_long v,
 )     atomic_or_long(v, m)
 

#define mb_atomic_set var,
 )     mb_atomic_set_int(&(var)->val, i)
 

#define mb_atomic_set_int v,
 ) 
 

Value:

do{ \
                membar(); \
                atomic_set_int(v, i); \
        }while(0)

#define mb_atomic_set_long v,
 ) 
 

Value:

do{ \
                membar(); \
                atomic_set_long(v, i); \
        }while(0)

 
#define membar  ) 
 

Value:

do{\
                _membar_unlock; \
                _membar_lock; \
        } while(0)

Definition at line 75 of file atomic_unknown.h.

 
#define membar_atomic_op  )     membar()
 

Definition at line 103 of file atomic_unknown.h.

 
#define membar_atomic_setget  )     membar()
 

Definition at line 104 of file atomic_unknown.h.

 
#define membar_depends  )     do {} while(0)
 

Definition at line 89 of file atomic_unknown.h.

 
#define membar_enter_lock  )     do {} while(0)
 

Definition at line 95 of file atomic_unknown.h.

 
#define membar_leave_lock  )     do {} while(0)
 

Definition at line 96 of file atomic_unknown.h.

 
#define membar_read  )     membar()
 

Definition at line 85 of file atomic_unknown.h.

 
#define membar_read_atomic_op  )     membar_read()
 

Definition at line 107 of file atomic_unknown.h.

 
#define membar_read_atomic_setget  )     membar_read()
 

Definition at line 108 of file atomic_unknown.h.

#define MEMBAR_USES_LOCK
 

Definition at line 58 of file atomic_unknown.h.

 
#define membar_write  )     membar()
 

Definition at line 83 of file atomic_unknown.h.

 
#define membar_write_atomic_op  )     membar_write()
 

Definition at line 105 of file atomic_unknown.h.

 
#define membar_write_atomic_setget  )     membar_write()
 

Definition at line 106 of file atomic_unknown.h.


Function Documentation

ATOMIC_FUNC_DECL inc  ,
*var++  ,
int  ,
void 
 

ATOMIC_FUNC_DECL_RET inc_and_test  ,
ret  = ++(*var),
int  ,
int  ,
(ret==0) 
 


Variable Documentation

gen_lock_t* __membar_lock
 

Definition at line 37 of file atomic_ops.c.

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

gen_lock_t* _atomic_lock
 

Definition at line 43 of file atomic_ops.c.

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

int
 

Definition at line 207 of file atomic_unknown.h.

Referenced by cfg_lookup_token().

var
 

Definition at line 207 of file atomic_unknown.h.

Referenced by cfg_declare_int(), cfg_declare_str(), cfg_fixup_selects(), cfg_get_by_name(), cfg_help(), cfg_lookup_var(), cfg_set_delayed(), cfg_set_now(), cfg_var_size(), new_cfg_script_var(), rpc_get(), rpc_help(), rpc_set_delayed_int(), rpc_set_delayed_string(), rpc_set_now_int(), rpc_set_now_string(), and select_cfg_var().

void
 

Definition at line 207 of file atomic_unknown.h.

Referenced by print_rows(), and xode_stream_new().


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