From: Kenn H. <ke...@us...> - 2001-01-29 00:44:30
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv25963 Modified Files: atomic.h Log Message: Added atomic_add_negative (returns non-zero if count still negative Index: atomic.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/atomic.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- atomic.h 2001/01/17 16:18:52 1.1 +++ atomic.h 2001/01/29 00:44:21 1.2 @@ -94,5 +94,20 @@ #define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) +/* This one returns non-zero if the result is negative */ +static __inline__ int atomic_add_negative(int i, atomic_t *v) +{ + int retval = 0; + __asm__ __volatile__( + " addl2 %2,%1 \n" + " blss 1f \n" + " incl %0 \n" + "1: \n" + : "=g" (retval) + : "m" (*v), "g" (i)); + + return retval; +} + #endif /* _ARCH_VAX_ATOMIC*/ |