X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-ppc64%2Fatomic.h;h=0e5f25e83bc0f7445a829ab22126a1a672214bb4;hb=4e4f43fe003969bdaa246374b90e16708a22ef79;hp=00617e2185af93f062885e12e20cca5daabba343;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/include/asm-ppc64/atomic.h b/include/asm-ppc64/atomic.h index 00617e218..0e5f25e83 100644 --- a/include/asm-ppc64/atomic.h +++ b/include/asm-ppc64/atomic.h @@ -54,6 +54,8 @@ static __inline__ int atomic_add_return(int a, atomic_t *v) return t; } +#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) + static __inline__ void atomic_sub(int a, atomic_t *v) { int t; @@ -118,6 +120,16 @@ static __inline__ int atomic_inc_return(atomic_t *v) return t; } +/* + * atomic_inc_and_test - increment and test + * @v: pointer of type atomic_t + * + * Atomically increments @v by 1 + * and returns true if the result is zero, or false for all + * other cases. + */ +#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) + static __inline__ void atomic_dec(atomic_t *v) { int t;