Changeset 23684b7 in mainline for arch/ia64/include/atomic.h
- Timestamp:
- 2006-03-22T17:21:15Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d71007e
- Parents:
- 45fb65c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/include/atomic.h
r45fb65c r23684b7 31 31 32 32 #include <arch/types.h> 33 #include <typedefs.h> 33 34 34 typedef struct { volatile __u64 count; } atomic_t;35 35 36 36 /** Atomic addition. … … 41 41 * @return Value before addition. 42 42 */ 43 static inline count_tatomic_add(atomic_t *val, int imm)43 static inline long atomic_add(atomic_t *val, int imm) 44 44 { 45 count_tv;45 long v; 46 46 47 47 __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "+m" (val->count) : "i" (imm)); … … 50 50 } 51 51 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 62 52 static inline void atomic_inc(atomic_t *val) { atomic_add(val, 1); } 63 53 static inline void atomic_dec(atomic_t *val) { atomic_add(val, -1); } 64 54 65 static inline count_tatomic_preinc(atomic_t *val) { return atomic_add(val, 1) + 1; }66 static inline count_tatomic_predec(atomic_t *val) { return atomic_add(val, -1) - 1; }55 static inline long atomic_preinc(atomic_t *val) { return atomic_add(val, 1) + 1; } 56 static inline long atomic_predec(atomic_t *val) { return atomic_add(val, -1) - 1; } 67 57 68 static inline count_tatomic_postinc(atomic_t *val) { return atomic_add(val, 1); }69 static inline count_tatomic_postdec(atomic_t *val) { return atomic_add(val, -1); }58 static inline long atomic_postinc(atomic_t *val) { return atomic_add(val, 1); } 59 static inline long atomic_postdec(atomic_t *val) { return atomic_add(val, -1); } 70 60 71 61 #endif
Note:
See TracChangeset
for help on using the changeset viewer.