Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/include/atomic.h

    rdf4ed85 r7a0359b  
    2727 */
    2828
    29 /** @addtogroup ppc32   
     29/** @addtogroup ppc32
    3030 * @{
    3131 */
     
    3636#define KERN_ppc32_ATOMIC_H_
    3737
    38 static inline void atomic_inc(atomic_t *val)
     38#include <trace.h>
     39
     40NO_TRACE static inline void atomic_inc(atomic_t *val)
    3941{
    40         long tmp;
    41 
     42        atomic_count_t tmp;
     43       
    4244        asm volatile (
    4345                "1:\n"
    44                 "lwarx %0, 0, %2\n"
    45                 "addic %0, %0, 1\n"
    46                 "stwcx. %0, 0, %2\n"
    47                 "bne- 1b"
    48                 : "=&r" (tmp), "=m" (val->count)
    49                 : "r" (&val->count), "m" (val->count)
     46                "       lwarx %[tmp], 0, %[count_ptr]\n"
     47                "       addic %[tmp], %[tmp], 1\n"
     48                "       stwcx. %[tmp], 0, %[count_ptr]\n"
     49                "       bne- 1b"
     50                : [tmp] "=&r" (tmp),
     51                  "=m" (val->count)
     52                : [count_ptr] "r" (&val->count),
     53                  "m" (val->count)
    5054                : "cc"
    5155        );
    5256}
    5357
    54 static inline void atomic_dec(atomic_t *val)
     58NO_TRACE static inline void atomic_dec(atomic_t *val)
    5559{
    56         long tmp;
    57 
     60        atomic_count_t tmp;
     61       
    5862        asm volatile (
    5963                "1:\n"
    60                 "lwarx %0, 0, %2\n"
    61                 "addic %0, %0, -1\n"
    62                 "stwcx. %0, 0, %2\n"
    63                 "bne- 1b"
    64                 : "=&r" (tmp), "=m" (val->count)
    65                 : "r" (&val->count), "m" (val->count)
     64                "       lwarx %[tmp], 0, %[count_ptr]\n"
     65                "       addic %[tmp], %[tmp], -1\n"
     66                "       stwcx. %[tmp], 0, %[count_ptr]\n"
     67                "       bne- 1b"
     68                : [tmp] "=&r" (tmp),
     69                  "=m" (val->count)
     70                : [count_ptr] "r" (&val->count),
     71                  "m" (val->count)
    6672                : "cc"
    6773        );
    6874}
    6975
    70 static inline long atomic_postinc(atomic_t *val)
     76NO_TRACE static inline atomic_count_t atomic_postinc(atomic_t *val)
    7177{
    7278        atomic_inc(val);
     
    7480}
    7581
    76 static inline long atomic_postdec(atomic_t *val)
     82NO_TRACE static inline atomic_count_t atomic_postdec(atomic_t *val)
    7783{
    7884        atomic_dec(val);
     
    8086}
    8187
    82 static inline long atomic_preinc(atomic_t *val)
     88NO_TRACE static inline atomic_count_t atomic_preinc(atomic_t *val)
    8389{
    8490        atomic_inc(val);
     
    8692}
    8793
    88 static inline long atomic_predec(atomic_t *val)
     94NO_TRACE static inline atomic_count_t atomic_predec(atomic_t *val)
    8995{
    9096        atomic_dec(val);
Note: See TracChangeset for help on using the changeset viewer.