Commit ab95e97f authored by Pavel Emelyanov's avatar Pavel Emelyanov

atomic: Add atomic_add for x86

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent d77a05b6
...@@ -26,9 +26,9 @@ typedef struct { ...@@ -26,9 +26,9 @@ typedef struct {
ret__; \ ret__; \
}) })
#define atomic_inc(mem) \ #define atomic_add(mem, val) \
({ \ ({ \
u32 ret__ = 1; \ u32 ret__ = (val); \
asm volatile ("lock xadd %0, %1\n" \ asm volatile ("lock xadd %0, %1\n" \
: "+r" (ret__), "+m" ((mem)->counter) \ : "+r" (ret__), "+m" ((mem)->counter) \
: \ : \
...@@ -36,6 +36,8 @@ typedef struct { ...@@ -36,6 +36,8 @@ typedef struct {
ret__; \ ret__; \
}) })
#define atomic_inc(mem) atomic_add(mem, 1)
#define atomic_dec(mem) \ #define atomic_dec(mem) \
({ \ ({ \
u32 ret__ = -1; \ u32 ret__ = -1; \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment