static inline int atomic_sub_and_test(int i, atomic_t *v){ unsigned char c; asm volatile(LOCK_PREFIX "subl %2,%0; sete %1" : "+m" (v->counter), "=qm" (c) : "ir" (i) : "memory"); return c;}TIA:)