atomic: Add atomic_add for x86

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Pavel Emelyanov 2013-08-11 13:23:52 +04:00
parent d77a05b6dc
commit ab95e97fd5

View file

@ -26,9 +26,9 @@ typedef struct {
ret__; \
})
#define atomic_inc(mem) \
#define atomic_add(mem, val) \
({ \
u32 ret__ = 1; \
u32 ret__ = (val); \
asm volatile ("lock xadd %0, %1\n" \
: "+r" (ret__), "+m" ((mem)->counter) \
: \
@ -36,6 +36,8 @@ typedef struct {
ret__; \
})
#define atomic_inc(mem) atomic_add(mem, 1)
#define atomic_dec(mem) \
({ \
u32 ret__ = -1; \