Changeset 73a4bab in mainline for arch/ia64/include/atomic.h


Ignore:
Timestamp:
2005-11-11T14:06:55Z (20 years ago)
Author:
Jakub Vana <jakub.vana@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8a0b3730
Parents:
0172eba
Message:

Atomic inc & dec functions synchronized on all ia32,ia64 and mips platforms. Now there are 3 versions which returns no value, new value and old value och changed variable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/atomic.h

    r0172eba r73a4bab  
    3838        atomic_t v;
    3939
    40 /*     
    41  *      __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "=m" (val) : "i" (imm));
    42  */
     40       
     41        __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "+m" (*val) : "i" (imm));
     42 
    4343        *val += imm;
    4444       
     
    4646}
    4747
    48 static inline atomic_t atomic_inc(atomic_t *val) { return atomic_add(val, 1); }
    49 static inline atomic_t atomic_dec(atomic_t *val) { return atomic_add(val, -1); }
     48static inline void atomic_inc(atomic_t *val) { atomic_add(val, 1); }
     49static inline void atomic_dec(atomic_t *val) { atomic_add(val, -1); }
     50
     51
     52static inline atomic_t atomic_inc_pre(atomic_t *val) { return atomic_add(val, 1); }
     53static inline atomic_t atomic_dec_pre(atomic_t *val) { return atomic_add(val, -1); }
     54
     55
     56static inline atomic_t atomic_inc_post(atomic_t *val) { return atomic_add(val, 1)+1; }
     57static inline atomic_t atomic_dec_post(atomic_t *val) { return atomic_add(val, -1)-1; }
     58
     59
     60
    5061
    5162#endif
Note: See TracChangeset for help on using the changeset viewer.