Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */ 2 : #ifndef _ASM_X86_CMPXCHG_64_H 3 : #define _ASM_X86_CMPXCHG_64_H 4 : 5 : static inline void set_64bit(volatile u64 *ptr, u64 val) 6 : { 7 4 : *ptr = val; 8 : } 9 : 10 : #define arch_cmpxchg64(ptr, o, n) \ 11 : ({ \ 12 : BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ 13 : arch_cmpxchg((ptr), (o), (n)); \ 14 : }) 15 : 16 : #define arch_cmpxchg64_local(ptr, o, n) \ 17 : ({ \ 18 : BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ 19 : arch_cmpxchg_local((ptr), (o), (n)); \ 20 : }) 21 : 22 : #define system_has_cmpxchg_double() boot_cpu_has(X86_FEATURE_CX16) 23 : 24 : #endif /* _ASM_X86_CMPXCHG_64_H */