Rev 241 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 241 | Rev 248 | ||
---|---|---|---|
Line 28... | Line 28... | ||
28 | 28 | ||
29 | #ifndef __amd64_ATOMIC_H__ |
29 | #ifndef __amd64_ATOMIC_H__ |
30 | #define __amd64_ATOMIC_H__ |
30 | #define __amd64_ATOMIC_H__ |
31 | 31 | ||
32 | 32 | ||
33 | /* Count_t is 32-bits on AMD-64 */ |
- | |
34 | static inline void atomic_inc(volatile count_t *val) { |
33 | static inline void atomic_inc(volatile int *val) { |
35 | #ifdef __SMP__ |
34 | #ifdef __SMP__ |
36 | __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); |
35 | __asm__ volatile ("lock incl (%0)\n" : : "r" (val)); |
37 | #else |
36 | #else |
38 | __asm__ volatile ("incl (%0)\n" : : "r" (val)); |
37 | __asm__ volatile ("incl (%0)\n" : : "r" (val)); |
39 | #endif /* __SMP__ */ |
38 | #endif /* __SMP__ */ |
40 | } |
39 | } |
41 | 40 | ||
42 | static inline void atomic_dec(volatile count_t *val) { |
41 | static inline void atomic_dec(volatile int *val) { |
43 | #ifdef __SMP__ |
42 | #ifdef __SMP__ |
44 | __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); |
43 | __asm__ volatile ("lock decl (%0)\n" : : "r" (val)); |
45 | #else |
44 | #else |
46 | __asm__ volatile ("decl (%0)\n" : : "r" (val)); |
45 | __asm__ volatile ("decl (%0)\n" : : "r" (val)); |
47 | #endif /* __SMP__ */ |
46 | #endif /* __SMP__ */ |