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 */ 26