Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros
local.h File Reference
#include <linux/percpu.h>
#include <linux/atomic.h>

Go to the source code of this file.

Data Structures

struct  local_t
 

Macros

#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_inc(l)   atomic_long_inc(&(l)->a)
 
#define local_dec(l)   atomic_long_dec(&(l)->a)
 
#define local_add(i, l)   atomic_long_add((i),(&(l)->a))
 
#define local_sub(i, l)   atomic_long_sub((i),(&(l)->a))
 
#define local_cmpxchg(l, o, n)   (cmpxchg_local(&((l)->a.counter), (o), (n)))
 
#define local_xchg(l, n)   (xchg_local(&((l)->a.counter), (n)))
 
#define local_add_unless(l, a, u)
 
#define local_inc_not_zero(l)   local_add_unless((l), 1, 0)
 
#define local_add_negative(a, l)   (local_add_return((a), (l)) < 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_add_return(1, (l)) == 0)
 
#define local_dec_and_test(l)   (local_sub_return(1, (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))
 

Macro Definition Documentation

#define __local_add (   i,
  l 
)    ((l)->a.counter+=(i))

Definition at line 98 of file local.h.

#define __local_dec (   l)    ((l)->a.counter++)

Definition at line 97 of file local.h.

#define __local_inc (   l)    ((l)->a.counter++)

Definition at line 96 of file local.h.

#define __local_sub (   i,
  l 
)    ((l)->a.counter-=(i))

Definition at line 99 of file local.h.

#define local_add (   i,
  l 
)    atomic_long_add((i),(&(l)->a))

Definition at line 17 of file local.h.

#define local_add_negative (   a,
  l 
)    (local_add_return((a), (l)) < 0)

Definition at line 83 of file local.h.

#define local_add_unless (   l,
  a,
  u 
)
Value:
({ \
long c, old; \
c = local_read(l); \
for (;;) { \
if (unlikely(c == (u))) \
break; \
old = local_cmpxchg((l), c, c + (a)); \
if (likely(old == c)) \
break; \
c = old; \
} \
c != (u); \
})

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 67 of file local.h.

#define local_cmpxchg (   l,
  o,
  n 
)    (cmpxchg_local(&((l)->a.counter), (o), (n)))

Definition at line 54 of file local.h.

#define local_dec (   l)    atomic_long_dec(&(l)->a)

Definition at line 16 of file local.h.

#define local_dec_and_test (   l)    (local_sub_return(1, (l)) == 0)

Definition at line 93 of file local.h.

#define local_dec_return (   l)    local_sub_return(1,(l))

Definition at line 85 of file local.h.

#define local_inc (   l)    atomic_long_inc(&(l)->a)

Definition at line 15 of file local.h.

#define local_inc_and_test (   l)    (local_add_return(1, (l)) == 0)

Definition at line 91 of file local.h.

#define local_inc_not_zero (   l)    local_add_unless((l), 1, 0)

Definition at line 81 of file local.h.

#define local_inc_return (   l)    local_add_return(1,(l))

Definition at line 87 of file local.h.

#define LOCAL_INIT (   i)    { ATOMIC_LONG_INIT(i) }

Definition at line 12 of file local.h.

#define local_read (   l)    atomic_long_read(&(l)->a)

Definition at line 13 of file local.h.

#define local_set (   l,
  i 
)    atomic_long_set(&(l)->a, (i))

Definition at line 14 of file local.h.

#define local_sub (   i,
  l 
)    atomic_long_sub((i),(&(l)->a))

Definition at line 18 of file local.h.

#define local_sub_and_test (   i,
  l 
)    (local_sub_return((i), (l)) == 0)

Definition at line 89 of file local.h.

#define local_xchg (   l,
  n 
)    (xchg_local(&((l)->a.counter), (n)))

Definition at line 56 of file local.h.