patch-2.4.21 linux-2.4.21/include/asm-ppc/bitops.h
Next file: linux-2.4.21/include/asm-ppc/bootinfo.h
Previous file: linux-2.4.21/include/asm-ppc/backlight.h
Back to the patch index
Back to the overall index
- Lines: 123
- Date:
2003-06-13 07:51:38.000000000 -0700
- Orig file:
linux-2.4.20/include/asm-ppc/bitops.h
- Orig date:
2001-06-11 19:15:27.000000000 -0700
diff -urN linux-2.4.20/include/asm-ppc/bitops.h linux-2.4.21/include/asm-ppc/bitops.h
@@ -1,7 +1,4 @@
/*
- * BK Id: SCCS/s.bitops.h 1.9 05/26/01 14:48:14 paulus
- */
-/*
* bitops.h: Bit string operations on the ppc
*/
@@ -11,6 +8,7 @@
#include <linux/config.h>
#include <asm/byteorder.h>
+#include <asm/atomic.h>
/*
* The test_and_*_bit operations are taken to imply a memory barrier
@@ -36,8 +34,9 @@
__asm__ __volatile__("\n\
1: lwarx %0,0,%3 \n\
- or %0,%0,%2 \n\
- stwcx. %0,0,%3 \n\
+ or %0,%0,%2 \n"
+ PPC405_ERR77(0,%3)
+" stwcx. %0,0,%3 \n\
bne- 1b"
: "=&r" (old), "=m" (*p)
: "r" (mask), "r" (p), "m" (*p)
@@ -69,8 +68,9 @@
__asm__ __volatile__("\n\
1: lwarx %0,0,%3 \n\
- andc %0,%0,%2 \n\
- stwcx. %0,0,%3 \n\
+ andc %0,%0,%2 \n"
+ PPC405_ERR77(0,%3)
+" stwcx. %0,0,%3 \n\
bne- 1b"
: "=&r" (old), "=m" (*p)
: "r" (mask), "r" (p), "m" (*p)
@@ -96,8 +96,9 @@
__asm__ __volatile__("\n\
1: lwarx %0,0,%3 \n\
- xor %0,%0,%2 \n\
- stwcx. %0,0,%3 \n\
+ xor %0,%0,%2 \n"
+ PPC405_ERR77(0,%3)
+" stwcx. %0,0,%3 \n\
bne- 1b"
: "=&r" (old), "=m" (*p)
: "r" (mask), "r" (p), "m" (*p)
@@ -126,8 +127,9 @@
__asm__ __volatile__(SMP_WMB "\n\
1: lwarx %0,0,%4 \n\
- or %1,%0,%3 \n\
- stwcx. %1,0,%4 \n\
+ or %1,%0,%3 \n"
+ PPC405_ERR77(0,%4)
+" stwcx. %1,0,%4 \n\
bne 1b"
SMP_MB
: "=&r" (old), "=&r" (t), "=m" (*p)
@@ -158,8 +160,9 @@
__asm__ __volatile__(SMP_WMB "\n\
1: lwarx %0,0,%4 \n\
- andc %1,%0,%3 \n\
- stwcx. %1,0,%4 \n\
+ andc %1,%0,%3 \n"
+ PPC405_ERR77(0,%4)
+" stwcx. %1,0,%4 \n\
bne 1b"
SMP_MB
: "=&r" (old), "=&r" (t), "=m" (*p)
@@ -190,8 +193,9 @@
__asm__ __volatile__(SMP_WMB "\n\
1: lwarx %0,0,%4 \n\
- xor %1,%0,%3 \n\
- stwcx. %1,0,%4 \n\
+ xor %1,%0,%3 \n"
+ PPC405_ERR77(0,%4)
+" stwcx. %1,0,%4 \n\
bne 1b"
SMP_MB
: "=&r" (old), "=&r" (t), "=m" (*p)
@@ -237,8 +241,6 @@
return __ilog2(x & -x);
}
-#ifdef __KERNEL__
-
/*
* ffs: find first bit set. This is defined the same way as
* the libc and compiler builtin ffs routines, therefore
@@ -258,8 +260,6 @@
#define hweight16(x) generic_hweight16(x)
#define hweight8(x) generic_hweight8(x)
-#endif /* __KERNEL__ */
-
/*
* This implementation of find_{first,next}_zero_bit was stolen from
* Linus' asm-alpha/bitops.h.
@@ -306,8 +306,6 @@
}
-#ifdef __KERNEL__
-
#define ext2_set_bit(nr, addr) __test_and_set_bit((nr) ^ 0x18, addr)
#define ext2_clear_bit(nr, addr) __test_and_clear_bit((nr) ^ 0x18, addr)
@@ -371,7 +369,5 @@
#define minix_test_bit(nr,addr) ext2_test_bit(nr,addr)
#define minix_find_first_zero_bit(addr,size) ext2_find_first_zero_bit(addr,size)
-#endif /* __KERNEL__ */
-
#endif /* _PPC_BITOPS_H */
#endif /* __KERNEL__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)