#ifndef __ASM_CRIS_ATOMIC__
#define __ASM_CRIS_ATOMIC__
+#include <linux/compiler.h>
+
#include <asm/system.h>
#include <asm/arch/atomic.h>
unsigned long flags;
int retval;
cris_atomic_save(v, flags);
- retval = (v->counter)++;
+ retval = ++(v->counter);
cris_atomic_restore(v, flags);
return retval;
}
unsigned long flags;
int retval;
cris_atomic_save(v, flags);
- retval = (v->counter)--;
+ retval = --(v->counter);
cris_atomic_restore(v, flags);
return retval;
}
return ret;
}
+#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
+
static inline int atomic_add_unless(atomic_t *v, int a, int u)
{
int ret;
#define smp_mb__before_atomic_inc() barrier()
#define smp_mb__after_atomic_inc() barrier()
+#include <asm-generic/atomic.h>
#endif