Changeset 73838ed in mainline
- Timestamp:
- 2005-09-01T19:21:37Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7df54df
- Parents:
- 437e35a0
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/include/atomic.h
r437e35a0 r73838ed 30 30 #define __amd64_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 !!!35 */36 32 37 static inline atomic_inc(volatile int *val) { 38 *val++; 33 /* Count_t is 32-bits on AMD-64 */ 34 static inline void atomic_inc(volatile count_t *val) { 35 #ifdef __SMP__ 36 __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); 37 #else 38 __asm__ volatile ("incl (%0)\n" : : "r" (val)); 39 #endif /* __SMP__ */ 39 40 } 40 41 41 static inline atomic_dec(volatile int *val) { 42 *val--; 42 static inline void atomic_dec(volatile count_t *val) { 43 #ifdef __SMP__ 44 __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); 45 #else 46 __asm__ volatile ("decl (%0)\n" : : "r" (val)); 47 #endif /* __SMP__ */ 43 48 } 44 49 -
arch/amd64/src/fmath.c
r437e35a0 r73838ed 123 123 fmath_ld_union.ldd[7]=((fmath_ld_union.ldd[7])&0x7f)|(sign<<7); // change 64th bit (IA32 is a little endian) 124 124 return fmath_ld_union.bf; 125 */ return 1.0 125 */ return 1.0; 126 126 } 127 127 -
arch/ia32/include/atomic.h
r437e35a0 r73838ed 32 32 #include <arch/types.h> 33 33 34 static inline void atomic_inc(volatile int *val) {34 static inline void atomic_inc(volatile count_t *val) { 35 35 #ifdef __SMP__ 36 36 __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); … … 40 40 } 41 41 42 static inline void atomic_dec(volatile int *val) {42 static inline void atomic_dec(volatile count_t *val) { 43 43 #ifdef __SMP__ 44 44 __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); -
src/proc/scheduler.c
r437e35a0 r73838ed 150 150 spinlock_unlock(&CPU->lock); 151 151 152 atomic_dec( (int *)&nrdy);152 atomic_dec(&nrdy); 153 153 r->n--; 154 154 -
src/proc/thread.c
r437e35a0 r73838ed 137 137 spinlock_unlock(&r->lock); 138 138 139 atomic_inc( (int *)&nrdy);139 atomic_inc(&nrdy); 140 140 avg = nrdy / config.cpu_active; 141 141
Note:
See TracChangeset
for help on using the changeset viewer.