Ignore:
Timestamp:
2008-06-16T21:42:48Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4a23cb6
Parents:
ad2e39b
Message:

First argument of atomic functions is read-write (ia32).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/arch/ia32/include/atomic.h

    rad2e39b r9f491d7  
    3737
    3838static 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));
    4040}
    4141
    4242static 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));
    4444}
    4545
     
    5151                "movl $1, %0\n"
    5252                "lock xaddl %0, %1\n"
    53                 : "=r" (r), "=m" (val->count)
     53                : "=r" (r), "+m" (val->count)
    5454        );
    5555
     
    6464                "movl $-1, %0\n"
    6565                "lock xaddl %0, %1\n"
    66                 : "=r" (r), "=m" (val->count)
     66                : "=r" (r), "+m" (val->count)
    6767        );
    6868       
     
    7070}
    7171
    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)
    7474
    7575#endif
Note: See TracChangeset for help on using the changeset viewer.