| 1 | #ifndef _ASM_X86_CMPXCHG_64_H |
| 2 | #define _ASM_X86_CMPXCHG_64_H |
| 3 | |
| 4 | static inline void set_64bit(volatile u64 *ptr, u64 val) |
| 5 | { |
| 6 | *ptr = val; |
| 7 | } |
| 8 | |
| 9 | #define __HAVE_ARCH_CMPXCHG 1 |
| 10 | |
| 11 | #define cmpxchg64(ptr, o, n) \ |
| 12 | ({ \ |
| 13 | BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ |
| 14 | cmpxchg((ptr), (o), (n)); \ |
| 15 | }) |
| 16 | |
| 17 | #define cmpxchg64_local(ptr, o, n) \ |
| 18 | ({ \ |
| 19 | BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ |
| 20 | cmpxchg_local((ptr), (o), (n)); \ |
| 21 | }) |
| 22 | |
| 23 | #define system_has_cmpxchg_double() cpu_has_cx16 |
| 24 | |
| 25 | #endif /* _ASM_X86_CMPXCHG_64_H */ |