Rev 259 | Rev 475 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 259 | Rev 458 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | #define __ia32_ATOMIC_H__ |
30 | #define __ia32_ATOMIC_H__ |
31 | 31 | ||
32 | #include <arch/types.h> |
32 | #include <arch/types.h> |
33 | 33 | ||
34 | static inline void atomic_inc(volatile int *val) { |
34 | static inline void atomic_inc(volatile int *val) { |
35 | #ifdef __SMP__ |
35 | #ifdef CONFIG_SMP |
36 | __asm__ volatile ("lock incl %0\n" : "=m" (*val)); |
36 | __asm__ volatile ("lock incl %0\n" : "=m" (*val)); |
37 | #else |
37 | #else |
38 | __asm__ volatile ("incl %0\n" : "=m" (*val)); |
38 | __asm__ volatile ("incl %0\n" : "=m" (*val)); |
39 | #endif /* __SMP__ */ |
39 | #endif /* CONFIG_SMP */ |
40 | } |
40 | } |
41 | 41 | ||
42 | static inline void atomic_dec(volatile int *val) { |
42 | static inline void atomic_dec(volatile int *val) { |
43 | #ifdef __SMP__ |
43 | #ifdef CONFIG_SMP |
44 | __asm__ volatile ("lock decl %0\n" : "=m" (*val)); |
44 | __asm__ volatile ("lock decl %0\n" : "=m" (*val)); |
45 | #else |
45 | #else |
46 | __asm__ volatile ("decl %0\n" : "=m" (*val)); |
46 | __asm__ volatile ("decl %0\n" : "=m" (*val)); |
47 | #endif /* __SMP__ */ |
47 | #endif /* CONFIG_SMP */ |
48 | } |
48 | } |
49 | 49 | ||
50 | static inline int test_and_set(volatile int *val) { |
50 | static inline int test_and_set(volatile int *val) { |
51 | int v; |
51 | int v; |
52 | 52 |