patch-2.3.41 linux/arch/m68k/lib/semaphore.S

Next file: linux/arch/m68k/mm/fault.c
Previous file: linux/arch/m68k/lib/lshrdi3.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.40/linux/arch/m68k/lib/semaphore.S linux/arch/m68k/lib/semaphore.S
@@ -7,6 +7,7 @@
  */
 
 #include <linux/linkage.h>
+#include <asm/semaphore.h>
 
 /*
  * The semaphore operations have a special calling sequence that
@@ -49,3 +50,50 @@
 	movel (%sp)+,%a1
 	moveml (%sp)+,%a0/%d0/%d1
 	rts
+
+ENTRY(__down_read_failed)
+	moveml %a0/%d0/%d1,-(%sp)
+	jcc 3f
+1:	movel %a1,-(%sp)
+	jbsr SYMBOL_NAME(down_read_failed_biased)
+	movel (%sp)+,%a1
+2:	moveml (%sp)+,%a0/%d0/%d1
+	rts
+
+3:	movel %a1,-(%sp)
+	jbsr SYMBOL_NAME(down_read_failed)
+	movel (%sp)+,%a1
+	subql #1,%a1@
+	jpl 2b
+	jcc 3b
+	jra 1b
+
+ENTRY(__down_write_failed)
+	moveml %a0/%d0/%d1,-(%sp)
+	jcc 3f
+1:	movel %a1,-(%sp)
+	jbsr SYMBOL_NAME(down_write_failed_biased)
+	movel (%sp)+,%a1
+2:	moveml (%sp)+,%a0/%d0/%d1
+	rts
+
+3:	movel %a1,-(%sp)
+	jbsr SYMBOL_NAME(down_write_failed)
+	movel (%sp)+,%a1
+	subl #RW_LOCK_BIAS,%a1@
+	jpl 2b
+	jcc 3b
+	jra 1b
+
+ENTRY(__rwsem_wake)
+	moveml %a0/%d0/%d1,-(%sp)
+	jeq 1f
+	movel %a1,-(%sp)
+	jbsr SYMBOL_NAME(rwsem_wake_readers)
+	jra 2f
+1:	movel %a1,-(%sp)
+	jbsr rwsem_wake_writer
+2:	movel (%sp)+,%a1
+	moveml (%sp)+,%a0/%d0/%d1
+	rts
+

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