Changeset de7663f in mainline for uspace/libc/arch/arm32/include/atomic.h
- Timestamp:
- 2007-06-13T18:39:31Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 341140c
- Parents:
- c03ee1c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/libc/arch/arm32/include/atomic.h
rc03ee1c rde7663f 50 50 51 51 asm volatile ( 52 "1:\n"53 "ldr r2, [%1] 54 "add r3, r2, %2 55 "str r3, %0 56 "swp r3, r3, [%1] 57 "cmp r3, r2 58 "bne 1b 52 "1:\n" 53 "ldr r2, [%1]\n" 54 "add r3, r2, %2\n" 55 "str r3, %0\n" 56 "swp r3, r3, [%1]\n" 57 "cmp r3, r2\n" 58 "bne 1b\n" 59 59 60 60 : "=m" (ret) … … 71 71 * @param val Variable to be incremented. 72 72 */ 73 static inline void atomic_inc(atomic_t *val) { atomic_add(val, 1); } 73 static inline void atomic_inc(atomic_t *val) 74 { 75 atomic_add(val, 1); 76 } 74 77 75 78 … … 78 81 * @param val Variable to be decremented. 79 82 */ 80 static inline void atomic_dec(atomic_t *val) { atomic_add(val, -1); } 83 static inline void atomic_dec(atomic_t *val) 84 { 85 atomic_add(val, -1); 86 } 81 87 82 88 … … 86 92 * @return Value after incrementation. 87 93 */ 88 static inline long atomic_preinc(atomic_t *val) { return atomic_add(val, 1); } 94 static inline long atomic_preinc(atomic_t *val) 95 { 96 return atomic_add(val, 1); 97 } 89 98 90 99 … … 94 103 * @return Value after decrementation. 95 104 */ 96 static inline long atomic_predec(atomic_t *val) { return atomic_add(val, -1); } 105 static inline long atomic_predec(atomic_t *val) 106 { 107 return atomic_add(val, -1); 108 } 97 109 98 110 … … 102 114 * @return Value before incrementation. 103 115 */ 104 static inline long atomic_postinc(atomic_t *val) { return atomic_add(val, 1) - 1; } 116 static inline long atomic_postinc(atomic_t *val) 117 { 118 return atomic_add(val, 1) - 1; 119 } 105 120 106 121 … … 110 125 * @return Value before decrementation. 111 126 */ 112 static inline long atomic_postdec(atomic_t *val) { return atomic_add(val, -1) + 1; } 127 static inline long atomic_postdec(atomic_t *val) 128 { 129 return atomic_add(val, -1) + 1; 130 } 113 131 114 132
Note:
See TracChangeset
for help on using the changeset viewer.