23 lines
		
	
	
	
		
			537 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
	
		
			537 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef __ASM_GENERIC_CMPXCHG_H
 | ||
|  | #define __ASM_GENERIC_CMPXCHG_H
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Generic cmpxchg | ||
|  |  * | ||
|  |  * Uses the local cmpxchg. Does not support SMP. | ||
|  |  */ | ||
|  | #ifdef CONFIG_SMP
 | ||
|  | #error "Cannot use generic cmpxchg on SMP"
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Atomic compare and exchange. | ||
|  |  * | ||
|  |  * Do not define __HAVE_ARCH_CMPXCHG because we want to use it to check whether | ||
|  |  * a cmpxchg primitive faster than repeated local irq save/restore exists. | ||
|  |  */ | ||
|  | #define cmpxchg(ptr, o, n)	cmpxchg_local((ptr), (o), (n))
 | ||
|  | #define cmpxchg64(ptr, o, n)	cmpxchg64_local((ptr), (o), (n))
 | ||
|  | 
 | ||
|  | #endif
 |