Rev 241 | Rev 259 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 241 | Rev 248 | ||
---|---|---|---|
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 | static inline void atomic_inc(volatile count_t *val) { |
34 | static inline void atomic_inc(volatile int *val) { |
35 | #ifdef __SMP__ |
35 | #ifdef __SMP__ |
36 | __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); |
36 | __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); |
37 | #else |
37 | #else |
38 | __asm__ volatile ("incl (%0)\n" : : "r" (val)); |
38 | __asm__ volatile ("incl (%0)\n" : : "r" (val)); |
39 | #endif /* __SMP__ */ |
39 | #endif /* __SMP__ */ |
40 | } |
40 | } |
41 | 41 | ||
42 | static inline void atomic_dec(volatile count_t *val) { |
42 | static inline void atomic_dec(volatile int *val) { |
43 | #ifdef __SMP__ |
43 | #ifdef __SMP__ |
44 | __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); |
44 | __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); |
45 | #else |
45 | #else |
46 | __asm__ volatile ("decl (%0)\n" : : "r" (val)); |
46 | __asm__ volatile ("decl (%0)\n" : : "r" (val)); |
47 | #endif /* __SMP__ */ |
47 | #endif /* __SMP__ */ |