cmpxchg_64.h (706B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_X86_CMPXCHG_64_H 3#define _ASM_X86_CMPXCHG_64_H 4 5static inline void set_64bit(volatile u64 *ptr, u64 val) 6{ 7 *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 arch_try_cmpxchg64(ptr, po, n) \ 23({ \ 24 BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ 25 arch_try_cmpxchg((ptr), (po), (n)); \ 26}) 27 28#define system_has_cmpxchg_double() boot_cpu_has(X86_FEATURE_CX16) 29 30#endif /* _ASM_X86_CMPXCHG_64_H */