#include <linux/percpu.h>
#include <linux/bitops.h>
#include <linux/atomic.h>
#include <asm/cmpxchg.h>
#include <asm/war.h>
Go to the source code of this file.
|
#define | LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) } |
|
#define | local_read(l) atomic_long_read(&(l)->a) |
|
#define | local_set(l, i) atomic_long_set(&(l)->a, (i)) |
|
#define | local_add(i, l) atomic_long_add((i), (&(l)->a)) |
|
#define | local_sub(i, l) atomic_long_sub((i), (&(l)->a)) |
|
#define | local_inc(l) atomic_long_inc(&(l)->a) |
|
#define | local_dec(l) atomic_long_dec(&(l)->a) |
|
#define | local_cmpxchg(l, o, n) ((long)cmpxchg_local(&((l)->a.counter), (o), (n))) |
|
#define | local_xchg(l, n) (atomic_long_xchg((&(l)->a), (n))) |
|
#define | local_add_unless(l, a, u) |
|
#define | local_inc_not_zero(l) local_add_unless((l), 1, 0) |
|
#define | local_dec_return(l) local_sub_return(1, (l)) |
|
#define | local_inc_return(l) local_add_return(1, (l)) |
|
#define | local_sub_and_test(i, l) (local_sub_return((i), (l)) == 0) |
|
#define | local_inc_and_test(l) (local_inc_return(l) == 0) |
|
#define | local_dec_and_test(l) (local_sub_return(1, (l)) == 0) |
|
#define | local_add_negative(i, l) (local_add_return(i, (l)) < 0) |
|
#define | __local_inc(l) ((l)->a.counter++) |
|
#define | __local_dec(l) ((l)->a.counter++) |
|
#define | __local_add(i, l) ((l)->a.counter+=(i)) |
|
#define | __local_sub(i, l) ((l)->a.counter-=(i)) |
|
#define local_add |
( |
|
i, |
|
|
|
l |
|
) |
| atomic_long_add((i), (&(l)->a)) |
#define local_add_unless |
( |
|
l, |
|
|
|
a, |
|
|
|
u |
|
) |
| |
Value:local_add_unless - add unless the number is a given value : pointer of type local_t : the amount to add to l... : ...unless l is equal to u.
Atomically adds to , so long as it was not . Returns non-zero if was not , and zero otherwise.
Definition at line 131 of file local.h.
#define local_dec |
( |
|
l | ) |
atomic_long_dec(&(l)->a) |
#define local_inc |
( |
|
l | ) |
atomic_long_inc(&(l)->a) |
#define local_read |
( |
|
l | ) |
atomic_long_read(&(l)->a) |
#define local_set |
( |
|
l, |
|
|
|
i |
|
) |
| atomic_long_set(&(l)->a, (i)) |
#define local_sub |
( |
|
i, |
|
|
|
l |
|
) |
| atomic_long_sub((i), (&(l)->a)) |