Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 */