40#define ATOMIC_INIT(i) �{ (i) }
48#define atomic_read(v) ((v)->counter)
55#define atomic_set(v,i) (((v)->counter) = (i))
64 (void)__sync_add_and_fetch(&v->
counter, i);
76 (void)__sync_sub_and_fetch(&v->
counter, i);
90 return !(__sync_sub_and_fetch(&v->
counter, i));
101 (void)__sync_fetch_and_add(&v->
counter, 1);
113 (void)__sync_fetch_and_sub(&v->
counter, 1);
126 return !(__sync_sub_and_fetch(&v->
counter, 1));
139 return !(__sync_add_and_fetch(&v->
counter, 1));
153 return (__sync_add_and_fetch(&v->
counter, i) < 0);
static void atomic_dec(atomic_t *v)
decrement atomic variable �*
Definition: atomic.h:111
static int atomic_dec_and_test(atomic_t *v)
Decrement and test �*.
Definition: atomic.h:124
static void atomic_add(int i, atomic_t *v)
Definition: atomic.h:62
static void atomic_inc(atomic_t *v)
Definition: atomic.h:99
static int atomic_sub_and_test(int i, atomic_t *v)
Definition: atomic.h:88
static int atomic_add_negative(int i, atomic_t *v)
add and test if negative �*
Definition: atomic.h:151
static int atomic_inc_and_test(atomic_t *v)
Increment and test �*.
Definition: atomic.h:137
static void atomic_sub(int i, atomic_t *v)
Definition: atomic.h:74
volatile int counter
Definition: atomic.h:37