Changeset 59e07c91 in mainline for arch/ia64/include
- Timestamp:
- 2005-11-10T13:56:26Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0172eba
- Parents:
- 13fe013
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/include/atomic.h
r13fe013 r59e07c91 30 30 #define __ia64_ATOMIC_H__ 31 31 32 /* 33 * TODO: these are just placeholders for real implementations of atomic_inc and atomic_dec. 34 * WARNING: the following functions cause the code to be preemption-unsafe !!! 32 #include <arch/types.h> 33 34 typedef volatile __u64 atomic_t; 35 36 static inline atomic_t atomic_add(atomic_t *val, int imm) 37 { 38 atomic_t v; 39 40 /* 41 * __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "=m" (val) : "i" (imm)); 35 42 */ 36 37 static inline atomic_inc(volatile int *val) { 38 *val++;43 *val += imm; 44 45 return v; 39 46 } 40 47 41 static inline atomic_dec(volatile int *val) { 42 *val--; 43 } 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); } 44 50 45 51 #endif
Note:
See TracChangeset
for help on using the changeset viewer.