Changeset 23684b7 in mainline for arch/ia64/include/atomic.h


Ignore:
Timestamp:
2006-03-22T17:21:15Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d71007e
Parents:
45fb65c
Message:

Define atomic_t only once in atomic.h
Change the encapsulated counter type to long so that it supports negative values as well.

File:
1 edited

Legend:

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

    r45fb65c r23684b7  
    3131
    3232#include <arch/types.h>
     33#include <typedefs.h>
    3334
    34 typedef struct { volatile __u64 count; } atomic_t;
    3535
    3636/** Atomic addition.
     
    4141 * @return Value before addition.
    4242 */
    43 static inline count_t atomic_add(atomic_t *val, int imm)
     43static inline long atomic_add(atomic_t *val, int imm)
    4444{
    45         count_t v;
     45        long v;
    4646
    4747        __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "+m" (val->count) : "i" (imm));
     
    5050}
    5151
    52 static inline void atomic_set(atomic_t *val, __u64 i)
    53 {
    54         val->count = i;
    55 }
    56 
    57 static inline __u32 atomic_get(atomic_t *val)
    58 {
    59         return val->count;
    60 }
    61 
    6252static inline void atomic_inc(atomic_t *val) { atomic_add(val, 1); }
    6353static inline void atomic_dec(atomic_t *val) { atomic_add(val, -1); }
    6454
    65 static inline count_t atomic_preinc(atomic_t *val) { return atomic_add(val, 1) + 1; }
    66 static inline count_t atomic_predec(atomic_t *val) { return atomic_add(val, -1) - 1; }
     55static inline long atomic_preinc(atomic_t *val) { return atomic_add(val, 1) + 1; }
     56static inline long atomic_predec(atomic_t *val) { return atomic_add(val, -1) - 1; }
    6757
    68 static inline count_t atomic_postinc(atomic_t *val) { return atomic_add(val, 1); }
    69 static inline count_t atomic_postdec(atomic_t *val) { return atomic_add(val, -1); }
     58static inline long atomic_postinc(atomic_t *val) { return atomic_add(val, 1); }
     59static inline long atomic_postdec(atomic_t *val) { return atomic_add(val, -1); }
    7060
    7161#endif
Note: See TracChangeset for help on using the changeset viewer.