X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-sparc%2Fatomic.h;h=fe210f3614c3117106f557a7d179ae19c62021e1;hb=720b94a4e7548e78be55ab8fd3be4686c57dc808;hp=14b5a8e4da19255d53d3fe6a713463a0e0f0d2fb;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/include/asm-sparc/atomic.h b/include/asm-sparc/atomic.h index 14b5a8e4d..fe210f361 100644 --- a/include/asm-sparc/atomic.h +++ b/include/asm-sparc/atomic.h @@ -33,6 +33,18 @@ extern void atomic_set(atomic_t *, int); #define atomic_inc_return(v) (__atomic_add_return( 1, (v))) #define atomic_dec_return(v) (__atomic_add_return( -1, (v))) +#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) + +/* + * 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) + #define atomic_dec_and_test(v) (atomic_dec_return(v) == 0) /* This is the old 24-bit implementation. It's still used internally