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 cmpxchg64(ptr, o, n) \ 10 ({ \ 11 BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ 12 cmpxchg((ptr), (o), (n)); \ 13 }) 14 15 #define cmpxchg64_local(ptr, o, n) \ 16 ({ \ 17 BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ 18 cmpxchg_local((ptr), (o), (n)); \ 19 }) 20 21 #define system_has_cmpxchg_double() boot_cpu_has(X86_FEATURE_CX16) 22 23 #endif /* _ASM_X86_CMPXCHG_64_H */ 24