Skip to contentSkip to conversation

include/asm-generic/bitops.h {set,clear}_bit return void

PATCH New Carl-Daniel Hailfinger 1 participant 1 message Apr 10, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 include/asm-generic/bitops.h {set,clear}_bit return void

Linus,

{set,clear}_bit for all arches no longer return int, but void. This patch adjusts the generic implementation accordingly.

Regards,
Carl-Daniel

Signature · 3 lines
Linux scales to much more than 64 CPUs!
See include/linux/smp.h:64
#define MSG_ALL_BUT_SELF        0x8000  /* Assume <32768 CPU's */

===== include/asm-generic/bitops.h 1.2 vs edited =====

include/asm-generic/bitops.h +26 -2
@@ -16,7 +16,31 @@
  * C language equivalents written by Theodore Ts'o, 9/26/92
  */
 
-extern __inline__ int set_bit(int nr,long * addr)
+extern __inline__ void set_bit(int nr,long * addr)
+{
+	int	mask;
+
+	addr += nr >> 5;
+	mask = 1 << (nr & 0x1f);
+	cli();
+	*addr |= mask;
+	sti();
+	return;
+}
+
+extern __inline__ void clear_bit(int nr, long * addr)
+{
+	int	mask;
+
+	addr += nr >> 5;
+	mask = 1 << (nr & 0x1f);
+	cli();
+	*addr &= ~mask;
+	sti();
+	return;
+}
+
+extern __inline__ int test_and_set_bit(int nr,long * addr)
 {
 	int	mask, retval;
 
@@ -29,7 +53,7 @@
 	return retval;
 }
 
-extern __inline__ int clear_bit(int nr, long * addr)
+extern __inline__ int test_and_clear_bit(int nr, long * addr)
 {
 	int	mask, retval;