1#ifndef _ASM_X86_CMPXCHG_64_H 2#define _ASM_X86_CMPXCHG_64_H 3 4static 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