| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | #ifndef _ASM_POWERPC_SYNCH_H 
 | 
					
						
							|  |  |  | #define _ASM_POWERPC_SYNCH_H 
 | 
					
						
							| 
									
										
										
										
											2005-12-16 22:43:46 +01:00
										 |  |  | #ifdef __KERNEL__
 | 
					
						
							| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-13 15:37:17 +11:00
										 |  |  | #include <linux/stringify.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | #ifdef __powerpc64__
 | 
					
						
							|  |  |  | #define __SUBARCH_HAS_LWSYNC
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __SUBARCH_HAS_LWSYNC
 | 
					
						
							|  |  |  | #    define LWSYNC	lwsync
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | #    define LWSYNC	sync
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_SMP
 | 
					
						
							| 
									
										
										
										
											2006-02-20 10:40:28 +01:00
										 |  |  | #define ISYNC_ON_SMP	"\n\tisync\n"
 | 
					
						
							| 
									
										
										
										
											2006-01-13 15:37:17 +11:00
										 |  |  | #define LWSYNC_ON_SMP	__stringify(LWSYNC) "\n"
 | 
					
						
							| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | #else
 | 
					
						
							|  |  |  | #define ISYNC_ON_SMP
 | 
					
						
							| 
									
										
										
										
											2006-01-13 15:37:17 +11:00
										 |  |  | #define LWSYNC_ON_SMP
 | 
					
						
							| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void eieio(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	__asm__ __volatile__ ("eieio" : : : "memory"); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void isync(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	__asm__ __volatile__ ("isync" : : : "memory"); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-16 22:43:46 +01:00
										 |  |  | #endif /* __KERNEL__ */
 | 
					
						
							| 
									
										
										
										
											2005-09-22 14:20:04 -05:00
										 |  |  | #endif	/* _ASM_POWERPC_SYNCH_H */
 |