patch-2.4.0-test9 linux/include/asm-sparc64/system.h
Next file: linux/include/linux/ac97_codec.h
Previous file: linux/include/asm-sparc64/starfire.h
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
Tue Oct 3 09:24:41 2000
- Orig file:
v2.4.0-test8/linux/include/asm-sparc64/system.h
- Orig date:
Fri Aug 4 18:16:11 2000
diff -u --recursive --new-file v2.4.0-test8/linux/include/asm-sparc64/system.h linux/include/asm-sparc64/system.h
@@ -1,4 +1,4 @@
-/* $Id: system.h,v 1.61 2000/08/04 05:35:55 davem Exp $ */
+/* $Id: system.h,v 1.62 2000/09/23 02:09:21 davem Exp $ */
#ifndef __SPARC64_SYSTEM_H
#define __SPARC64_SYSTEM_H
@@ -95,17 +95,27 @@
#endif
-#define mb() __asm__ __volatile__ ("stbar" : : : "memory")
-
#define nop() __asm__ __volatile__ ("nop")
#define membar(type) __asm__ __volatile__ ("membar " type : : : "memory");
-#define rmb() membar("#LoadLoad | #LoadStore")
-#define wmb() membar("#StoreLoad | #StoreStore")
+#define mb() \
+ membar("#LoadLoad | #LoadStore | #StoreStore | #StoreLoad");
+#define rmb() membar("#LoadLoad")
+#define wmb() membar("#StoreStore")
#define set_mb(__var, __value) \
do { __var = __value; membar("#StoreLoad | #StoreStore"); } while(0)
#define set_wmb(__var, __value) \
do { __var = __value; membar("#StoreStore"); } while(0)
+
+#ifdef CONFIG_SMP
+#define smp_mb() mb()
+#define smp_rmb() rmb()
+#define smp_wmb() wmb()
+#else
+#define smp_mb() __asm__ __volatile__("":::"memory");
+#define smp_rmb() __asm__ __volatile__("":::"memory");
+#define smp_wmb() __asm__ __volatile__("":::"memory");
+#endif
#define flushi(addr) __asm__ __volatile__ ("flush %0" : : "r" (addr) : "memory")
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)