29 lines
		
	
	
	
		
			908 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
	
		
			908 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * Memory barrier implementations for PKUnity SoC and UniCore ISA | ||
|  |  * | ||
|  |  * Copyright (C) 2001-2012 GUAN Xue-tao | ||
|  |  * | ||
|  |  * 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 __UNICORE_BARRIER_H__
 | ||
|  | #define __UNICORE_BARRIER_H__
 | ||
|  | 
 | ||
|  | #define isb() __asm__ __volatile__ ("" : : : "memory")
 | ||
|  | #define dsb() __asm__ __volatile__ ("" : : : "memory")
 | ||
|  | #define dmb() __asm__ __volatile__ ("" : : : "memory")
 | ||
|  | 
 | ||
|  | #define mb()				barrier()
 | ||
|  | #define rmb()				barrier()
 | ||
|  | #define wmb()				barrier()
 | ||
|  | #define smp_mb()			barrier()
 | ||
|  | #define smp_rmb()			barrier()
 | ||
|  | #define smp_wmb()			barrier()
 | ||
|  | #define read_barrier_depends()		do { } while (0)
 | ||
|  | #define smp_read_barrier_depends()	do { } while (0)
 | ||
|  | 
 | ||
|  | #define set_mb(var, value)		do { var = value; smp_mb(); } while (0)
 | ||
|  | 
 | ||
|  | #endif /* __UNICORE_BARRIER_H__ */
 |