//kernel/trunk/arch/ia32/include/atomic.h/atomic.h |
---|
53,8 → 53,8 |
{ |
atomic_t r; |
__asm__ volatile ( |
"movl $1,%0;" |
"lock xaddl %0,%1;" |
"movl $1, %0\n" |
"lock xaddl %0, %1\n" |
: "=r"(r), "=m" (*val) |
); |
return r; |
66,8 → 66,8 |
{ |
atomic_t r; |
__asm__ volatile ( |
"movl $-1,%0;" |
"lock xaddl %0,%1;" |
"movl $-1, %0\n" |
"lock xaddl %0, %1\n" |
: "=r"(r), "=m" (*val) |
); |
return r; |
76,8 → 76,6 |
#define atomic_inc_post(val) (atomic_inc_pre(val)+1) |
#define atomic_dec_post(val) (atomic_dec_pre(val)-1) |
static inline int test_and_set(volatile int *val) { |
int v; |