core/x86/arch_exports.h
/* Atomically decrements *var by 1
 * Returns true if the resulting value is zero, otherwise returns false
 */
Atomically decrements *var by 1
Returns true if the resulting value is zero, otherwise returns false
Atomically decrements * var by 1 Returns true if the resulting value is zero otherwise returns false
static inline bool atomic_dec_becomes_zero(volatile int *var)
{
    unsigned char c;
    ATOMIC_DEC(int, *var);
    SET_IF_NOT_ZERO(c);
    return c == 0;
}
static inline bool atomic_dec_becomes_zero ( volatile int * var ) { unsigned char c ; ATOMIC_DEC ( int , * var ) ; SET_IF_NOT_ZERO ( c ) ; return c == 0 ; }
Atomically decrements *var by 1
 Returns true if the resulting value is zero, otherwise returns false
Atomically decrements * var by 1 Returns true if the resulting value is zero otherwise returns false
/* result should be set according to value after change, now we convert that back to C */ /* FIXME: we add an extra memory reference to a local, 
       although we could put the return value in EAX ourselves */