Go to the source code of this file.
Data Structures | |
struct | oro_atomic_t |
Structure that contains an int for atomic operations. More... | |
Defines | |
#define | LWSYNC sync |
#define | ISYNC_ON_SMP |
#define | LWSYNC_ON_SMP |
#define | __stringify_in_c(...) #__VA_ARGS__ |
#define | stringify_in_c(...) __stringify_in_c(__VA_ARGS__) " " |
#define | __ASM_CONST(x) x##UL |
#define | ASM_CONST(x) __ASM_CONST(x) |
#define | PPC_LL stringify_in_c(lwz) |
#define | PPC_STL stringify_in_c(stw) |
#define | PPC_LCMPI stringify_in_c(cmpwi) |
#define | PPC_LONG stringify_in_c(.long) |
#define | PPC_TLNEI stringify_in_c(twnei) |
#define | PPC_LLARX stringify_in_c(lwarx) |
#define | PPC_STLCX stringify_in_c(stwcx.) |
#define | PPC_CNTLZL stringify_in_c(cntlzw) |
#define | PPC405_ERR77(ra, rb) |
#define | PPC405_ERR77_SYNC |
#define | ORO_ATOMIC_INIT(i) { (i) } |
#define | ORO_ATOMIC_SETUP oro_atomic_set |
#define | ORO_ATOMIC_CLEANUP(v) |
#define | oro_atomic_read(v) ((v)->counter) |
#define | oro_atomic_set(v, i) (((v)->counter) = (i)) |
#define | oro_atomic_add_negative(a, v) (oro_atomic_add_return((a), (v)) < 0) |
#define | oro_atomic_inc_and_test(v) (oro_atomic_inc_return(v) == 0) |
#define | oro_atomic_oro_cmpxchg(v, o, n) ((int)oro_cmpxchg(&((v)->counter), (o), (n))) |
#define | oro_atomic_xchg(v, new) (xchg(&((v)->counter), new)) |
#define | oro_atomic_add_unless(v, a, u) |
oro_atomic_add_unless - add unless the number is a given value : pointer of type oro_atomic_t : the amount to add to v. | |
#define | oro_atomic_inc_not_zero(v) oro_atomic_add_unless((v), 1, 0) |
#define | oro_atomic_sub_and_test(a, v) (oro_atomic_sub_return((a), (v)) == 0) |
#define | oro_atomic_dec_and_test(v) (oro_atomic_dec_return((v)) == 0) |
#define | smp_mb__before_oro_atomic_dec() smp_mb() |
#define | smp_mb__after_oro_atomic_dec() smp_mb() |
#define | smp_mb__before_oro_atomic_inc() smp_mb() |
#define | smp_mb__after_oro_atomic_inc() smp_mb() |
#define __ASM_CONST | ( | x | ) | x##UL |
Definition at line 85 of file oro_atomic.h.
#define __stringify_in_c | ( | ... | ) | #__VA_ARGS__ |
Definition at line 83 of file oro_atomic.h.
#define ASM_CONST | ( | x | ) | __ASM_CONST(x) |
Definition at line 86 of file oro_atomic.h.
#define ISYNC_ON_SMP |
Definition at line 62 of file oro_atomic.h.
#define LWSYNC sync |
Definition at line 59 of file oro_atomic.h.
#define LWSYNC_ON_SMP |
Definition at line 63 of file oro_atomic.h.
#define oro_atomic_add_negative | ( | a, | |||
v | ) | (oro_atomic_add_return((a), (v)) < 0) |
Definition at line 160 of file oro_atomic.h.
#define oro_atomic_add_unless | ( | v, | |||
a, | |||||
u | ) |
({ \ int c, old; \ c = oro_atomic_read(v); \ for (;;) { \ if (unlikely(c == (u))) \ break; \ old = oro_atomic_oro_cmpxchg((v), c, c + (a)); \ if (likely(old == c)) \ break; \ c = old; \ } \ c != (u); \ })
oro_atomic_add_unless - add unless the number is a given value : pointer of type oro_atomic_t : the amount to add to v.
.. : ...unless v 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 286 of file oro_atomic.h.
#define ORO_ATOMIC_CLEANUP | ( | v | ) |
Definition at line 121 of file oro_atomic.h.
#define oro_atomic_dec_and_test | ( | v | ) | (oro_atomic_dec_return((v)) == 0) |
Definition at line 303 of file oro_atomic.h.
#define oro_atomic_inc_and_test | ( | v | ) | (oro_atomic_inc_return(v) == 0) |
Definition at line 238 of file oro_atomic.h.
#define oro_atomic_inc_not_zero | ( | v | ) | oro_atomic_add_unless((v), 1, 0) |
Definition at line 300 of file oro_atomic.h.
#define ORO_ATOMIC_INIT | ( | i | ) | { (i) } |
Definition at line 119 of file oro_atomic.h.
#define oro_atomic_oro_cmpxchg | ( | v, | |||
o, | |||||
n | ) | ((int)oro_cmpxchg(&((v)->counter), (o), (n))) |
Definition at line 274 of file oro_atomic.h.
#define oro_atomic_read | ( | v | ) | ((v)->counter) |
Definition at line 123 of file oro_atomic.h.
#define oro_atomic_set | ( | v, | |||
i | ) | (((v)->counter) = (i)) |
Definition at line 124 of file oro_atomic.h.
#define ORO_ATOMIC_SETUP oro_atomic_set |
Definition at line 120 of file oro_atomic.h.
#define oro_atomic_sub_and_test | ( | a, | |||
v | ) | (oro_atomic_sub_return((a), (v)) == 0) |
Definition at line 302 of file oro_atomic.h.
#define oro_atomic_xchg | ( | v, | |||
new | ) | (xchg(&((v)->counter), new)) |
Definition at line 275 of file oro_atomic.h.
#define PPC405_ERR77 | ( | ra, | |||
rb | ) |
Definition at line 106 of file oro_atomic.h.
#define PPC405_ERR77_SYNC |
Definition at line 107 of file oro_atomic.h.
#define PPC_CNTLZL stringify_in_c(cntlzw) |
Definition at line 97 of file oro_atomic.h.
#define PPC_LCMPI stringify_in_c(cmpwi) |
Definition at line 92 of file oro_atomic.h.
#define PPC_LL stringify_in_c(lwz) |
Definition at line 90 of file oro_atomic.h.
#define PPC_LLARX stringify_in_c(lwarx) |
Definition at line 95 of file oro_atomic.h.
#define PPC_LONG stringify_in_c(.long) |
Definition at line 93 of file oro_atomic.h.
#define PPC_STL stringify_in_c(stw) |
Definition at line 91 of file oro_atomic.h.
#define PPC_STLCX stringify_in_c(stwcx.) |
Definition at line 96 of file oro_atomic.h.
#define PPC_TLNEI stringify_in_c(twnei) |
Definition at line 94 of file oro_atomic.h.
#define smp_mb__after_oro_atomic_dec | ( | ) | smp_mb() |
Definition at line 331 of file oro_atomic.h.
#define smp_mb__after_oro_atomic_inc | ( | ) | smp_mb() |
Definition at line 333 of file oro_atomic.h.
#define smp_mb__before_oro_atomic_dec | ( | ) | smp_mb() |
Definition at line 330 of file oro_atomic.h.
#define smp_mb__before_oro_atomic_inc | ( | ) | smp_mb() |
Definition at line 332 of file oro_atomic.h.
#define stringify_in_c | ( | ... | ) | __stringify_in_c(__VA_ARGS__) " " |
Definition at line 84 of file oro_atomic.h.