inline void atomic_dec(volatile unsigned int *v) {
__asm__ __volatile__ (LOCK_PREFIX "decl %0"
- : "+m" (v));
+ : "+m" (*v));
}
inline void atomic_inc(volatile unsigned int *v) {
__asm__ __volatile__ (LOCK_PREFIX "incl %0"
- : "+m" (v));
+ : "+m" (*v));
}
static inline int atomic_sub_and_test(int i, atomic_t *v) {
#define _DSMLOCK_H_
#define RW_LOCK_BIAS 0x01000000
-#define atomic_read(v) (v)
+#define atomic_read(v) (*v)
#define RW_LOCK_UNLOCKED { RW_LOCK_BIAS }
//#define LOCK_PREFIX ""
#define LOCK_PREFIX \