patch-2.4.0-test4 linux/include/asm-sparc/bitops.h

Next file: linux/include/asm-sparc/elf.h
Previous file: linux/include/asm-sparc/asm_offsets.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test3/linux/include/asm-sparc/bitops.h linux/include/asm-sparc/bitops.h
@@ -1,4 +1,4 @@
-/* $Id: bitops.h,v 1.57 2000/06/30 10:18:39 davem Exp $
+/* $Id: bitops.h,v 1.58 2000/07/07 07:29:30 anton Exp $
  * bitops.h: Bit string operations on the Sparc.
  *
  * Copyright 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -8,7 +8,6 @@
 #ifndef _SPARC_BITOPS_H
 #define _SPARC_BITOPS_H
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <asm/byteorder.h>
 
@@ -19,8 +18,6 @@
  * themself.
  */
 
-#define __SMPVOL
-
 extern __inline__ unsigned long set_bit(unsigned long nr, void *addr)
 {
 	int mask;
@@ -83,19 +80,13 @@
 
 #include <asm/system.h>
 
-#ifdef CONFIG_SMP
-#define __SMPVOL volatile
-#else
-#define __SMPVOL
-#endif
-
 /* Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0'
  * is in the highest of the four bytes and bit '31' is the high bit
  * within the first byte. Sparc is BIG-Endian. Unless noted otherwise
  * all bit-ops return 0 if bit was previously clear and != 0 otherwise.
  */
 
-extern __inline__ int test_and_set_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ int test_and_set_bit(unsigned long nr, volatile void *addr)
 {
 	register unsigned long mask asm("g2");
 	register unsigned long *ADDR asm("g1");
@@ -112,12 +103,12 @@
 	return mask != 0;
 }
 
-extern __inline__ void set_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ void set_bit(unsigned long nr, volatile void *addr)
 {
 	(void) test_and_set_bit(nr, addr);
 }
 
-extern __inline__ int test_and_clear_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ int test_and_clear_bit(unsigned long nr, volatile void *addr)
 {
 	register unsigned long mask asm("g2");
 	register unsigned long *ADDR asm("g1");
@@ -135,12 +126,12 @@
 	return mask != 0;
 }
 
-extern __inline__ void clear_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ void clear_bit(unsigned long nr, volatile void *addr)
 {
 	(void) test_and_clear_bit(nr, addr);
 }
 
-extern __inline__ int test_and_change_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ int test_and_change_bit(unsigned long nr, volatile void *addr)
 {
 	register unsigned long mask asm("g2");
 	register unsigned long *ADDR asm("g1");
@@ -158,7 +149,7 @@
 	return mask != 0;
 }
 
-extern __inline__ void change_bit(unsigned long nr, __SMPVOL void *addr)
+extern __inline__ void change_bit(unsigned long nr, volatile void *addr)
 {
 	(void) test_and_change_bit(nr, addr);
 }
@@ -166,7 +157,7 @@
 #endif /* __KERNEL__ */
 
 /* The following routine need not be atomic. */
-extern __inline__ int test_bit(int nr, __const__ __SMPVOL void *addr)
+extern __inline__ int test_bit(int nr, __const__ void *addr)
 {
 	return (1 & (((__const__ unsigned int *) addr)[nr >> 5] >> (nr & 31))) != 0;
 }
@@ -298,7 +289,7 @@
 
 /* Now for the ext2 filesystem bit operations and helper routines. */
 
-extern __inline__ int set_le_bit(int nr,void * addr)
+extern __inline__ int set_le_bit(int nr, volatile void * addr)
 {
 	register int mask asm("g2");
 	register unsigned char *ADDR asm("g1");
@@ -316,7 +307,7 @@
 	return mask;
 }
 
-extern __inline__ int clear_le_bit(int nr, void * addr)
+extern __inline__ int clear_le_bit(int nr, volatile void * addr)
 {
 	register int mask asm("g2");
 	register unsigned char *ADDR asm("g1");

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)