 14e968bad7
			
		
	
	
	14e968bad7
	
	
	
		
			
			This covers the UP / SMP (with no hardware assist for atomic r-m-w) as well as ARC700 LLOCK/SCOND insns based. Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| 
 | |
| #ifndef __ASM_BARRIER_H
 | |
| #define __ASM_BARRIER_H
 | |
| 
 | |
| #ifndef __ASSEMBLY__
 | |
| 
 | |
| /* TODO-vineetg: Need to see what this does, don't we need sync anywhere */
 | |
| #define mb() __asm__ __volatile__ ("" : : : "memory")
 | |
| #define rmb() mb()
 | |
| #define wmb() mb()
 | |
| #define set_mb(var, value)  do { var = value; mb(); } while (0)
 | |
| #define set_wmb(var, value) do { var = value; wmb(); } while (0)
 | |
| #define read_barrier_depends()  mb()
 | |
| 
 | |
| /* TODO-vineetg verify the correctness of macros here */
 | |
| #ifdef CONFIG_SMP
 | |
| #define smp_mb()        mb()
 | |
| #define smp_rmb()       rmb()
 | |
| #define smp_wmb()       wmb()
 | |
| #else
 | |
| #define smp_mb()        barrier()
 | |
| #define smp_rmb()       barrier()
 | |
| #define smp_wmb()       barrier()
 | |
| #endif
 | |
| 
 | |
| #define smp_mb__before_atomic_dec()	barrier()
 | |
| #define smp_mb__after_atomic_dec()	barrier()
 | |
| #define smp_mb__before_atomic_inc()	barrier()
 | |
| #define smp_mb__after_atomic_inc()	barrier()
 | |
| 
 | |
| #define smp_read_barrier_depends()      do { } while (0)
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #endif
 |