Rev 458 | Rev 477 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 458 | Rev 475 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | #ifndef __ia32_ATOMIC_H__ |
29 | #ifndef __ia32_ATOMIC_H__ |
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 | typedef volatile __u32 atomic_t; |
|
- | 35 | ||
34 | static inline void atomic_inc(volatile int *val) { |
36 | static inline void atomic_inc(atomic_t *val) { |
35 | #ifdef CONFIG_SMP |
37 | #ifdef CONFIG_SMP |
36 | __asm__ volatile ("lock incl %0\n" : "=m" (*val)); |
38 | __asm__ volatile ("lock incl %0\n" : "=m" (*val)); |
37 | #else |
39 | #else |
38 | __asm__ volatile ("incl %0\n" : "=m" (*val)); |
40 | __asm__ volatile ("incl %0\n" : "=m" (*val)); |
39 | #endif /* CONFIG_SMP */ |
41 | #endif /* CONFIG_SMP */ |
40 | } |
42 | } |
41 | 43 | ||
42 | static inline void atomic_dec(volatile int *val) { |
44 | static inline void atomic_dec(atomic_t *val) { |
43 | #ifdef CONFIG_SMP |
45 | #ifdef CONFIG_SMP |
44 | __asm__ volatile ("lock decl %0\n" : "=m" (*val)); |
46 | __asm__ volatile ("lock decl %0\n" : "=m" (*val)); |
45 | #else |
47 | #else |
46 | __asm__ volatile ("decl %0\n" : "=m" (*val)); |
48 | __asm__ volatile ("decl %0\n" : "=m" (*val)); |
47 | #endif /* CONFIG_SMP */ |
49 | #endif /* CONFIG_SMP */ |