25 lines
		
	
	
		
			552 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			552 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _ASM_X86_CMPXCHG_64_H
 | |
| #define _ASM_X86_CMPXCHG_64_H
 | |
| 
 | |
| static inline void set_64bit(volatile u64 *ptr, u64 val)
 | |
| {
 | |
| 	*ptr = val;
 | |
| }
 | |
| 
 | |
| #define arch_cmpxchg64(ptr, o, n)					\
 | |
| ({									\
 | |
| 	BUILD_BUG_ON(sizeof(*(ptr)) != 8);				\
 | |
| 	cmpxchg((ptr), (o), (n));					\
 | |
| })
 | |
| 
 | |
| #define arch_cmpxchg64_local(ptr, o, n)					\
 | |
| ({									\
 | |
| 	BUILD_BUG_ON(sizeof(*(ptr)) != 8);				\
 | |
| 	cmpxchg_local((ptr), (o), (n));					\
 | |
| })
 | |
| 
 | |
| #define system_has_cmpxchg_double() boot_cpu_has(X86_FEATURE_CX16)
 | |
| 
 | |
| #endif /* _ASM_X86_CMPXCHG_64_H */
 |