Changeset 9f491d7 in mainline for uspace/lib/libc/arch/ia32/include/atomic.h
- Timestamp:
- 2008-06-16T21:42:48Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4a23cb6
- Parents:
- ad2e39b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/arch/ia32/include/atomic.h
rad2e39b r9f491d7 37 37 38 38 static inline void atomic_inc(atomic_t *val) { 39 asm volatile ("lock incl %0\n" : " =m" (val->count));39 asm volatile ("lock incl %0\n" : "+m" (val->count)); 40 40 } 41 41 42 42 static inline void atomic_dec(atomic_t *val) { 43 asm volatile ("lock decl %0\n" : " =m" (val->count));43 asm volatile ("lock decl %0\n" : "+m" (val->count)); 44 44 } 45 45 … … 51 51 "movl $1, %0\n" 52 52 "lock xaddl %0, %1\n" 53 : "=r" (r), " =m" (val->count)53 : "=r" (r), "+m" (val->count) 54 54 ); 55 55 … … 64 64 "movl $-1, %0\n" 65 65 "lock xaddl %0, %1\n" 66 : "=r" (r), " =m" (val->count)66 : "=r" (r), "+m" (val->count) 67 67 ); 68 68 … … 70 70 } 71 71 72 #define atomic_preinc(val) (atomic_postinc(val) +1)73 #define atomic_predec(val) (atomic_postdec(val) -1)72 #define atomic_preinc(val) (atomic_postinc(val) + 1) 73 #define atomic_predec(val) (atomic_postdec(val) - 1) 74 74 75 75 #endif
Note:
See TracChangeset
for help on using the changeset viewer.