return c != 0;
}
+static inline int atomic_dec_and_test_lt(volatile atomic_t *v)
+{
+ char c;
+ __asm__ __volatile__("subql #1,%1; seq %0" : "=d" (c), "=m" (*v));
+ return c != 0;
+}
+
static inline int atomic_inc_and_test(atomic_t *v)
{
char c;
return c != 0;
}
+static inline int atomic_inc_and_test_lt(volatile atomic_t *v)
+{
+ char c;
+ __asm__ __volatile__("addql #1,%1; seq %0" : "=d" (c), "=m" (*v));
+ return c != 0;
+}
+
#ifdef CONFIG_RMW_INSNS
static inline int atomic_add_return(int i, atomic_t *v)